import Control.Arrow import Control.Monad import Control.Monad.Instances square = join (*) biApply = join (***) foo = ((uncurry (+) . biApply square) .) . (,) main = print $ foo 3 4