Reader provides functionality to pass a value along to each function. A helpful guide with some diagrams can be found here: http://adit.io/posts/2013-06-10-three-useful-monads.html