-We've just beta-expanded the familiar `f (u e) e` into `(fun v -> f v e) (u e)`, in order to factor out the parts where any Reader monad is being supplied as an argument to another function. Then if we want instead to add a Reader layer to some arbitrary other monad M, with its own M.unit and M.bind, here's how we do it:
+We've just beta-expanded the familiar `f (u e) e` into `(fun v -> f v
+e) (u e)`, in order to factor out the parts where any Reader monad is
+being supplied as an argument to another function, as illustrated in
+the `bind` function in the following example. Then if we want instead
+to add a Reader layer to some arbitrary other monad M, with its own
+M.unit and M.bind, here's how we do it: