- cmp_ctxt (c1, ty1) (c2, ty2)
- = cmp c1 c2 `thenCmp` cmpHsType cmp ty1 ty2
+ cmp_ctxt (c1, tys1) (c2, tys2)
+ = cmp c1 c2 `thenCmp` cmpHsTypes cmp tys1 tys2
+
+-- Should be in Type, perhaps
+cmpUsg UsOnce UsOnce = EQ
+cmpUsg UsOnce UsMany = LT
+cmpUsg UsMany UsOnce = GT
+cmpUsg UsMany UsMany = EQ
+cmpUsg u1 u2 = pprPanic "cmpUsg:" $
+ ppr u1 <+> ppr u2
+
+-- Should be in Maybes, I guess
+cmpMaybe cmp Nothing Nothing = EQ
+cmpMaybe cmp Nothing (Just x) = LT
+cmpMaybe cmp (Just x) Nothing = GT
+cmpMaybe cmp (Just x) (Just y) = x `cmp` y