Extensible Haskell pretty printer