Tweak monad pretty-printing of ``monad_bind a f`` with f not an abstraction.

In particular, the old behaviour was to print this as

    do a; f od

which is very misleading as it suggests that there is a unit-bind
happening, when in fact f has type α → β M, not just β M, for some
monad M.

Now the behaviour is to just give up and print ``monad_bind a f`` as
``monad_bind a f``. I am tempted to define some nice infix for this
case though, perhaps

    a ||> f

or

    f ' a

(I’ve used the latter in the CakeML work.)

But if there’s a nice infix for monad_bind a f, then there should
probably be nice syntax for monad_bind a (return o f) (e.g., which is
OPTION_MAP in the option monad).

The case for the first syntax, is that the alternative is

   do
     v1 <- f x;
     v2 <- g v1;
     v3 <- h v2;
     return (ii v3)
   od

when this might be collapsed to

   do
     v3 <- x ||> f ||> g ||> h;
     return (ii v3)
   od

An infix (|-> ?) for (λx f. monad_bind x (SOME o f)) could then turn
the above into

  x ||> f ||> g ||> h |-> ii

Maybe.