Sometimes in Haskell programs, function definitions will span multiple lines and consist
of multiple elements. The rule for blocks of elements at the same conceptual level is that
they should be indented the same amount. Elements that belong to a higher level
element should be indented more. As soon as an outdent occurs, further lines are
promoted back up a conceptual level. In practice, it is obvious, and Haskell will almost
always complain on errors.