|
Data.DDeepArrow | Portability | portable | Stability | experimental | Maintainer | conal@conal.net |
|
|
|
|
|
Description |
"Deep arrows" as a data type. Handy for code generation.
|
|
Synopsis |
|
data DArrow where | Arr :: DVal (a -> b) -> a `DArrow` b | Compose :: (a `DArrow` b) -> (b `DArrow` c) -> a `DArrow` c | First :: (a `DArrow` a') -> (a, b) `DArrow` (a', b) | Second :: (b `DArrow` b') -> (a, b) `DArrow` (a, b') | Result :: (b `DArrow` b') -> (a -> b) `DArrow` (a -> b') | FunF :: (c -> a, b) `DArrow` (c -> (a, b)) | FunS :: (a, c -> b) `DArrow` (c -> (a, b)) | FunR :: (a -> c -> b) `DArrow` (c -> a -> b) | CurryA :: ((a, b) -> c) `DArrow` (a -> b -> c) | UncurryA :: (a -> b -> c) `DArrow` ((a, b) -> c) | LAssocA :: (a, (b, c)) `DArrow` ((a, b), c) | RAssocA :: ((a, b), c) `DArrow` (a, (b, c)) | IdA :: a `DArrow` a | DupA :: a `DArrow` (a, a) | FstA :: (a, b) `DArrow` a | SndA :: (a, b) `DArrow` b | SwapA :: (a, b) `DArrow` (b, a) |
|
| | |
|
|
|
The DeepArrow data type
|
|
|
This GADT mirrors the DeepArrow class and part of the FunArr class.
| Constructors | Arr :: DVal (a -> b) -> a `DArrow` b | | Compose :: (a `DArrow` b) -> (b `DArrow` c) -> a `DArrow` c | | First :: (a `DArrow` a') -> (a, b) `DArrow` (a', b) | | Second :: (b `DArrow` b') -> (a, b) `DArrow` (a, b') | | Result :: (b `DArrow` b') -> (a -> b) `DArrow` (a -> b') | | FunF :: (c -> a, b) `DArrow` (c -> (a, b)) | | FunS :: (a, c -> b) `DArrow` (c -> (a, b)) | | FunR :: (a -> c -> b) `DArrow` (c -> a -> b) | | CurryA :: ((a, b) -> c) `DArrow` (a -> b -> c) | | UncurryA :: (a -> b -> c) `DArrow` ((a, b) -> c) | | LAssocA :: (a, (b, c)) `DArrow` ((a, b), c) | | RAssocA :: ((a, b), c) `DArrow` (a, (b, c)) | | IdA :: a `DArrow` a | | DupA :: a `DArrow` (a, a) | | FstA :: (a, b) `DArrow` a | | SndA :: (a, b) `DArrow` b | | SwapA :: (a, b) `DArrow` (b, a) | |
| Instances | |
|
|
|
A GADT alternative to terms. Allows generation of Haskell terms and,
from there, strings and eval.
| Constructors | | Instances | |
|
|
Produced by Haddock version 2.3.0 |