| Copyright | (C) 2015 Edward Kmett | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | Edward Kmett <ekmett@gmail.com> | 
| Stability | experimental | 
| Portability | non-portable | 
| Safe Haskell | Trustworthy | 
| Language | Haskell98 | 
Control.Monad.Hyper
Description
- newtype Hyper a b = Hyper {}
 - unroll :: Hyper a b -> (Hyper a b -> a) -> b
 - roll :: ((Hyper a b -> a) -> b) -> Hyper a b
 - ana :: (x -> (x -> a) -> b) -> x -> Hyper a b
 - cata :: (((x -> a) -> b) -> x) -> Hyper a b -> x
 - push :: (a -> b) -> Hyper a b -> Hyper a b
 - run :: Hyper a a -> a
 - project :: Hyper a b -> a -> b
 - fold :: [a] -> (a -> b -> c) -> c -> Hyper b c
 - build :: (forall b c. (a -> b -> c) -> c -> Hyper b c) -> [a]