+let rec eq_todo l1 l2 =
+ match l1,l2 with
+ | (D g1) :: tl1,(D g2) :: tl2 when g1=g2 -> eq_todo tl1 tl2
+ | (S (g1,k1,(c1,lt1),i1)) :: tl1, (S (g2,k2,(c2,lt2),i2)) :: tl2
+ when i1 = i2 && g1 = g2 && k1 = k2 && c1 = c2 ->
+ if Lazy.force lt1 = Lazy.force lt2 then eq_todo tl1 tl2 else false
+ | [],[] -> true
+ | _ -> false
+;;