class T::Types::TypedSet

def name

@override Base
def name
  "T::Set[#{@type.name}]"
end

def new(*args) # rubocop:disable PrisonGuard/BanBuiltinMethodOverride

rubocop:disable PrisonGuard/BanBuiltinMethodOverride
def new(*args) # rubocop:disable PrisonGuard/BanBuiltinMethodOverride
  Set.new(*T.unsafe(args))
end

def recursively_valid?(obj)

@override Base
def recursively_valid?(obj)
  obj.is_a?(Set) && super
end

def underlying_class

def underlying_class
  Hash
end

def valid?(obj)

@override Base
def valid?(obj)
  obj.is_a?(Set)
end