On 25 November 2010 12:48, Stephen Tetley <stephen.tetley at gmail.com> wrote: > > Substituting, m x == (r1 -> x) > > liftM2 :: (a -> b -> c) -> (r1 -> a) -> (r1 -> b) -> (r1 -> ans) > Apologies, there's an obvious typo, the correct version is: liftM2 :: (a -> b -> ans) -> (r1 -> a) -> (r1 -> b) -> (r1 -> ans)