An example on how to compose the reader, writer, and state
monad using monad transformers. The source code can be found in this repository
We want to implement a counter, that increments its value by a given
constant.
We start by defining some types, and functions:
newtype Counter = MkCounter {...