hset-2.2.0: Primitive list with elements of unique types.

Safe HaskellNone
LanguageHaskell2010

Data.HSet.Type

Synopsis

Documentation

data HSet elems where #

Heterogeneous set (list of elements) with unique types. Useful with MonadReader.

Constructors

HSNil :: HSet '[] 
HSCons :: NotElem elem elems => !elem -> HSet elems -> HSet (elem ': elems) 

Instances

(Eq e, Eq (HSet els)) => Eq (HSet ((:) * e els)) # 

Methods

(==) :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Bool #

(/=) :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Bool #

Eq (HSet ([] *)) # 

Methods

(==) :: HSet [*] -> HSet [*] -> Bool #

(/=) :: HSet [*] -> HSet [*] -> Bool #

(Ord e, Ord (HSet els)) => Ord (HSet ((:) * e els)) # 

Methods

compare :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Ordering #

(<) :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Bool #

(<=) :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Bool #

(>) :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Bool #

(>=) :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> Bool #

max :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> HSet ((* ': e) els) #

min :: HSet ((* ': e) els) -> HSet ((* ': e) els) -> HSet ((* ': e) els) #

Ord (HSet ([] *)) # 

Methods

compare :: HSet [*] -> HSet [*] -> Ordering #

(<) :: HSet [*] -> HSet [*] -> Bool #

(<=) :: HSet [*] -> HSet [*] -> Bool #

(>) :: HSet [*] -> HSet [*] -> Bool #

(>=) :: HSet [*] -> HSet [*] -> Bool #

max :: HSet [*] -> HSet [*] -> HSet [*] #

min :: HSet [*] -> HSet [*] -> HSet [*] #

(Show e, Show (HSet els)) => Show (HSet ((:) * e els)) # 

Methods

showsPrec :: Int -> HSet ((* ': e) els) -> ShowS #

show :: HSet ((* ': e) els) -> String #

showList :: [HSet ((* ': e) els)] -> ShowS #

Show (HSet ([] *)) # 

Methods

showsPrec :: Int -> HSet [*] -> ShowS #

show :: HSet [*] -> String #

showList :: [HSet [*]] -> ShowS #

(NFData e, NFData (HSet els)) => NFData (HSet ((:) * e els)) # 

Methods

rnf :: HSet ((* ': e) els) -> () #

NFData (HSet ([] *)) # 

Methods

rnf :: HSet [*] -> () #