Chapter 8: Functional Parsers

@carlosgaldino and @laurocaetano I just finished the exercises for chapter 8.

Now things are getting interesting. This parser chapter is the introduction to Monads, but it does not mention it. It gives an idea of the `(>>=)` and `return`.

Unfortunately, I couldn't implement Haskell Monad and do-notation. For some reason the output is not as expected. The String to be parsed isn't being consumed, so the parsing never advance and keep failing.

TODO:

- [ ] use instance Monad
- [ ] use do-notation
The `char '\n'` is redundant since you already know you've reached a newline character when the `many` stops reading input.