A guard over bindings only, with no fact input.
Produced by the rule level guard, defrule r(...) when <guard> do, and by guards
lifted out of a condition because they only reference variables bound upstream.
:bind is what the guard reads, not what it introduces.
Summary
Types
@type t() :: %Rete.IR.Test{ __ast__: %{guard: Macro.t(), bind: %{required(atom()) => Macro.t()}} | nil, bind: [atom()], expr: Rete.IR.Expr.t() }