1datatype 'a Tree = 2 Lf 3 | Br of 'a * 'a Tree * 'a Tree 4; 5 6val t1 = Br(2, Br(1, Lf, Lf), Br(3, Lf, Lf)); 7 8fun foldTree f u Lf = u 9 | foldTree f u (Br(a, left, right)) = 10 f a (foldTree f u left) (foldTree f u right) 11; 12 13fun revBranch a left right = Br(a, right, left); 14 15local 16 val reflect = foldTree revBranch Lf; 17in 18 val refl_t1 = reflect t1; 19end 20