Haddock にはコード ブロック用の 2 つの構文があります。ブロックを区切る構文を@
使用すると、Cabal のパーサーが処理できない文字を埋め込むために使用できる HTML エスケープを使用できます。
残念ながら、Cabal は - で区切られた@
ブロックから先頭の空白を削除するように見えるため、スペースのある行には HTML エンコードされた space を前に付ける必要があります 
。
ここに例があります:
description:
My package with a code example!
.
@
{-\# LANGUAGE TemplateHaskell \#-}
.
main = do
  $templatePrint "hello!"
  $templatePrint "world!"
@
レンダリングするもの:
コード例付きの私のパッケージ!
{-# LANGUAGE TemplateHaskell #-}
main = do
$templatePrint "hello!"
$templatePrint "hello!"