machinecell-1.2.0: Arrow based stream transducers

Safe HaskellSafe-Inferred

Control.Arrow.Machine.ArrowUtil

Contents

Description

Arrow utilities not related to machinecell library.

Synopsis

Arrow construction helper

kleisli :: Monad m => (a -> m b) -> Kleisli m a bSource

kleisli0 :: Monad m => m b -> Kleisli m () bSource

kleisli2 :: Monad m => (a1 -> a2 -> m b) -> Kleisli m (a1, a2) bSource

kleisli3 :: Monad m => (a1 -> a2 -> a3 -> m b) -> Kleisli m (a1, a2, a3) bSource

kleisli4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> m b) -> Kleisli m (a1, a2, a3, a4) bSource

kleisli5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> m b) -> Kleisli m (a1, a2, a3, a4, a5) bSource

reading :: (Monad m, Arrow a) => (forall p q. (p -> m q) -> a p q) -> (b -> ReaderT r m c) -> ReaderArrow r a b cSource

To absorve arrow stack signature difference bettween ghc 7.8 and older.

type AS e = eSource

toAS :: e -> AS eSource

fromAS :: AS e -> eSource

elimR :: ArrowAddReader r a a' => a (AS e) b -> a' (e, AS r) bSource

Alternate for elimReader that can be used with both ghc 7.8 and older.