Too Long; Didn't Read
Type Identity and its Impact on API Design is easy to use public types that denote resource identity to allow actions on a resource. As an example in the snippet below, we use Int to denote the identifier of the Storable type that the user of the interface wants to use to retrieve the value. At first, this does not appear to be a problem, all we need to do is to make an edit to the interface to indicate that we will return an optional value in case the identifier does not exist. But the user may accidentally end up using a random variable of Int type, which has nothing to do with the StoredCollection.