| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Stream.Result
Synopsis
- data Result s a = Result {
- resultState :: s
- output :: ~a
- mapResultState :: (s1 -> s2) -> Result s1 a -> Result s2 a
- apResult :: Result s1 (a -> b) -> Result s2 a -> Result (JointState s1 s2) b
- newtype ResultStateT s (m :: Type -> Type) a = ResultStateT {
- getResultStateT :: s -> m (Result s a)
- unzipResult :: Functor f => f (Result s a) -> Result (f s) (f a)
Documentation
A tuple that is strict in its first argument.
This type is used in streams and automata to encode the result of a state transition. The new state should always be strict to avoid space leaks.
Constructors
| Result | |
Fields
| |
Instances
| Bifunctor Result Source # | |
| Foldable (Result s) Source # | |
Defined in Data.Stream.Result Methods fold :: Monoid m => Result s m -> m # foldMap :: Monoid m => (a -> m) -> Result s a -> m # foldMap' :: Monoid m => (a -> m) -> Result s a -> m # foldr :: (a -> b -> b) -> b -> Result s a -> b # foldr' :: (a -> b -> b) -> b -> Result s a -> b # foldl :: (b -> a -> b) -> b -> Result s a -> b # foldl' :: (b -> a -> b) -> b -> Result s a -> b # foldr1 :: (a -> a -> a) -> Result s a -> a # foldl1 :: (a -> a -> a) -> Result s a -> a # elem :: Eq a => a -> Result s a -> Bool # maximum :: Ord a => Result s a -> a # minimum :: Ord a => Result s a -> a # | |
| Traversable (Result s) Source # | |
| Functor (Result s) Source # | |
mapResultState :: (s1 -> s2) -> Result s1 a -> Result s2 a Source #
Apply a function to the state of a Result.
apResult :: Result s1 (a -> b) -> Result s2 a -> Result (JointState s1 s2) b Source #
Analogous to Applicative's (<*>).
newtype ResultStateT s (m :: Type -> Type) a Source #
A state transformer with Result instead of a standard tuple as its result.
Constructors
| ResultStateT | |
Fields
| |
Instances
| Monad m => Applicative (ResultStateT s m) Source # | |
Defined in Data.Stream.Result Methods pure :: a -> ResultStateT s m a # (<*>) :: ResultStateT s m (a -> b) -> ResultStateT s m a -> ResultStateT s m b # liftA2 :: (a -> b -> c) -> ResultStateT s m a -> ResultStateT s m b -> ResultStateT s m c # (*>) :: ResultStateT s m a -> ResultStateT s m b -> ResultStateT s m b # (<*) :: ResultStateT s m a -> ResultStateT s m b -> ResultStateT s m a # | |
| Functor m => Functor (ResultStateT s m) Source # | |
Defined in Data.Stream.Result Methods fmap :: (a -> b) -> ResultStateT s m a -> ResultStateT s m b # (<$) :: a -> ResultStateT s m b -> ResultStateT s m a # | |