haskell Simple logging abstraction that allows multiple backends