Haddock: impossible de créer graphe de dépendance (lors de l'ajout des sections avec * ou un en-tête de module)
Question
Je compilé et haddock-2.4.2 installé à partir de la source tarball.
Ajout de quelques commentaires simples au code ici:
et l'églefin en cours d'exécution
$ haddock -h -o doc Data/DualMap.hs
Warning: Data.DualMap: could not find link destinations for:
Data.Typeable.Typeable2 GHC.Base.Eq GHC.Show.Show GHC.Base.Ord GHC.Base.Bool Data.Set.Set
on obtient:
Les choses semblent bonnes. (Notez que ce module ne dépend que de libs livrés avec GHC et aucun autre module source.)
Cependant, lorsque je tente d'ajouter des sections (à la http: //www.haskell.org/haddock/doc/html/ch03s04.html#id289234 ) dans les commentaires avec "- * test" Je reçois:
$ haddock -h -o doc Data/DualMap.hs
Data/DualMap.hs:20:0: parse error on input `-- * test'
haddock: Failed to create dependency graph
Je ne sais pas où commencer à obtenir que cela fonctionne depuis ce message d'erreur me dit seulement que Haddock.Interface.depanal retourne rien (selon un grep des sources d'aiglefin), mais pas comment arrêter l'analyse de la dépendance de la faillite. Peut-être que j'ai besoin de plus d'arguments de ligne de commande ou références manquantes destinations de lien dans GHC / base / documentation conteneurs ou d'un fichier de configuration de l'aiglefin?
Recherche Google a donné beaucoup de cabale construire des erreurs du même acabit pour les paquets sur hackage mais rien sur la façon de les corriger.
Comment puis-je ajouter d'autres sections (avec astérisques) et obtenir Haddock pour générer mes docs? Qu'est-ce que (probablement chose simple,) Suis-je manque?
La solution
Simple correction (mauvais message d'erreur):
Déplacer le (jusqu'à la ligne avec le nom du module du mauvais code précédent:.
module Data.DualMap
-- * The @DualMap@ abstract type
( DualMap ()
-- * (?) internal? -- exposed for testing purposes, for now...
, dmFlip
-- * converting to and from DualMap
, toList, fromList, map
-- * constructing a DualMap
, empty, null, insert, union
Code heureux ressemble à ceci:
module Data.DualMap (
-- * The @DualMap@ abstract type
DualMap ()
-- * (?) internal? -- exposed for testing purposes, for now...
, dmFlip
-- * converting to and from DualMap
, toList, fromList, map
-- * constructing a DualMap
, empty, null, insert, union
Simple assez. J'ai trouvé en téléchargeant dlist de hacakge et éviscération et remplacer le code avec mon propre code. Lorsque dlist a travaillé avec « l'aiglefin cabale » et le mien ne l'a pas (quand j'ai essayé d'ajouter quelques astérisques), je regardais la différence entre les fichiers et bien sûr ma parenthèse était sur la mauvaise ligne.
BTW Je recommande fortement dlist comme point de départ pour un nouveau projet Haskell au lieu de hnop .