mix-arrows-1.0: Mixing effects of one arrow into another one
Control.Arrow.Mix.Utilities
Description
Various ways of shuffling input and output components. Function types are mostly autogenerated.
swap :: (t1, t) -> (t, t1)Source
twist :: ((t1, t), t2) -> ((t1, t2), t)Source
assocLtoR :: ((t, t1), t2) -> (t, (t1, t2))Source
assocRtoL :: (t1, (t2, t)) -> ((t1, t2), t)Source
arrSwap :: Arrow a => a (t, t1) (t2, t3) -> a (t1, t) (t3, t2)Source
arrTwist :: Arrow a => a ((t1, t2), t) ((t4, t3), t5) -> a ((t1, t), t2) ((t4, t5), t3)Source
pack :: Either (a, t) (b, t) -> (Either a b, t)Source
unpack :: (Either t t1, t2) -> Either (t, t2) (t1, t2)Source
arrAssoc :: Arrow a => a ((t1, t2), t) ((t3, t4), t5) -> a (t1, (t2, t)) (t3, (t4, t5))Source
arrCancelUnit :: Arrow a => a ((), b) ((), d) -> a b dSource
arrUnpack :: Arrow a => a (Either (t, t2) (t1, t2)) (Either (a1, t3) (b, t3)) -> a (Either t t1, t2) (Either a1 b, t3)Source
(->>) :: Arrow a => a (input, i1) (middle, o1) -> a (middle, i2) (output, o2) -> a ((input, i1), i2) ((output, o1), o2)Source