Monadic middleware
Compared to the 0.x versions, various aspects of the library have been altered. The State Monad implementation has been switched out, and the user-facing API became more function-oriented.