diff options
Diffstat (limited to 'src/Haddock')
| -rw-r--r-- | src/Haddock/Backends/Hoogle.hs | 4 | ||||
| -rw-r--r-- | src/Haddock/Backends/Xhtml.hs | 6 | ||||
| -rw-r--r-- | src/Haddock/Backends/Xhtml/Decl.hs | 65 | ||||
| -rw-r--r-- | src/Haddock/Backends/Xhtml/Utils.hs | 4 | ||||
| -rw-r--r-- | src/Haddock/Interface/Create.hs | 24 | ||||
| -rw-r--r-- | src/Haddock/Interface/ParseModuleHeader.hs | 6 | ||||
| -rw-r--r-- | src/Haddock/Interface/Rename.hs | 20 | ||||
| -rw-r--r-- | src/Haddock/InterfaceFile.hs | 34 | ||||
| -rw-r--r-- | src/Haddock/Types.hs | 2 | ||||
| -rw-r--r-- | src/Haddock/Utils.hs | 9 | 
10 files changed, 86 insertions, 88 deletions
| diff --git a/src/Haddock/Backends/Hoogle.hs b/src/Haddock/Backends/Hoogle.hs index cbb5921d..e7a78fc2 100644 --- a/src/Haddock/Backends/Hoogle.hs +++ b/src/Haddock/Backends/Hoogle.hs @@ -101,7 +101,7 @@ out = f . unwords . map (dropWhile isSpace) . lines . showSDocUnqual . ppr  operator :: String -> String -operator (x:xs) | not (isAlphaNum x) && x `notElem` "_' ([{" = "(" ++ x:xs ++ ")" +operator (x:xs) | not (isAlphaNum x) && x `notElem` "_' ([{" = '(' : x:xs ++ ")"  operator x = x @@ -124,7 +124,7 @@ ppExport _ = []  ppSig :: Sig Name -> [String]  ppSig (TypeSig names sig) = [operator prettyNames ++ " :: " ++ outHsType typ]      where -        prettyNames = concat . intersperse ", " $ map out names +        prettyNames = intercalate ", " $ map out names          typ = case unL sig of                     HsForAllTy Explicit a b c -> HsForAllTy Implicit a b c                     x -> x diff --git a/src/Haddock/Backends/Xhtml.hs b/src/Haddock/Backends/Xhtml.hs index c8998f3e..84468610 100644 --- a/src/Haddock/Backends/Xhtml.hs +++ b/src/Haddock/Backends/Xhtml.hs @@ -431,7 +431,7 @@ ppHtmlIndex odir doctitle _maybe_package themes                            indexLinks nm entries            many_entities ->                td ! [ theclass "src" ] << toHtml str <-> td << spaceHtml </> -                  aboves (map doAnnotatedEntity (zip [1..] many_entities)) +                  aboves (zipWith (curry doAnnotatedEntity) [1..] many_entities)      doAnnotatedEntity :: (Integer, (Name, [(Module, Bool)])) -> HtmlTable      doAnnotatedEntity (j,(nm,entries)) @@ -539,7 +539,7 @@ ifaceToHtml maybe_source_url maybe_wiki_url iface unicode qual      maybe_doc_hdr        = case exports of            [] -> noHtml -          ExportGroup _ _ _ : _ -> noHtml +          ExportGroup {} : _ -> noHtml            _ -> h1 << "Documentation"      bdy = @@ -621,7 +621,7 @@ ppModuleContents qual exports  -- we need to assign a unique id to each section heading so we can hyperlink  -- them from the contents:  numberSectionHeadings :: [ExportItem DocName] -> [ExportItem DocName] -numberSectionHeadings exports = go 1 exports +numberSectionHeadings = go 1    where go :: Int -> [ExportItem DocName] -> [ExportItem DocName]          go _ [] = []          go n (ExportGroup lev _ doc : es) diff --git a/src/Haddock/Backends/Xhtml/Decl.hs b/src/Haddock/Backends/Xhtml/Decl.hs index 9d7865f2..5cdc819c 100644 --- a/src/Haddock/Backends/Xhtml/Decl.hs +++ b/src/Haddock/Backends/Xhtml/Decl.hs @@ -79,7 +79,7 @@ ppTypeOrFunSig summary links loc docnames typ (doc, argDocs) (pref1, pref2, sep)      argDoc n = Map.lookup n argDocs      do_largs n leader (L _ t) = do_args n leader t -    do_args :: Int -> Html -> (HsType DocName) -> [SubDecl] +    do_args :: Int -> Html -> HsType DocName -> [SubDecl]      do_args n leader (HsForAllTy Explicit tvs lctxt ltype)        = (leader <+>            hsep (forallSymbol unicode : ppTyVars tvs ++ [dot]) <+> @@ -99,7 +99,7 @@ ppTypeOrFunSig summary links loc docnames typ (doc, argDocs) (pref1, pref2, sep)        = (leader <+> ppLFunLhType unicode qual lt, argDoc n, [])          : do_largs (n+1) (arrow unicode) r      do_args n leader t -      = (leader <+> ppType unicode qual t, argDoc n, []) : [] +      = [(leader <+> ppType unicode qual t, argDoc n, [])]  ppTyVars :: [LHsTyVarBndr DocName] -> [Html] @@ -296,12 +296,12 @@ ppLContextNoArrow = ppContextNoArrow . unLoc  ppContextNoArrow :: HsContext DocName -> Bool -> Qualification -> Html  ppContextNoArrow []  _       _     = noHtml -ppContextNoArrow cxt unicode qual = pp_hs_context (map unLoc cxt) unicode qual +ppContextNoArrow cxt unicode qual = ppHsContext (map unLoc cxt) unicode qual  ppContextNoLocs :: [HsType DocName] -> Bool -> Qualification -> Html  ppContextNoLocs []  _       _     = noHtml -ppContextNoLocs cxt unicode qual = pp_hs_context cxt unicode qual  +ppContextNoLocs cxt unicode qual = ppHsContext cxt unicode qual      <+> darrow unicode @@ -309,10 +309,10 @@ ppContext :: HsContext DocName -> Bool -> Qualification -> Html  ppContext cxt unicode qual = ppContextNoLocs (map unLoc cxt) unicode qual -pp_hs_context :: [HsType DocName] -> Bool -> Qualification-> Html -pp_hs_context []  _       _     = noHtml -pp_hs_context [p] unicode qual = ppType unicode qual p -pp_hs_context cxt unicode qual = parenList (map (ppType unicode qual) cxt) +ppHsContext :: [HsType DocName] -> Bool -> Qualification-> Html +ppHsContext []  _       _     = noHtml +ppHsContext [p] unicode qual = ppType unicode qual p +ppHsContext cxt unicode qual = parenList (map (ppType unicode qual) cxt)  ------------------------------------------------------------------------------- @@ -326,8 +326,8 @@ ppClassHdr :: Bool -> Located [LHsType DocName] -> DocName  ppClassHdr summ lctxt n tvs fds unicode qual =    keyword "class"    <+> (if not . null . unLoc $ lctxt then ppLContext lctxt unicode qual else noHtml) -  <+> ppAppDocNameNames summ n (tyvarNames $ tvs) -        <+> ppFds fds unicode qual +  <+> ppAppDocNameNames summ n (tyvarNames tvs) +  <+> ppFds fds unicode qual  ppFds :: [Located ([DocName], [DocName])] -> Bool -> Qualification -> Html @@ -396,7 +396,7 @@ ppClassDecl summary links instances loc mbDoc subdocs                             -- there are different subdocs for different names in a single                             -- type signature? -    instancesBit = ppInstances instances nm unicode qual  +    instancesBit = ppInstances instances nm unicode qual  ppClassDecl _ _ _ _ _ _ _ _ _ = error "declaration type not supported by ppShortClassDecl" @@ -413,11 +413,8 @@ ppInstances instances baseName unicode qual          <+> ppAppNameTypes n ts unicode qual -lookupAnySubdoc :: (Eq name1) => -                   name1 -> [(name1, DocForDecl name2)] -> DocForDecl name2 -lookupAnySubdoc n subdocs = case lookup n subdocs of -  Nothing -> noDocForDecl -  Just docs -> docs +lookupAnySubdoc :: Eq id1 => id1 -> [(id1, DocForDecl id2)] -> DocForDecl id2 +lookupAnySubdoc n = fromMaybe noDocForDecl . lookup n  ------------------------------------------------------------------------------- @@ -430,7 +427,7 @@ ppShortDataDecl :: Bool -> LinksInfo -> SrcSpan -> TyClDecl DocName -> Bool                  -> Qualification -> Html  ppShortDataDecl summary _links _loc dataDecl unicode qual -  | [] <- cons = dataHeader  +  | [] <- cons = dataHeader    | [lcon] <- cons, ResTyH98 <- resTy,      (cHead,cBody,cFoot) <- ppShortConstrParts summary (unLoc lcon) unicode qual @@ -513,7 +510,7 @@ ppShortConstrParts summary con unicode qual = case con_res con of      -- (except each field gets its own line in docs, to match      -- non-GADT records)      RecCon fields -> (ppBinder summary occ <+> dcolon unicode <+> -                            ppForAll forall ltvs lcontext unicode qual <+> char '{', +                            ppForAll forall_ ltvs lcontext unicode qual <+> char '{',                              doRecordFields fields,                              char '}' <+> arrow unicode <+> ppLType unicode qual resTy)      InfixCon arg1 arg2 -> (doGADTCon [arg1, arg2] resTy, noHtml, noHtml) @@ -521,29 +518,29 @@ ppShortConstrParts summary con unicode qual = case con_res con of    where      doRecordFields fields = shortSubDecls (map (ppShortField summary unicode qual) fields)      doGADTCon args resTy = ppBinder summary occ <+> dcolon unicode <+> hsep [ -                             ppForAll forall ltvs lcontext unicode qual, +                             ppForAll forall_ ltvs lcontext unicode qual,                               ppLType unicode qual (foldr mkFunTy resTy args) ] -    header_  = ppConstrHdr forall tyVars context +    header_  = ppConstrHdr forall_ tyVars context      occ      = nameOccName . getName . unLoc . con_name $ con      ltvs     = con_qvars con      tyVars   = tyvarNames ltvs      lcontext = con_cxt con      context  = unLoc (con_cxt con) -    forall   = con_explicit con +    forall_  = con_explicit con      mkFunTy a b = noLoc (HsFunTy a b)  -- ppConstrHdr is for (non-GADT) existentials constructors' syntax  ppConstrHdr :: HsExplicitFlag -> [Name] -> HsContext DocName -> Bool              -> Qualification -> Html -ppConstrHdr forall tvs ctxt unicode qual +ppConstrHdr forall_ tvs ctxt unicode qual   = (if null tvs then noHtml else ppForall)     +++     (if null ctxt then noHtml else ppContextNoArrow ctxt unicode qual          <+> darrow unicode +++ toHtml " ")    where -    ppForall = case forall of +    ppForall = case forall_ of        Explicit -> forallSymbol unicode <+> hsep (map ppName tvs) <+> toHtml ". "        Implicit -> noHtml @@ -581,15 +578,15 @@ ppSideBySideConstr subdocs unicode qual (L _ con) = (decl, mbDoc, fieldPart)      doGADTCon :: [LHsType DocName] -> Located (HsType DocName) -> Html      doGADTCon args resTy =        ppBinder False occ <+> dcolon unicode -        <+> hsep [ppForAll forall ltvs (con_cxt con) unicode qual, +        <+> hsep [ppForAll forall_ ltvs (con_cxt con) unicode qual,                    ppLType unicode qual (foldr mkFunTy resTy args) ] -    header_ = ppConstrHdr forall tyVars context +    header_ = ppConstrHdr forall_ tyVars context      occ     = nameOccName . getName . unLoc . con_name $ con      ltvs    = con_qvars con      tyVars  = tyvarNames (con_qvars con)      context = unLoc (con_cxt con) -    forall  = con_explicit con +    forall_ = con_explicit con      -- don't use "con_doc con", in case it's reconstructed from a .hi file,      -- or also because we want Haddock to do the doc-parsing, not GHC.      -- 'join' is in Maybe. @@ -651,13 +648,13 @@ tupleParens _              = parenList  pREC_TOP, pREC_FUN, pREC_OP, pREC_CON :: Int -pREC_TOP = (0 :: Int)   -- type in ParseIface.y in GHC -pREC_FUN = (1 :: Int)   -- btype in ParseIface.y in GHC -                        -- Used for LH arg of (->) -pREC_OP  = (2 :: Int)   -- Used for arg of any infix operator -                        -- (we don't keep their fixities around) -pREC_CON = (3 :: Int)   -- Used for arg of type applicn: -                        -- always parenthesise unless atomic +pREC_TOP = 0 :: Int   -- type in ParseIface.y in GHC +pREC_FUN = 1 :: Int   -- btype in ParseIface.y in GHC +                      -- Used for LH arg of (->) +pREC_OP  = 2 :: Int   -- Used for arg of any infix operator +                      -- (we don't keep their fixities around) +pREC_CON = 3 :: Int   -- Used for arg of type applicn: +                      -- always parenthesise unless atomic  maybeParen :: Int           -- Precedence of context             -> Int           -- Precedence of top-level operator @@ -699,7 +696,7 @@ ppForAll expl tvs cxt unicode qual  ppr_mono_lty :: Int -> LHsType DocName -> Bool -> Qualification -> Html -ppr_mono_lty ctxt_prec ty unicode qual = ppr_mono_ty ctxt_prec (unLoc ty) unicode qual +ppr_mono_lty ctxt_prec ty = ppr_mono_ty ctxt_prec (unLoc ty)  ppr_mono_ty :: Int -> HsType DocName -> Bool -> Qualification -> Html diff --git a/src/Haddock/Backends/Xhtml/Utils.hs b/src/Haddock/Backends/Xhtml/Utils.hs index c020c64d..be1fcb9b 100644 --- a/src/Haddock/Backends/Xhtml/Utils.hs +++ b/src/Haddock/Backends/Xhtml/Utils.hs @@ -44,7 +44,7 @@ import Name     ( getOccString, nameOccName, isValOcc )  spliceURL :: Maybe FilePath -> Maybe Module -> Maybe GHC.Name ->               Maybe SrcSpan -> String -> String -spliceURL maybe_file maybe_mod maybe_name maybe_loc url = run url +spliceURL maybe_file maybe_mod maybe_name maybe_loc = run   where    file = fromMaybe "" maybe_file    mdl = case maybe_mod of @@ -72,7 +72,7 @@ spliceURL maybe_file maybe_mod maybe_name maybe_loc url = run url    run ('%':'N':rest) = name ++ run rest    run ('%':'K':rest) = kind ++ run rest    run ('%':'L':rest) = line ++ run rest -  run ('%':'%':rest) = "%"  ++ run rest +  run ('%':'%':rest) = '%'   : run rest    run ('%':'{':'M':'O':'D':'U':'L':'E':'}':rest) = mdl  ++ run rest    run ('%':'{':'F':'I':'L':'E':'}':rest)         = file ++ run rest diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs index 737547fd..ed51734d 100644 --- a/src/Haddock/Interface/Create.hs +++ b/src/Haddock/Interface/Create.hs @@ -350,7 +350,7 @@ warnAboutFilteredDecls mdl decls = do      tell [        "Warning: " ++ modStr ++ ": Instances of type and data "        ++ "families are not yet supported. Instances of the following families " -      ++ "will be filtered out:\n  " ++ concat (intersperse ", " +      ++ "will be filtered out:\n  " ++ (intercalate ", "        $ map (occNameString . nameOccName) typeInstances) ]    let instances = nub [ pretty i | L _ (InstD (InstDecl i _ _ ats)) <- decls @@ -359,7 +359,7 @@ warnAboutFilteredDecls mdl decls = do    unless (null instances) $      tell [        "Warning: " ++ modStr ++ ": We do not support associated types in instances yet. " -      ++ "These instances are affected:\n" ++ concat (intersperse ", " instances) ] +      ++ "These instances are affected:\n" ++ intercalate ", " instances ]  -------------------------------------------------------------------------------- @@ -371,7 +371,7 @@ warnAboutFilteredDecls mdl decls = do  -- | Filter out declarations that we don't handle in Haddock  filterDecls :: [(LHsDecl a, doc)] -> [(LHsDecl a, doc)] -filterDecls decls = filter (isHandled . unL . fst) decls +filterDecls = filter (isHandled . unL . fst)    where      isHandled (ForD (ForeignImport {})) = True      isHandled (TyClD {}) = True @@ -408,10 +408,10 @@ collectDocs = go Nothing []    where      go Nothing _ [] = []      go (Just prev) docs [] = finished prev docs [] -    go prev docs ((L _ (DocD (DocCommentNext str))):ds) +    go prev docs (L _ (DocD (DocCommentNext str)) : ds)        | Nothing <- prev = go Nothing (str:docs) ds        | Just decl <- prev = finished decl docs (go Nothing [str] ds) -    go prev docs ((L _ (DocD (DocCommentPrev str))):ds) = go prev (str:docs) ds +    go prev docs (L _ (DocD (DocCommentPrev str)) : ds) = go prev (str:docs) ds      go Nothing docs (d:ds) = go (Just d) docs ds      go (Just prev) docs (d:ds) = finished prev docs (go (Just d) [] ds) @@ -489,7 +489,7 @@ mkExportItems                -- We should not show a subordinate by itself if any of its                -- parents is also exported. See note [1]. -              | not $ t `elem` declNames, +              | t `notElem` declNames,                  Just p <- find isExported (parents t $ unL decl) ->                  do liftErrMsg $ tell [                       "Warning: " ++ moduleString thisMod ++ ": " ++ @@ -517,7 +517,7 @@ mkExportItems            mayDecl <- hiDecl t            case mayDecl of              Nothing -> return [ ExportNoDecl t [] ] -            Just decl -> do +            Just decl ->                -- We try to get the subs and docs                -- from the installed .haddock file for that package.                case M.lookup (nameModule t) instIfaceMap of @@ -526,7 +526,7 @@ mkExportItems                        ["Warning: Couldn't find .haddock for export " ++ pretty t]                     let subs_ = [ (n, noDocForDecl) | (n, _, _) <- subordinates (unLoc decl) ]                     return [ mkExportDecl t decl (noDocForDecl, subs_) ] -                Just iface -> do +                Just iface ->                     return [ mkExportDecl t decl (lookupDocs t (instDocMap iface) (instArgMap iface) (instSubMap iface)) ]          _ -> return [] @@ -736,9 +736,9 @@ extractRecSel nm mdl t tvs (L _ con : rest) =    data_ty = foldl (\x y -> noLoc (HsAppTy x y)) (noLoc (HsTyVar t)) (map toTypeNoLoc tvs) --- Pruning +-- | Keep exprt items with docs.  pruneExportItems :: [ExportItem Name] -> [ExportItem Name] -pruneExportItems items = filter hasDoc items +pruneExportItems = filter hasDoc    where      hasDoc (ExportDecl{expItemMbDoc = (d, _)}) = isJust d      hasDoc _ = True @@ -758,12 +758,12 @@ mkVisibleNames exports opts  -- | Find a stand-alone documentation comment by its name.  findNamedDoc :: String -> [HsDecl Name] -> ErrMsgM (Maybe HsDocString) -findNamedDoc name decls = search decls +findNamedDoc name = search    where      search [] = do        tell ["Cannot find documentation for: $" ++ name]        return Nothing -    search ((DocD (DocCommentNamed name' doc)):rest) +    search (DocD (DocCommentNamed name' doc) : rest)        | name == name' = return (Just doc)        | otherwise = search rest      search (_other_decl : rest) = search rest diff --git a/src/Haddock/Interface/ParseModuleHeader.hs b/src/Haddock/Interface/ParseModuleHeader.hs index 35533d0d..411b6661 100644 --- a/src/Haddock/Interface/ParseModuleHeader.hs +++ b/src/Haddock/Interface/ParseModuleHeader.hs @@ -137,14 +137,14 @@ parseKey key toParse0 =                 (spaces1,cs1) = extractLeadingSpaces cs              in                 (c:spaces1,cs1) -         | True = ([],s) +         | otherwise = ([],s)        extractNextLine :: String -> (String,String)        extractNextLine [] = ([],[])        extractNextLine (c:cs)           | c == '\n' =              ([],cs) -         | True = +         | otherwise =              let                 (line,rest) = extractNextLine cs              in @@ -156,5 +156,5 @@ parseKey key toParse0 =        extractPrefix _ [] = Nothing        extractPrefix (c1:cs1) (c2:cs2)           | toUpper c1 == toUpper c2 = extractPrefix cs1 cs2 -         | True = Nothing +         | otherwise = Nothing diff --git a/src/Haddock/Interface/Rename.hs b/src/Haddock/Interface/Rename.hs index 582c2ccd..cffe68b8 100644 --- a/src/Haddock/Interface/Rename.hs +++ b/src/Haddock/Interface/Rename.hs @@ -12,19 +12,20 @@  module Haddock.Interface.Rename (renameInterface) where -import Haddock.Types  import Haddock.GhcUtils +import Haddock.Types -import GHC hiding (NoLink) -import Name  import Bag (emptyBag)  import BasicTypes ( IPName(..), ipNameName ) +import GHC hiding (NoLink) +import Name +import Control.Applicative +import Control.Monad hiding (mapM)  import Data.List  import qualified Data.Map as Map hiding ( Map ) -import Prelude hiding (mapM)  import Data.Traversable (mapM) -import Control.Monad hiding (mapM) +import Prelude hiding (mapM)  renameInterface :: LinkEnv -> Bool -> Interface -> ErrMsgM Interface @@ -93,6 +94,9 @@ instance Monad (GenRnM n) where    (>>=) = thenRn    return = returnRn +instance Functor (GenRnM n) where +  fmap f x = do a <- x; return (f a) +  returnRn :: a -> GenRnM n a  returnRn a   = RnM (const (a,[]))  thenRn :: GenRnM n a -> (a -> GenRnM n b) -> GenRnM n b @@ -211,7 +215,7 @@ renameLKind = renameLType  renameMaybeLKind :: Maybe (LHsKind Name) -> RnM (Maybe (LHsKind DocName))  renameMaybeLKind Nothing = return Nothing -renameMaybeLKind (Just ki) = renameLKind ki >>= return . Just +renameMaybeLKind (Just ki) = Just <$> renameLKind ki  renameType :: HsType Name -> RnM (HsType DocName)  renameType t = case t of @@ -241,11 +245,11 @@ renameType t = case t of    HsTupleTy b ts -> return . HsTupleTy b =<< mapM renameLType ts -  HsOpTy a (w, (L loc op)) b -> do +  HsOpTy a (w, L loc op) b -> do      op' <- rename op      a'  <- renameLType a      b'  <- renameLType b -    return (HsOpTy a' (w, (L loc op')) b') +    return (HsOpTy a' (w, L loc op') b')    HsParTy ty -> return . HsParTy =<< renameLType ty diff --git a/src/Haddock/InterfaceFile.hs b/src/Haddock/InterfaceFile.hs index e998ffec..970093df 100644 --- a/src/Haddock/InterfaceFile.hs +++ b/src/Haddock/InterfaceFile.hs @@ -22,24 +22,25 @@ module Haddock.InterfaceFile (  import Haddock.Types  import Haddock.Utils hiding (out) -import Data.List -import Data.Word +import Control.Monad  import Data.Array  import Data.IORef +import Data.List  import qualified Data.Map as Map  import Data.Map (Map) +import Data.Word -import GHC hiding (NoLink) -import Binary  import BinIface (getSymtabName, getDictFastString) -import Name -import UniqSupply -import UniqFM -import IfaceEnv -import HscTypes -import GhcMonad (withSession) +import Binary  import FastMutInt  import FastString +import GHC hiding (NoLink) +import GhcMonad (withSession) +import HscTypes +import IfaceEnv +import Name +import UniqFM +import UniqSupply  import Unique @@ -110,8 +111,8 @@ writeInterfaceFile filename iface = do                        bin_dict_map  = dict_map_ref }    -- put the main thing -  bh <- return $ setUserData bh0 $ newWriteState (putName bin_symtab) -                                                 (putFastString bin_dict) +  let bh = setUserData bh0 $ newWriteState (putName bin_symtab) +                                           (putFastString bin_dict)    put_ bh iface    -- write the symtab pointer at the front of the file @@ -295,12 +296,9 @@ putSymbolTable bh next_off symtab = do  getSymbolTable :: BinHandle -> NameCache -> IO (NameCache, Array Int Name)  getSymbolTable bh namecache = do    sz <- get bh -  od_names <- sequence (replicate sz (get bh)) -  let -        arr = listArray (0,sz-1) names -        (namecache', names) = -                mapAccumR (fromOnDiskName arr) namecache od_names -  -- +  od_names <- replicateM sz (get bh) +  let arr = listArray (0,sz-1) names +      (namecache', names) = mapAccumR (fromOnDiskName arr) namecache od_names    return (namecache', arr) diff --git a/src/Haddock/Types.hs b/src/Haddock/Types.hs index 927fcffb..22d2f6ae 100644 --- a/src/Haddock/Types.hs +++ b/src/Haddock/Types.hs @@ -430,7 +430,7 @@ throwE str = throw (HaddockException str)  -- @Haddock.Types.ErrMsg@s a lot, like @ErrMsgM@ does,  -- but we can't just use @GhcT ErrMsgM@ because GhcT requires the  -- transformed monad to be MonadIO. -newtype ErrMsgGhc a = WriterGhc { runWriterGhc :: (Ghc (a, [ErrMsg])) } +newtype ErrMsgGhc a = WriterGhc { runWriterGhc :: Ghc (a, [ErrMsg]) }  --instance MonadIO ErrMsgGhc where  --  liftIO = WriterGhc . fmap (\a->(a,[])) liftIO  --er, implementing GhcMonad involves annoying ExceptionMonad and diff --git a/src/Haddock/Utils.hs b/src/Haddock/Utils.hs index 9865fdf1..3a2f1d28 100644 --- a/src/Haddock/Utils.hs +++ b/src/Haddock/Utils.hs @@ -70,7 +70,7 @@ import Data.IORef ( IORef, newIORef, readIORef )  import Data.List ( isSuffixOf )  import Data.Maybe ( mapMaybe )  import System.Environment ( getProgName ) -import System.Exit ( exitWith, ExitCode(..) ) +import System.Exit  import System.IO ( hPutStr, stderr )  import System.IO.Unsafe ( unsafePerformIO )  import qualified System.FilePath.Posix as HtmlPath @@ -156,11 +156,11 @@ restrictCons names decls = [ L p d | L p (Just d) <- map (fmap keep) decls ]          field_avail (ConDeclField n _ _) = unLoc n `elem` names          field_types flds = [ t | ConDeclField _ t _ <- flds ] -    keep _ | otherwise = Nothing +    keep _ = Nothing  restrictDecls :: [Name] -> [LSig Name] -> [LSig Name] -restrictDecls names decls = mapMaybe (filterLSigNames (`elem` names)) decls +restrictDecls names = mapMaybe (filterLSigNames (`elem` names))  restrictATs :: [Name] -> [LTyClDecl Name] -> [LTyClDecl Name] @@ -286,7 +286,7 @@ getProgramName = liftM (`withoutSuffix` ".bin") getProgName  bye :: String -> IO a -bye s = putStr s >> exitWith ExitSuccess +bye s = putStr s >> exitSuccess  die :: String -> IO a @@ -319,7 +319,6 @@ escapeStr = escapeURIString isUnreserved  -- to avoid depending on the network lib, since doing so gives a  -- circular build dependency between haddock and network  -- (at least if you want to build network with haddock docs) --- NB: These functions do NOT escape Unicode strings for URLs as per the RFCs  escapeURIChar :: (Char -> Bool) -> Char -> String  escapeURIChar p c      | p c       = [c] | 
