class T::Types::TypeParameter

def self.make(name)

def self.make(name)
  cached = Private.cached_entry(name)
  return cached if cached
  Private.set_entry_for(name, new(name))
end

def initialize(name)

def initialize(name)
  raise ArgumentError.new("not a symbol: #{name}") unless name.is_a?(Symbol)
  @name = name
end

def name

def name
  "T.type_parameter(:#{@name})"
end

def subtype_of_single?(type)

def subtype_of_single?(type)
  true
end

def valid?(obj)

def valid?(obj)
  true
end