module Sorbet::Private::RealStdlib

def self.real_ancestors(mod)

def self.real_ancestors(mod)
  @real_ancestors ||= Module.instance_method(:ancestors)
  @real_ancestors.bind(mod).call
end

def self.real_autoload?(o, klass)

def self.real_autoload?(o, klass)
  @real_autoload ||= Object.instance_method(:autoload?)
  @real_autoload.bind(o).call(klass)
end

def self.real_const_get(obj, const, arg)

def self.real_const_get(obj, const, arg)
  @real_const_get ||= Object.singleton_class.instance_method(:const_get)
  @real_const_get.bind(obj).call(const, arg)
end

def self.real_constants(mod)

def self.real_constants(mod)
  @real_constants ||= Module.instance_method(:constants)
  @real_constants.bind(mod).call(false)
end

def self.real_eqeq(obj, other)

def self.real_eqeq(obj, other)
  @real_eqeq ||= Object.instance_method(:==)
  @real_eqeq.bind(obj).call(other)
end

def self.real_hash(o)

def self.real_hash(o)
  @real_hash ||= Object.instance_method(:hash)
  @real_hash.bind(o).call
end

def self.real_instance_methods(mod, arg)

def self.real_instance_methods(mod, arg)
  @real_instance_methods ||= Module.instance_method(:instance_methods)
  @real_instance_methods.bind(mod).call(arg)
end

def self.real_is_a?(o, klass)

def self.real_is_a?(o, klass)
  @real_is_a ||= Object.instance_method(:is_a?)
  @real_is_a.bind(o).call(klass)
end

def self.real_name(o)

def self.real_name(o)
  @real_name ||= Module.instance_method(:name)
  @real_name.bind(o).call
end

def self.real_object_id(o)

def self.real_object_id(o)
  @real_object_id ||= Object.instance_method(:object_id)
  @real_object_id.bind(o).call
end

def self.real_private_instance_methods(mod, arg)

def self.real_private_instance_methods(mod, arg)
  @real_private_instance_methods ||= Module.instance_method(:private_instance_methods)
  @real_private_instance_methods.bind(mod).call(arg)
end

def self.real_singleton_class(obj)

def self.real_singleton_class(obj)
  @real_singleton_class ||= Object.instance_method(:singleton_class)
  @real_singleton_class.bind(obj).call
end

def self.real_singleton_methods(mod, arg)

def self.real_singleton_methods(mod, arg)
  @real_singleton_methods ||= Module.instance_method(:singleton_methods)
  @real_singleton_methods.bind(mod).call(arg)
end

def self.real_spaceship(obj, arg)

def self.real_spaceship(obj, arg)
  @real_spaceship ||= Object.instance_method(:<=>)
  @real_spaceship.bind(obj).call(arg)
end

def self.real_superclass(o)

def self.real_superclass(o)
  @real_superclass ||= Class.instance_method(:superclass)
  @real_superclass.bind(o).call
end