We have seen a read-only Context (called Reader) over a value (A)
A
Context => A
is a functor — has a useful map method
map
is a monad — has a useful flatMap method
flatMap
Read/Write Context (called State) over a value (A)
Context => (A, Context)