- | Record {unique=u1; _}, Record {unique=u2; _} -> u1 == u2
- | Array {unique=u1; _}, Array {unique=u2; _} -> u1 == u2
- | t1 , t2 -> t1 = t2
+ | Name (s1, _) , Name (s2, _) -> Sym.is_equal s1 s2
+ | Record {unique=s1; _}, Record {unique=s2; _} -> Sym.is_equal s1 s2
+ | Record _ , Nil -> true
+ | Nil , Record _ -> true
+ | Array {unique=s1; _}, Array {unique=s2; _} -> Sym.is_equal s1 s2
+ | t1 , t2 -> t1 = t2