def type(namespace, name)
      if @allow_abstract_types
        @types.fetch([namespace, name]) { abstract_type(namespace, name) }
      else
        @types.fetch([namespace, name]) { NullType.new }
      end
    end
def type(namespace, name)
      if @allow_abstract_types
        @types.fetch([namespace, name]) { abstract_type(namespace, name) }
      else
        @types.fetch([namespace, name]) { NullType.new }
      end
    end
Get a single type, or a NullType if the type doesn't exist