; Step with alternating feet, left before right (relation left (i64)) (relation right (i64)) (relation middle (i64)) (left 0) (right 0) (ruleset step-left) (rule ((left x) (right x)) ((left (+ x 1))) :ruleset step-left) (ruleset step-right) (rule ((left x) (right y) (= x (+ y 1))) ((right x)) :ruleset step-right) (ruleset step-middle) (rule ((left x)) ((middle x)) :ruleset step-middle) (unstable-combined-ruleset my-combination step-left step-right step-middle) (run-schedule (repeat 1 my-combination)) (check (left 1)) (check (right 0)) ;; middle didn't observe anything except original step (check (middle 0)) (fail (check (left 2))) (fail (check (right 1))) (fail (check (middle 1))) (fail (check (middle 2))) (run-schedule (repeat 9 (saturate step-right) my-combination (saturate step-right))) (check (left 10)) (check (right 10)) ;; middle didn't get a chance to observe (left 10) (check (middle 9)) (fail (check (middle 10))) (fail (check (left 11))) (fail (check (right 11)))