Using Haddock markup with Literate Haskell commenting style doesn't currently work. For instance, to get Haddock markup in an lhs file: comments comments > code comments you'd need to write: > -- | comments > -- comments > code > -- | comments This clearly defeats the purpose of Literate Haskell. BirdPP is a preprocessor that works with GHC so you can write what you want: | comments comments > code | comments Compilation of this package will give you an executable called bunlit. This can be used by ghc using the option -pgmL BirdPP. E.g. ghc -pgmL BirdPP --make Main.lhs