| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.PolyKinded
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) EitherInt :&&: 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.