module Hydra.Lib.Flows where import Hydra.All apply :: Flow s (a -> b) -> Flow s a -> Flow s b apply :: forall s a b. Flow s (a -> b) -> Flow s a -> Flow s b apply = forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b (<*>) bind :: Flow s a -> (a -> Flow s b) -> Flow s b bind :: forall s a b. Flow s a -> (a -> Flow s b) -> Flow s b bind = forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b (>>=) map :: (a -> b) -> Flow s a -> Flow s b map :: forall a b s. (a -> b) -> Flow s a -> Flow s b map = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap pure :: a -> Flow s a pure :: forall a s. a -> Flow s a pure = forall (m :: * -> *) a. Monad m => a -> m a return