Tijdens sommige types berekeningen, herbruiken we vaak dezelfde waarde. Zo kan een hele collectie functie gebruik maken van eenzelfde Config-object, of kunnen een aantal statements uitgevoerd worden binnen dezelfde scope.
Daarbij krijgen we dan functie van de vorm:
alpha :: x1 -> x2 -> c -> x3
beta :: x4 -> c -> x5
gamma :: c -> x6
Deze c
als laatste argument is wat onze Reader monad vormt:
alpha :: x1 -> x2 -> Reader c x3
beta :: x4 -> Reader c x5
gamma :: Reader c x6
Implementeer de Reader Monad en maak ervan gebruik in een gescopete interpreter.