Separate core types from 'other' types

This solution doesn't feel great. It may be better to have two
libraries, one that is used for the core types and that hangs around
while reading the dictionaries, and another that contains the other
types and is returned to the client.

Will need to investigate further.