{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Kempe.Unique ( Unique (..) ) where import Prettyprinter (Pretty) newtype Unique = Unique { Unique -> Int unUnique :: Int } deriving (Unique -> Unique -> Bool (Unique -> Unique -> Bool) -> (Unique -> Unique -> Bool) -> Eq Unique forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Unique -> Unique -> Bool $c/= :: Unique -> Unique -> Bool == :: Unique -> Unique -> Bool $c== :: Unique -> Unique -> Bool Eq, Eq Unique Eq Unique -> (Unique -> Unique -> Ordering) -> (Unique -> Unique -> Bool) -> (Unique -> Unique -> Bool) -> (Unique -> Unique -> Bool) -> (Unique -> Unique -> Bool) -> (Unique -> Unique -> Unique) -> (Unique -> Unique -> Unique) -> Ord Unique Unique -> Unique -> Bool Unique -> Unique -> Ordering Unique -> Unique -> Unique forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: Unique -> Unique -> Unique $cmin :: Unique -> Unique -> Unique max :: Unique -> Unique -> Unique $cmax :: Unique -> Unique -> Unique >= :: Unique -> Unique -> Bool $c>= :: Unique -> Unique -> Bool > :: Unique -> Unique -> Bool $c> :: Unique -> Unique -> Bool <= :: Unique -> Unique -> Bool $c<= :: Unique -> Unique -> Bool < :: Unique -> Unique -> Bool $c< :: Unique -> Unique -> Bool compare :: Unique -> Unique -> Ordering $ccompare :: Unique -> Unique -> Ordering $cp1Ord :: Eq Unique Ord, [Unique] -> Doc ann Unique -> Doc ann (forall ann. Unique -> Doc ann) -> (forall ann. [Unique] -> Doc ann) -> Pretty Unique forall ann. [Unique] -> Doc ann forall ann. Unique -> Doc ann forall a. (forall ann. a -> Doc ann) -> (forall ann. [a] -> Doc ann) -> Pretty a prettyList :: [Unique] -> Doc ann $cprettyList :: forall ann. [Unique] -> Doc ann pretty :: Unique -> Doc ann $cpretty :: forall ann. Unique -> Doc ann Pretty)