| Safe Haskell | Safe-Inferred |
|---|
Data.TypeList
Description
The Module Data.TypeList is a collection of classes to
manipulate lists of types, a.k.a. heterogeneous lists. Check the
module Data.TypeList.MultiIndex for a concrete implementation
of .
TypeList
- class TypeList l where
- class TypeList l => HeadTail l where
- class Component l n where
- class (TypeList l, TypeList l') => AppendList l l' where
- class (Cardinal n, TypeList l) => TakeList n l where
- class (Cardinal n, TypeList l) => DropList n l where
- class (TypeList l, TypeList l') => TailRevList l l' where
- class TypeList l => ReverseList l where
- class JoinList n l l' where
- class Extend l l' where
Documentation
Every has a TypeList. The Length is actually a
type, and should be a Length (see CardinalData.Cardinal).
class Component l n whereSource
Extracts the n-th component of the list l
class (TypeList l, TypeList l') => AppendList l l' whereSource
Instances
| (TypeList Nil, TypeList l) => AppendList Nil l | |
| (TypeList (:|: e l), TypeList l', AppendList l l') => AppendList (:|: e l) l' |
class (TypeList l, TypeList l') => TailRevList l l' whereSource
Reverse l and append it in front of l'.
Instances
| (TypeList Nil, TypeList l) => TailRevList Nil l | |
| (TypeList (:|: e l), TailRevList l (:|: e l'), TypeList l') => TailRevList (:|: e l) l' |
class TypeList l => ReverseList l whereSource
Instances
| ReverseList Nil | |
| (TypeList (:|: e l), TailRevList l Nil, TailRevList (:|: e l) Nil) => ReverseList (:|: e l) |