-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Operations on type-level lists and tuples.
--
-- Operations on type-level lists and tuples, together with their curried
-- versions.
@package type-list
@version 0.3.0.4
-- | Operations on type-level lists and tuples, together with their curried
-- versions - the more apostrophes, the more arguments are missing from
-- the function. Curried type functions can be evaluated by the
-- Apply type family from Data.Singletons.
module Data.Type.List
-- | Maps a curried type function over a type list.
data Map'' :: TyFun (TyFun a b -> *) (TyFun [a] [b] -> *) -> *
[Map''] :: Map'' f
data Map' :: (TyFun a b -> *) -> TyFun [a] [b] -> *
[Map'] :: Map' f g
-- | Zip two list with a curried two-argument type function.
data ZipWith''' :: TyFun (TyFun a (TyFun b c -> *) -> *) (TyFun [a] (TyFun [b] [c] -> *) -> *) -> *
[ZipWith'''] :: ZipWith''' f
data ZipWith'' :: (TyFun a (TyFun b c -> *) -> *) -> TyFun [a] (TyFun [b] [c] -> *) -> *
[ZipWith''] :: ZipWith'' f xs
data ZipWith' :: (TyFun a (TyFun b c -> *) -> *) -> [a] -> TyFun [b] [c] -> *
[ZipWith'] :: ZipWith' f xs ys
-- | Length of a type-level list, as a type-level natural number.
-- | Length of a type-level list, as an integer.
lengthVal :: forall sing xs. KnownNat (Length xs) => sing xs -> Integer
data Length' :: TyFun [a] Nat -> *
[Length'] :: Length' l
-- | Insert a type into a type list.
data Insert'' :: TyFun k (TyFun [k] [k] -> *) -> *
[Insert''] :: Insert'' f
data Insert' :: k -> TyFun [k] [k] -> *
[Insert'] :: Insert' x f
-- | Set union over type lists.
data Union'' :: TyFun [k] (TyFun [k] [k] -> *) -> *
[Union''] :: Union'' f
data Union' :: [k] -> TyFun [k] [k] -> *
[Union'] :: Union' xs f
-- | Remove a type from type list.
data Remove'' :: TyFun k (TyFun [k] [k] -> *) -> *
[Remove''] :: Remove'' f
data Remove' :: k -> TyFun [k] [k] -> *
[Remove'] :: Remove' x f
-- | Set difference over type lists.
data Difference'' :: TyFun [k] (TyFun [k] [k] -> *) -> *
[Difference''] :: Difference'' f
data Difference' :: [k] -> TyFun [k] [k] -> *
[Difference'] :: Difference' xs f
-- | Helper type family for Reverse.
-- | Reverse a type-level list.
data Reverse' :: TyFun [k] [k] -> *
[Reverse'] :: Reverse' f
-- | Type list membership test.
data Find'' :: TyFun k (TyFun [k] Bool -> *) -> *
[Find''] :: Find'' f
data Find' :: k -> TyFun [k] Bool -> *
[Find'] :: Find' x f
-- | Type list intersection.
data Intersection'' :: TyFun [k] (TyFun [k] [k] -> *) -> *
[Intersection''] :: Intersection'' f
data Intersection' :: [k] -> TyFun [k] [k] -> *
[Intersection'] :: Intersection' xs f
-- | Test if two list do not contain any equal elements.
data Distinct'' :: TyFun [k] (TyFun [k] Bool -> *) -> *
[Distinct''] :: Distinct'' f
data Distinct' :: [k] -> TyFun [k] Bool -> *
[Distinct'] :: Distinct' xs f
-- | Lookup an association type list.
data Lookup'' :: TyFun k (TyFun [(k, a)] a -> *) -> *
[Lookup''] :: Lookup'' f
data Lookup' :: k -> TyFun [(k, a)] a -> *
[Lookup'] :: Lookup' x f
-- | First element of a type pair.
data Fst' :: TyFun (a, b) a -> *
[Fst'] :: Fst' f
-- | Second element of a type pair.
data Snd' :: TyFun (a, b) b -> *
[Snd'] :: Snd' k
-- | Cons a type pair with elements in order.
data AsFst'' :: TyFun a (TyFun b (a, b) -> *) -> *
[AsFst''] :: AsFst'' f
data AsFst' :: a -> TyFun b (a, b) -> *
[AsFst'] :: AsFst' a f
-- | Cons a type pair in reverse order.
data AsSnd'' :: TyFun a (TyFun b (b, a) -> *) -> *
[AsSnd''] :: AsSnd'' f
data AsSnd' :: a -> TyFun b (b, a) -> *
[AsSnd'] :: AsSnd' k f
-- | Swap elements of a type pair.
data Swap' :: TyFun (a, b) (b, a) -> *
[Swap'] :: Swap' f