arrows- Arrow classes and transformers

Portabilitynon-portable (multi-parameter type classes)



Arrow transformer adding static information.



data StaticArrow f a b c Source

An arrow type that augments the underlying arrow with static information.

type StaticMonadArrow m = StaticArrow (WrappedMonad m)Source

A special case is monads applied to the whole arrow, in contrast to Kleisli arrows, in which the monad is applied to the output.

type StaticArrowArrow a s = StaticArrow (WrappedArrow a s)Source

A special case.

wrapA :: (Arrow a, Arrow a') => a s (a' b c) -> StaticArrowArrow a s a' b cSource

unwrapA :: (Arrow a, Arrow a') => StaticArrowArrow a s a' b c -> a s (a' b c)Source

wrapM :: (Monad m, Arrow a) => m (a b c) -> StaticMonadArrow m a b cSource

unwrapM :: (Monad m, Arrow a) => StaticMonadArrow m a b c -> m (a b c)Source