left arrows and lambdas for haskell