{-# LANGUAGE BlockArguments #-} module BlockArguments where foo = when (x > 0) do print x exitFailure bar = withForeignPtr fptr \ptr -> c_memcpy buf ptr size baz arg1 arg2 arg3 arg4 = initialValue & someFunction arg1 arg2 >>= traverse \(x, y) -> do a <- f x b <- g y h a b >>= anotherFunction arg3 arg4