mix-arrows-1.2: Mixing effects of one arrow into another one

Safe HaskellNone



Various ways of shuffling input and output components. Function types are mostly autogenerated.


swap :: (t1, t) -> (t, t1)Source

twist :: (t1, (t, t2)) -> (t, (t1, t2))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 (t, (t1, t2)) (t4, (t3, t5)) -> a (t1, (t, t2)) (t3, (t4, t5))Source

pack :: Either (y, c) (y, d) -> (y, Either c d)Source

unpack :: (x, Either b d) -> Either (x, b) (x, d)Source

arrAssocLtoR :: Arrow a => a ((t1, t2), t) ((t3, t4), t5) -> a (t1, (t2, t)) (t3, (t4, t5))Source

arrAssocRtoL :: Arrow a => a (t, (t1, t2)) (t3, (t4, t5)) -> a ((t, t1), t2) ((t3, t4), t5)Source

arrCancelUnit :: Arrow a => a (b, ()) (d, ()) -> a b dSource

arrUnpack :: Arrow a => a (Either (x, b) (x, d)) (Either (y, c) (y, d)) -> a (x, Either b d) (y, Either c d)Source

(->>) :: Arrow a => a (i1, input) (o1, middle) -> a (i2, middle) (o2, output) -> a (i2, (i1, input)) (o2, (o1, output))Source