(datatype Math (Add Math Math) (Lit i64)) (birewrite (Add (Add x y) z) (Add x (Add y z))) (let a (Lit 1)) (let b (Lit 2)) (let c (Lit 3)) (let d (Lit 4)) (let e (Lit 5)) (let f (Lit 6)) (let ex1 (Add (Add a b) c)) (let ex2 (Add d (Add e f))) (run 10) (check (= ex1 (Add a (Add b c)))) (check (= ex2 (Add (Add d e) f)))