alpha-1.0.15: src/ID.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module ID where
newtype ID = ID Int
deriving (Ord,Eq,Enum,Num)
newtype Range a = Range (a,a)
singleRange i = Range (i,i)
instance Ord a => Eq (Range a) where
a == b = compare a b == EQ
instance Ord a => Ord (Range a) where
compare (Range (a,b)) (Range (a',b'))
| b<=a' = LT
| b'<=a = GT
| otherwise = EQ
instance Show ID where
show (ID i) = "x"++show i