queuelike-1.0.6: Data/Queue/TrieQueue/Edge.hs
{-# LANGUAGE TypeFamilies, TypeOperators #-}
-- | As simple as it looks: an edge type constructor that performs comparisons only on its key.
module Data.Queue.TrieQueue.Edge ((:-)(..)) where
data k :- m = k :- m deriving (Show)
instance Eq k => Eq (k :- m) where
(x :- _) == (y :- _) = x == y
instance Ord k => Ord (k :- m) where
(x :- _) `compare` (y :- _) = x `compare` y
(x :- _) <= (y :- _) = x <= y