This might significantly change the behaviour of the library, since my implementation (so far) returns an identifier that's not a member of an instance (that is, removing this identifier will not affect instances of the class that have already been allocated). I don't know of any way around this – @steipete ?