class Dry::Logic::RuleCompiler

def visit_predicate(node)

def visit_predicate(node)
  name, params = node
  predicate = Rule::Predicate.build(predicates[name])
  if params.size > 1
    args = params.map(&:last).reject { |val| val == Undefined }
    predicate.curry(*args)
  else
    predicate
  end
end