module Tapioca::Runtime::AttachedClassOf

def attached_class_of(singleton_class)

def attached_class_of(singleton_class)
  result = singleton_class.attached_object
  Module === result ? result : nil
end

def attached_class_of(singleton_class)

def attached_class_of(singleton_class)
  # https://stackoverflow.com/a/36622320/98634
  result = ObjectSpace.each_object(singleton_class).find do |klass|
    singleton_class_of(T.cast(klass, Module)) == singleton_class
  end
  T.cast(result, T.nilable(Module))
end