class Dry::Core::Memoizable::Memoizer

def to_declaration(params, lookup = params.to_h)

Other tags:
    Api: - private
def to_declaration(params, lookup = params.to_h)
  params.map do |type, name|
    case type
    when :req
      name
    when :rest
      "*#{name}"
    when :keyreq
      "#{name}:"
    when :keyrest
      "**#{name}"
    when :block
      "&#{name}"
    when :opt
      lookup.key?(:rest) ? nil : "*args"
    when :key
      lookup.key?(:keyrest) ? nil : "**kwargs"
    else
      raise NotImplementedError, "type: #{type}, name: #{name}"
    end
  end.compact.join(", ")
end