class T::Types::SelfType

so at runtime we permit all values and rely on the static checker.
Modeling self-types properly at runtime would require additional tracking,

def initialize(); end

def initialize(); end

def name

@override Base
def name
  "T.self_type"
end

def subtype_of_single?(other)

@override Base
def subtype_of_single?(other)
ther
elfType
ue

lse

def valid?(obj)

@override Base
def valid?(obj)
  true
end