- compare (HsIntegral i1 _) (HsIntegral i2 _) = i1 `compare` i2
- compare (HsIntegral _ _) (HsFractional _ _) = LT
- compare (HsFractional f1 _) (HsFractional f2 _) = f1 `compare` f2
- compare (HsFractional f1 _) (HsIntegral _ _) = GT
+ compare (HsIntegral i1 _ _) (HsIntegral i2 _ _) = i1 `compare` i2
+ compare (HsIntegral _ _ _) (HsFractional _ _ _) = LT
+ compare (HsIntegral _ _ _) (HsIsString _ _ _) = LT
+ compare (HsFractional f1 _ _) (HsFractional f2 _ _) = f1 `compare` f2
+ compare (HsFractional f1 _ _) (HsIntegral _ _ _) = GT
+ compare (HsFractional f1 _ _) (HsIsString _ _ _) = LT
+ compare (HsIsString s1 _ _) (HsIsString s2 _ _) = s1 `compare` s2
+ compare (HsIsString s1 _ _) (HsIntegral _ _ _) = GT
+ compare (HsIsString s1 _ _) (HsFractional _ _ _) = GT