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