Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- newtype Tape w m a = Tape {
- unconsTape :: m (a, w (Tape w m a))
- headTape :: Functor m => Tape w m a -> m a
- cueTape :: (Comonad w, Applicative m) => Tape w m a -> m (w (Tape w m a))
- yield :: Applicative m => a -> w (Tape w m a) -> Tape w m a
- yieldMany :: (Comonad w, Foldable f, Applicative m) => f a -> w (Tape w m a) -> Tape w m a
- effect :: Monad m => m (Tape w m a) -> Tape w m a
- repeater :: (Functor m, Comonad w) => m (w a) -> Tape w m a
- flattenTape :: (Comonad w, Foldable f, Monad m) => Tape w m (f a) -> Tape w m a
- filterTape :: (Comonad w, Monad m) => (a -> Bool) -> Tape w m a -> Tape w m a
- foldTape :: (Comonad w, Foldable f, Monad m) => (a -> f b) -> Tape w m a -> Tape w m b
- hoistTransTape :: (Functor w, Functor n) => (forall x. v x -> w x) -> (forall x. m x -> n x) -> Tape v m a -> Tape w n a
- hoistTape :: (Functor w, Functor m) => (forall x. v x -> w x) -> Tape v m a -> Tape w m a
- transTape :: (Functor w, Functor n) => (forall x. m x -> n x) -> Tape w m a -> Tape w n a
- controlTape :: Functor m => (w (Tape w m a) -> w (Tape w m a)) -> Tape w m a -> Tape w m a
- pushBack :: (Foldable f, Comonad w, Monad m) => f a -> Tape w m a -> Tape w m a
- intercept :: (Functor w, Monad m) => (a -> m b) -> Tape w m a -> Tape w m b
- class Functor f => Chronological f where
- coincidence :: f a -> f b -> EventOrder (f (a, b))
- data EventOrder a
- = Simultaneous a
- | LeftFirst
- | RightFirst
Documentation
Tape w m a
is a producer of values with a type a
.
It may cause effects m
and has a comonadic control w
.
Tape | |
|
Consuming tapes
cueTape :: (Comonad w, Applicative m) => Tape w m a -> m (w (Tape w m a)) Source
Denudate the control without dropping a value.
Constructing tapes
yield :: Applicative m => a -> w (Tape w m a) -> Tape w m a Source
repeater :: (Functor m, Comonad w) => m (w a) -> Tape w m a Source
Build a tape that yields the same value, with the very same effect and exactly the same control.
Transforming tapes
flattenTape :: (Comonad w, Foldable f, Monad m) => Tape w m (f a) -> Tape w m a Source
Flatten a tape of Foldable
containers.
hoistTransTape :: (Functor w, Functor n) => (forall x. v x -> w x) -> (forall x. m x -> n x) -> Tape v m a -> Tape w n a Source
hoistTape :: (Functor w, Functor m) => (forall x. v x -> w x) -> Tape v m a -> Tape w m a Source
Apply natural transformation to the comonadic control surface.
transTape :: (Functor w, Functor n) => (forall x. m x -> n x) -> Tape w m a -> Tape w n a Source
Transform effects produced by the tape.
controlTape :: Functor m => (w (Tape w m a) -> w (Tape w m a)) -> Tape w m a -> Tape w m a Source
Operate on the control surface just once.
pushBack :: (Foldable f, Comonad w, Monad m) => f a -> Tape w m a -> Tape w m a Source
Push some values back to a tape.
intercept :: (Functor w, Monad m) => (a -> m b) -> Tape w m a -> Tape w m b Source
Apply a monadic function to a tape.
Time series
class Functor f => Chronological f where Source
Chronological
functor is like Apply
, but the operation may fail due to a time lag.
coincidence :: f a -> f b -> EventOrder (f (a, b)) Source
Chronological Identity Source | |
Chronological ((->) i) Source | |
Ord i => Chronological ((,) i) Source | |
Ord i => Chronological (Head i) Source | |
Chronological w => Chronological (TracedT m w) Source | |
(Ord i, Chronological w) => Chronological (StoreT i w) Source | |
(Ord i, Chronological w) => Chronological (EnvT i w) Source |