So far, we haven't done anything yet with the incoming request. In the previous example, we just returned a string without using any information from the request. Finch provides a very nice model using a Reader monad, which you can use to easily combine information from an incoming request to instantiate new objects.
A Reader monad is a standard functional design pattern, which allows you to define functions that all access the same values. A great explanation of how Reader monads work can be found at http://eed3si9n.com/learning-scalaz/Monad+transformers.html.
Let's look at some code that uses a
RequestReader to process incoming requests (the complete source code can be found in the