Reader/Writer

A Reader[T] allows to read values of type T from the environment while Writer[T] allows to set them.

Read and Write Handlers take an effectful operation that can modify the external world. See TestReadWrite.