(top-to-bottom, left- to-right) flow of the code > Increment when structures that break the flow are nested > Ignore "shorthand" structures that readably condense multiple lines of code into one 25
... -- return takes a value and embeds it in the monad. return :: a -> m a -- bind is a function that combines m a with a computation -- monad instance m b (>>=) :: m a -> (a -> m b) -> m b