A set of Types. Initially, the set consists of simple types only. Complex types
can be created explicitly by invoking the add method or implictly by overriding the complex
method. Thus, Metadata can be used a factory for complex types.