class Dry::Logic::Rule::Composite

def arity

def arity
  -1
end

def curry(*args)

def curry(*args)
  self.class.new(left.curry(*args), right.curry(*args))
end

def initialize(left, right)

def initialize(left, right)
  @left = left
  @right = right
end

def input

def input
  Predicate::Undefined
end

def name

def name
  :"#{left.name}_#{type}_#{right.name}"
end

def to_ast

def to_ast
  [type, [left.to_ast, right.to_ast]]
end