1. make the evaluation by order.
2. Mark you touch a Monad. Once you touch Monad, you are in this Monad forever, otherwise you may be in danger.
3. function combination. In other words, a monad is a box- you can put things into the box (with
return) and manipulate things inside of the box (with