class Dry::Logic::Rule::Attr

def self.new(name, predicate)

def self.new(name, predicate)
  super(name, predicate.curry(name))
end

def call(input)

def call(input)
  Logic::Result::LazyValue.new(input, predicate.(input), self)
end

def evaluate_input(input)

def evaluate_input(input)
  input.public_send(name)
end

def type

def type
  :attr
end