Fix map-monad generality

By mistake, map-monad was defined to explicitly construct a 'right'
value for all monads, at the end of the list.
Allow adjacent lams to be merged when parsing