class Dry::Core::Memoizable::Memoizer

def declaration(definition, lookup)

Other tags:
    Api: - private
def declaration(definition, lookup)
  params = []
  binds = []
  defined = {}
  definition.each do |type, name|
    mapped_type = map_bind_type(type, name, lookup, defined) do
      raise ::NotImplementedError, "type: #{type}, name: #{name}"
    end
    if mapped_type
      defined[mapped_type] = true
      bind = name_from_param(name) || make_bind_name(binds.size)
      binds << bind
      params << param(bind, mapped_type)
    end
  end
  [params, binds]
end