An unnormalized logical gate, {gate, [condition, ...]}.
This is a parser placeholder. Rete.DSL.Normalize rewrites gates into plain
conditions, Rete.IR.Negation nodes, and {:or, [[condition, ...], ...]}
disjunctions.
:gate is one of :and, :or, :not, :nand, :nor, :xor, :xnor. N-ary
:xor means exactly one argument holds. :xnor is its negation. :not with
several arguments negates their conjunction. :code identifies the gate by
structure.
Summary
Types
@type t() :: %Rete.IR.Gate{ args: [Rete.IR.condition()], code: [atom() | list()], gate: :and | :or | :not | :nand | :nor | :xor | :xnor }