{-# OPTIONS_GHC -fno-warn-orphans #-}
module Haddock.Doc ( module Documentation.Haddock.Doc
                   , docCodeBlock
                   , combineDocumentation
                   ) where
import Data.Maybe
import Documentation.Haddock.Doc
import Haddock.Types
import Haddock.Utils (mkMeta)
combineDocumentation :: Documentation name -> Maybe (MDoc name)
combineDocumentation (Documentation Nothing Nothing) = Nothing
combineDocumentation (Documentation mDoc mWarning)   =
  Just (maybe emptyMetaDoc mkMeta mWarning
        `metaDocAppend`
        fromMaybe emptyMetaDoc mDoc)
docCodeBlock :: DocH mod id -> DocH mod id
docCodeBlock (DocString s)
  = DocString (reverse $ dropWhile (`elem` " \t") $ reverse s)
docCodeBlock (DocAppend l r)
  = DocAppend l (docCodeBlock r)
docCodeBlock d = d