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



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

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

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

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

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

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