hlist-0.0.0.0: Heterogeneous list
Safe HaskellSafe
LanguageHaskell2010

Data.HList

Documentation

data List as where Source #

Constructors

Nil :: List '[] 
(:.) :: a -> List as -> List (a ': as) infixr 5 

Instances

Instances details
(Eq a, Eq (List as)) => Eq (List (a ': as)) Source # 
Instance details

Defined in Data.HList

Methods

(==) :: List (a ': as) -> List (a ': as) -> Bool #

(/=) :: List (a ': as) -> List (a ': as) -> Bool #

Eq (List ('[] :: [Type])) Source # 
Instance details

Defined in Data.HList

Methods

(==) :: List '[] -> List '[] -> Bool #

(/=) :: List '[] -> List '[] -> Bool #

(Ord a, Ord (List as)) => Ord (List (a ': as)) Source # 
Instance details

Defined in Data.HList

Methods

compare :: List (a ': as) -> List (a ': as) -> Ordering #

(<) :: List (a ': as) -> List (a ': as) -> Bool #

(<=) :: List (a ': as) -> List (a ': as) -> Bool #

(>) :: List (a ': as) -> List (a ': as) -> Bool #

(>=) :: List (a ': as) -> List (a ': as) -> Bool #

max :: List (a ': as) -> List (a ': as) -> List (a ': as) #

min :: List (a ': as) -> List (a ': as) -> List (a ': as) #

Ord (List ('[] :: [Type])) Source # 
Instance details

Defined in Data.HList

Methods

compare :: List '[] -> List '[] -> Ordering #

(<) :: List '[] -> List '[] -> Bool #

(<=) :: List '[] -> List '[] -> Bool #

(>) :: List '[] -> List '[] -> Bool #

(>=) :: List '[] -> List '[] -> Bool #

max :: List '[] -> List '[] -> List '[] #

min :: List '[] -> List '[] -> List '[] #

type family Foldr f z xs where ... Source #

Equations

Foldr f z '[] = z 
Foldr f z (x ': xs) = f x (Foldr f z xs) 

class Curry as where Source #

Methods

uncurry :: Foldr (->) b as -> List as -> b Source #

curry :: (List as -> b) -> Foldr (->) b as Source #

Instances

Instances details
Curry ('[] :: [Type]) Source # 
Instance details

Defined in Data.HList

Methods

uncurry :: Foldr (->) b '[] -> List '[] -> b Source #

curry :: (List '[] -> b) -> Foldr (->) b '[] Source #

Curry as => Curry (a ': as) Source # 
Instance details

Defined in Data.HList

Methods

uncurry :: Foldr (->) b (a ': as) -> List (a ': as) -> b Source #

curry :: (List (a ': as) -> b) -> Foldr (->) b (a ': as) Source #