module Dry::Logic

def self.Predicate(block)

def self.Predicate(block)
  case block
  when Method then Predicate.new(block.name, &block)
  else raise ArgumentError, 'predicate needs an :id'
  end
end