Traits
A type is able to extract an Identifer from itself. The identifier type is provided as an argument to the trait
Marker trait that some type corresponds to the identity of some value. Used for graph traversal book-keeping (seen set, querying, etc)