class Dry::Core::Memoizable::Memoizer

def define_memoizable(method:)

Other tags:
    Api: - private
def define_memoizable(method:)
  module_eval <<~RUBY, __FILE__, __LINE__ + 1
    def #{method.name}(#{to_declaration(method.parameters)})
      key = [Kernel.__method__] + Kernel.local_variables.map { |var| Kernel.eval(var.to_s) }
      if @__memoized__.key?(key)
        @__memoized__[key]
      else
        @__memoized__[key] = super
      end
    end
  RUBY
  if respond_to?(:ruby2_keywords, true)
    ruby2_keywords(method.name)
  end
end