{-# LANGUAGE Arrows #-} foo f g = proc (x, y) -> do rec a <- f y -< x b <- g x -< y bar -< ( a , b ) rec p <- f p -< a rec q <- g q -< b