class Backports::Data

def initialize(**named_values)

def initialize(**named_values)
  given = named_values.keys
  missing = members - given
  unless missing.empty?
    missing = missing.map(&:inspect).join(", ")
    raise ArgumentError, "missing keywords: #{missing}"
  end
  if members.size < given.size
    extra = (given - members).map(&:inspect).join(", ")
    raise ArgumentError, "unknown keywords: #{extra}"
  end
  @__members__ = named_values.freeze
  freeze
end