Switch primitive types to be singletons

Ensure that exactly one of each primitive type can exist.

For #82