Issue #27 resolved
The following rules break
D :- ((A BEFORE B) BEFORE C) where A.foo D :- ((A BEFORE B) BEFORE C) where (A.foo = B.bar)
The problem is that the expression references only the nested rule. The result is that the restriction is correctly applied to that rule but also incorrectly applied to the top level rule.