Sources:
- https://tylermcginnis.com/imperative-vs-declarative-programming/
- https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q
- https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript
- http://blog.cleancoder.com/uncle-bob/2014/11/24/FPvsOO.html
- http://developingthoughts.co.uk/building-a-maybe-in-javascript/
- https://hackernoon.com/functional-computational-thinking-what-is-a-monad-2adea91154e