Begin eval :: LispVal -> LispVal implementation
Refactor - readExpr :: String -> LispVal
Refactor - Update main to use the >>= operation
Refactor - update main to use free point style
Use main as a R(ead) E(val) P(rint)
Add a new use case and introduce the `apply :: [LispVal] -> LispVal` function
Add basic support for binary operation (only + for the moment but
mechanism is ok)
Add some other binary operation primitives
Fix - neutral element of multiplication is not 0!
Refactor - Use foldl1 (beware stack explosion because of lazyness)
Add use case not taken into account (did not understand yet)