let compare t1 t2 = let c = Pervasives.compare t2.tag t1.tag in if c = 0 then c else match (view t1).f, (view t2).f with | (Sy.True | Sy.False ), (Sy.True | Sy.False ) -> c | (Sy.True | Sy.False ), _ -> -1 | _, (Sy.True | Sy.False ) -> 1 | _,_ -> c