Add reset method to Rules to manually remove cycles (this is probably not going to work). Add asserts on RuleWrapper overloads.