Data.Singletons.Prelude.Base

Basic functions

type family Foldr (a :: TyFun a (TyFun b b -> Type) -> Type) (a :: b) (a :: [a]) :: b where ...

sFoldr

type family Map (a :: TyFun a b -> Type) (a :: [a]) :: [b] where ...

sMap

type family (a :: [a]) :++ (a :: [a]) :: [a] where ...

(%:++)

type family Otherwise :: Bool where ...

sOtherwise

type family Id (a :: a) :: a where ...

sId

type family Const (a :: a) (a :: b) :: a where ...

sConst

type family ((a :: TyFun b c -> Type) :. (a :: TyFun a b -> Type)) (a :: a) :: c where ...

(%:.)

type family (f :: TyFun a b -> *) $ (x :: a) :: b

type family (f :: TyFun a b -> *) $! (x :: a) :: b

(%$)

(%$!)

type family Flip (a :: TyFun a (TyFun b c -> Type) -> Type) (a :: b) (a :: a) :: c where ...

sFlip

type family AsTypeOf (a :: a) (a :: a) :: a where ...

sAsTypeOf

type family Seq (a :: a) (a :: b) :: b where ...

sSeq

Defunctionalization symbols

data FoldrSym0 l

data FoldrSym1 l l

data FoldrSym2 l l l

type FoldrSym3 t t t

data MapSym0 l

data MapSym1 l l

type MapSym2 t t

data (:++$) l

data l :++$$ l

type t :++$$$ t

type OtherwiseSym0

data IdSym0 l

type IdSym1 t

data ConstSym0 l

data ConstSym1 l l

type ConstSym2 t t

data (:.$) l

data l :.$$ l

data (l :.$$$ l) l

type (t :.$$$$ t) t

data ($$)

data ($$$)

type a $$$$ b

data ($!$)

data ($!$$)

type a $!$$$ b

data FlipSym0 l

data FlipSym1 l l

data FlipSym2 l l l

type FlipSym3 t t t

data AsTypeOfSym0 l

data AsTypeOfSym1 l l

type AsTypeOfSym2 t t

data SeqSym0 l

data SeqSym1 l l

type SeqSym2 t t