Copyright | (C) 2014 Jan Stolarek |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Jan Stolarek (jan.stolarek@p.lodz.pl) |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Implements singletonized versions of functions from GHC.Base
module.
Because many of these definitions are produced by Template Haskell,
it is not possible to create proper Haddock documentation. Please look
up the corresponding operation in Data.Tuple
. Also, please excuse
the apparent repeated variable names. This is due to an interaction
between Template Haskell and Haddock.
- type family Foldr a a a :: b
- sFoldr :: forall t t t. Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply FoldrSym0 t) t) t)
- type family Map a a :: [b]
- sMap :: forall t t. Sing t -> Sing t -> Sing (Apply (Apply MapSym0 t) t)
- type family a :++ a :: [a]
- (%:++) :: forall t t. Sing t -> Sing t -> Sing (Apply (Apply (:++$) t) t)
- type Otherwise = (TrueSym0 :: Bool)
- sOtherwise :: Sing OtherwiseSym0
- type family Id a :: a
- sId :: forall t. Sing t -> Sing (Apply IdSym0 t)
- type family Const a a :: a
- sConst :: forall t t. Sing t -> Sing t -> Sing (Apply (Apply ConstSym0 t) t)
- type family (a :. a) a :: c
- (%:.) :: forall t t t. Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply (:.$) t) t) t)
- type family f $ x :: b
- type family f $! x :: b
- (%$) :: forall f x. Sing f -> Sing x -> Sing ((($$) @@ f) @@ x)
- (%$!) :: forall f x. Sing f -> Sing x -> Sing ((($!$) @@ f) @@ x)
- type family Flip a a a :: c
- sFlip :: forall t t t. Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply FlipSym0 t) t) t)
- type family AsTypeOf a a :: a
- sAsTypeOf :: forall t t. Sing t -> Sing t -> Sing (Apply (Apply AsTypeOfSym0 t) t)
- type family Seq a a :: b
- sSeq :: forall t t. Sing t -> Sing t -> Sing (Apply (Apply SeqSym0 t) t)
- data FoldrSym0 l
- data FoldrSym1 l l
- data FoldrSym2 l l l
- type FoldrSym3 t t t = Foldr t t t
- data MapSym0 l
- data MapSym1 l l
- type MapSym2 t t = Map t t
- data (:++$) l
- data l :++$$ l
- type OtherwiseSym0 = Otherwise
- data IdSym0 l
- type IdSym1 t = Id t
- data ConstSym0 l
- data ConstSym1 l l
- type ConstSym2 t t = Const t t
- data (:.$) l
- data l :.$$ l
- data (l :.$$$ l) l
- data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
- data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
- type ($$$$) a b = ($) a b
- data ($!$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
- data ($!$$) :: (TyFun a b -> *) -> TyFun a b -> *
- type ($!$$$) a b = ($!) a b
- data FlipSym0 l
- data FlipSym1 l l
- data FlipSym2 l l l
- data AsTypeOfSym0 l
- data AsTypeOfSym1 l l
- type AsTypeOfSym2 t t = AsTypeOf t t
- data SeqSym0 l
- data SeqSym1 l l
- type SeqSym2 t t = Seq t t
Basic functions
sFoldr :: forall t t t. Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply FoldrSym0 t) t) t) Source
(%:.) :: forall t t t. Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply (:.$) t) t) t) Source
sFlip :: forall t t t. Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply FlipSym0 t) t) t) Source
Defunctionalization symbols
SuppressUnusedWarnings ([k] -> TyFun [k] [k] -> *) ((:++$$) k) | |
type Apply [k] [k] ((:++$$) k l1) l0 |
type OtherwiseSym0 = Otherwise Source
data AsTypeOfSym0 l Source
SuppressUnusedWarnings (TyFun k (TyFun k k -> *) -> *) (AsTypeOfSym0 k) | |
type Apply (TyFun k k -> *) k (AsTypeOfSym0 k) l0 = AsTypeOfSym1 k l0 |
data AsTypeOfSym1 l l Source
SuppressUnusedWarnings (k -> TyFun k k -> *) (AsTypeOfSym1 k) | |
type Apply k k (AsTypeOfSym1 k l1) l0 = AsTypeOfSym2 k l1 l0 |
type AsTypeOfSym2 t t = AsTypeOf t t Source