[Matthew wrote](https://forum.azimuthproject.org/profile/1818/Matthew%20Doty)

> You skipped past puzzle #1 and answered #2!

I was suspecting that !! My _fault_ was not to arrive to page 27 and _feeling_ the right type for l ;-)

> Consider flip (>>=) :: Monad m => (a -> m b) -> m a -> m b ...

Yes, yesterday I also thought about flipping >>= parameters but I got distracted by monads and comonads :-D.

And yes, I think this works because then, if we interpret the type of =<< in the "preorder language", we get:

$$p \le g(f(p\prime)) => g(f(p)) \le g(f(p\prime))$$

And this can be proved by:

From \$$p \le g(f(p\prime)) \$$; by monotonicity of both \$$f\$$ and \$$g\$$ we have \$$g(f(p)) \le g(f(g(f(p\prime)))) \$$; and then the isomorphism \$$g(f(g(f(p\prime)))) \cong g(f(p\prime)) \$$ gives us \$$g(f(p)) \le g(f(p\prime)) \$$.

Thanks !!!!