Give each type a unique ID for use in caching.
Finish up multi-dispatch cache implementation.