class Dry::Logic::Predicate
def curry(*args)
as long as we keep track of the args, we don't actually need to curry the proc...
def curry(*args) if args.size > 0 all_args = @args + args size = all_args.size if size <= arity Curried.new(id, args: all_args, fn: fn, arity: arity) else raise_arity_error(all_args.size) end else self end end