A TypedMap is an immutable map containing typed values. Each entry is
associated with a TypedKey that can be used to look up the value. A
TypedKey also defines the type of the value, e.g. a TypedKey[String]
would be associated with a String value.

Instances of this class are created with the TypedMap.empty method.

The elements inside TypedMaps cannot be enumerated. This is a decision
designed to enforce modularity. It's not possible to accidentally or
intentionally access a value in a TypedMap without holding the
corresponding TypedKey.