Copyright | (C) 2014 Jan Stolarek |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | jan.stolarek@p.lodz.pl |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Defines promoted functions and datatypes relating to Either
,
including a promoted version of all the definitions in Data.Either
.
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.Either
. Also, please excuse
the apparent repeated variable names. This is due to an interaction
between Template Haskell and Haddock.
- either_ :: forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
- type family Either_ a a a :: c
- type family Lefts a :: [] a
- type family Rights a :: [] b
- type family PartitionEithers a :: (,) ([] a) ([] b)
- type family IsLeft a :: Bool
- type family IsRight a :: Bool
- data LeftSym0 l
- type LeftSym1 t = Left t
- data RightSym0 l
- type RightSym1 t = Right t
- data Either_Sym0 l
- data Either_Sym1 l l
- data Either_Sym2 l l l
- type Either_Sym3 t t t = Either_ t t t
- data LeftsSym0 l
- type LeftsSym1 t = Lefts t
- data RightsSym0 l
- type RightsSym1 t = Rights t
- data IsLeftSym0 l
- type IsLeftSym1 t = IsLeft t
- data IsRightSym0 l
- type IsRightSym1 t = IsRight t
Promoted functions from Data.Either
The preceding two definitions are derived from the function either
in
Data.Either
. The extra underscore is to avoid name clashes with the type
Either
.
type family PartitionEithers a :: (,) ([] a) ([] b) Source
PartitionEithers a_1627864927 = Apply (Apply (Apply FoldrSym0 (Apply (Apply Either_Sym0 (Let_1627864934LeftSym1 a_1627864927)) (Let_1627864934RightSym1 a_1627864927))) (Apply (Apply Tuple2Sym0 []) [])) a_1627864927 |
Defunctionalization symbols
data Either_Sym0 l Source
SuppressUnusedWarnings (TyFun (TyFun k k -> *) (TyFun (TyFun k k -> *) (TyFun (Either k k) k -> *) -> *) -> *) (Either_Sym0 k k k) | |
type Apply (TyFun (TyFun k2 k -> *) (TyFun (Either k1 k2) k -> *) -> *) (TyFun k1 k -> *) (Either_Sym0 k2 k k1) l0 = Either_Sym1 k k1 k2 l0 |
data Either_Sym1 l l Source
SuppressUnusedWarnings ((TyFun k k -> *) -> TyFun (TyFun k k -> *) (TyFun (Either k k) k -> *) -> *) (Either_Sym1 k k k) | |
type Apply (TyFun (Either k2 k) k1 -> *) (TyFun k k1 -> *) (Either_Sym1 k1 k2 k l1) l0 = Either_Sym2 k1 k2 k l1 l0 |
data Either_Sym2 l l l Source
SuppressUnusedWarnings ((TyFun k k -> *) -> (TyFun k k -> *) -> TyFun (Either k k) k -> *) (Either_Sym2 k k k) | |
type Apply k (Either k1 k2) (Either_Sym2 k k1 k2 l1 l2) l0 = Either_Sym3 k k1 k2 l1 l2 l0 |
type Either_Sym3 t t t = Either_ t t t Source
data RightsSym0 l Source
SuppressUnusedWarnings (TyFun [Either k k] [k] -> *) (RightsSym0 k k) | |
type Apply [k] [Either k1 k] (RightsSym0 k1 k) l0 = RightsSym1 k1 k l0 |
type RightsSym1 t = Rights t Source
data IsLeftSym0 l Source
SuppressUnusedWarnings (TyFun (Either k k) Bool -> *) (IsLeftSym0 k k) | |
type Apply Bool (Either k k1) (IsLeftSym0 k k1) l0 = IsLeftSym1 k k1 l0 |
type IsLeftSym1 t = IsLeft t Source
data IsRightSym0 l Source
SuppressUnusedWarnings (TyFun (Either k k) Bool -> *) (IsRightSym0 k k) | |
type Apply Bool (Either k k1) (IsRightSym0 k k1) l0 = IsRightSym1 k k1 l0 |
type IsRightSym1 t = IsRight t Source