class Dry::Core::ClassBuilder

def create_base(namespace, name, parent)

Other tags:
    Api: - private
def create_base(namespace, name, parent)
  begin
    namespace.const_get(name)
  rescue NameError # rubocop:disable Lint/SuppressedException
  end
  if namespace.const_defined?(name, false)
    existing = namespace.const_get(name)
    unless existing <= parent
      raise ParentClassMismatch, "#{existing.name} must be a subclass of #{parent.name}"
    end
    existing
  else
    klass = ::Class.new(parent || ::Object)
    namespace.const_set(name, klass)
    klass
  end
end