A Haskell library for abstractions in the category of Haskell monads