class Dry::Logic::Rule
def bind(object)
def bind(object) if UnboundMethod === predicate self.class.new(predicate.bind(object), options) else self.class.new( -> *args { object.instance_exec(*args, &predicate) }, options.merge(arity: arity, parameters: parameters) ) end end