A monadic library for aspect-oriented programming in Haskell