class RBS::InvalidTypeApplicationError

def self.check!(type_name:, args:, params:, location:)

def self.check!(type_name:, args:, params:, location:)
  unless args.size == params.size
    raise new(type_name: type_name, args: args, params: params, location: location)
  end
end

def initialize(type_name:, args:, params:, location:)

def initialize(type_name:, args:, params:, location:)
  @type_name = type_name
  @args = args
  @params = params
  @location = location
  super "#{Location.to_string location}: #{type_name} expects parameters [#{params.join(", ")}], but given args [#{args.join(", ")}]"
end