Пикша: не удалось создать граф зависимостей (при добавлении разделов с * или заголовком модуля)
Я скомпилировал и установил haddock-2.4.2 из исходного кода tarball.
Добавив несколько простых комментариев к коду здесь:
и работает пикша
$ 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
выходы:
Все выглядит хорошо. (Обратите внимание, что этот модуль зависит только от библиотек, поставляемых с GHC, и без других исходных модулей.)
Однако, когда я пытаюсь добавить разделы (а-ля http://www.haskell.org/haddock/doc/html/ch03s04.html) в комментариях с "- * test", я получаю:
$ haddock -h -o doc Data/DualMap.hs
Data/DualMap.hs:20:0: parse error on input `-- * test'
haddock: Failed to create dependency graph
Я понятия не имею, с чего начать, чтобы это работало, так как это сообщение об ошибке говорит только о том, что Haddock.Interface.depanal ничего не возвратил (в соответствии с grep источников Haddock), но не о том, как остановить анализ зависимостей. Возможно, мне нужны дополнительные аргументы командной строки или ссылки на отсутствующие места назначения ссылок в документации GHC/base/ Containers или в файле конфигурации haddock?
Поиск в Google привел к множеству ошибок компоновки cabal того же рода для пакетов при взломе, но ничего о том, как их исправить.
Как мне добавить разделы (со звездочками) и заставить Хэддока генерировать мои документы? Что (возможно, простая вещь) мне не хватает?
1 ответ
Простое исправление (ужасное сообщение об ошибке):
Переместите (до строки с именем модуля. Предыдущий неверный код:
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
Счастливый код выглядит так:
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
Достаточно просто. Я узнал об этом, загрузив DList из hacakge и потрошив его, и заменив код своим собственным кодом. Когда DList работал с 'cabal haddock', а мой - нет (когда я попытался добавить несколько звездочек), я посмотрел на разницу между файлами и убедился, что мои скобки были в неправильной строке.
Кстати, я настоятельно рекомендую DList в качестве отправной точки для нового проекта на Haskell вместо hnop.