Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
Lists of types and application
LoT k
represents a list of types which can be applied
to a data type of kind k
.
type family (f :: k) :@@: (tys :: LoT k) :: * where ... Source #
Apply a list of types to a type constructor.
>>>
:kind! Either :@@: (Int :&&: Bool :&&: LoT0)
Either Int Bool :: *
Splitting types
type SplitF (t :: d) (f :: k) = SplitF' t f LoT0 Source #
Split a type t
until the constructor f
is found.
>>>
:kind! SplitF (Either Int Bool) Either
Int :&&: Bool :&&: LoT0 :: LoT (* -> * -> *)>>>
:kind! SplitF (Either Int Bool) (Either Int)
Bool :&&: LoT0 :: LoT (* -> *)
A type constructor and a list of types that can be applied to it.