-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Primitive heterogenous read-only set -- @package hset @version 0.0.3 module Data.HSet.TypeLevel data Nat Z :: Nat S :: Nat -> Nat module Data.HSet -- | Heterogeneous set (list) of elements with unique types. Usefull with -- MonadReader data HSet (elems :: [*]) HSNil :: HSet [] HSCons :: elem -> HSet elems -> HSet (elem : elems) class i ~ (Index e els) => HGet els e i hget :: HGet els e i => HSet els -> e type Contains els e = HGet els e (Index e els) hask :: (MonadReader (HSet els) m, Contains els e) => m e instance (i ~ Index e els, 'S i ~ Index e (e1 : els), HGet els e i) => HGet (e1 : els) e ('S i) instance HGet (e : els) e 'Z