class RBS::BuiltinNames::Name

def self.define(name, namespace: Namespace.root)

def self.define(name, namespace: Namespace.root)
  new(name: TypeName.new(name: name, namespace: namespace))
end

def initialize(name:)

def initialize(name:)
  @name = name
end

def instance_type(*args)

def instance_type(*args)
  Types::ClassInstance.new(name: name, args: args, location: nil)
end

def instance_type?(type)

def instance_type?(type)
  type.is_a?(Types::ClassInstance) && type.name == name
end

def singleton_type

def singleton_type
  @singleton_type ||= Types::ClassSingleton.new(name: name, location: nil)
end

def singleton_type?(type)

def singleton_type?(type)
  type.is_a?(Types::ClassSingleton) && type.name == name
end

def to_s

def to_s
  name.to_s
end