@@ -129,8 +129,14 @@ instance (KnownSymbol k, Show v, Show' (Map s)) => Show' (Map ((k :-> v) ': s))
129129instance Eq (Map '[]) where
130130 Empty == Empty = True
131131
132−instance (KnownSymbol k, Eq (Var k), Eq v, Eq (Map s)) => Eq (Map ((k :-> v) ': s)) where
133− (Ext k v m) == (Ext k' v' m') = k == k' && v == v' && m == m'
132+instance (Eq v, Eq (Map s)) => Eq (Map ((k :-> v) ': s)) where
133+ (Ext Var v m) == (Ext Var v' m') = v == v' && m == m'
134+
135+instance Ord (Map '[]) where
136+ compare Empty Empty = EQ
137+
138+instance (Ord v, Ord (Map s)) => Ord (Map ((k :-> v) ': s)) where
139+ compare (Ext Var v m) (Ext Var v' m') = compare v v' `mappend` compare m m'
134140
135141{-| Union of two finite maps (normalising) -}
136142union :: (Unionable s t) => Map s -> Map t -> Map (Union s t)