module T::Private::Sealed::NoInherit

def inherited(child)

def inherited(child)
  super
  this_line = Kernel.caller.find {|line| !line.match(/in `inherited'$/)}
  T::Private::Sealed.validate_inheritance(this_line, self, child, 'inherited')
  @sorbet_sealed_module_all_subclasses << child
end

def sealed_subclasses

def sealed_subclasses
  @sorbet_sealed_module_all_subclasses_set ||= # rubocop:disable Naming/MemoizedInstanceVariableName
    begin
      require 'set'
      Set.new(@sorbet_sealed_module_all_subclasses).freeze
    end
end