class Dry::Logic::Operations::Each

def call(input)

def call(input)
  results = input.map { |element| rule.(element) }
  success = results.all?(&:success?)
  Result.new(success, id) do
    failures = results
      .map
      .with_index { |result, idx| [:key, [idx, result.ast(input[idx])]] if result.failure? }
      .compact
    [:set, failures]
  end
end