Пикша: Документировать декларацию с предполагаемой подписью типа? - PullRequest
6 голосов
/ 09 апреля 2011

Рассмотрим следующий модуль

{-# LANGUAGE RecordWildCards #-}
module Example (foo, fuh, fon, fuzz) where

import qualified FirstClassModule (Bar(foo,fuh,fon,fuzz), makeBar)

FirstClassModule.Bar {..} = FirstClassModule.makeBar parameter

parameter :: Int
parameter = 15

Предполагается, что модуль FirstClassModule предоставляет тип записи Bar, который работает немного как модуль первого класса. Затем модуль Example создает экземпляр модуля и использует расширение RecordWildCards, чтобы ввести имена в область и сделать их экспортируемыми.

Когда вы запускаете Haddock (версия 2.8) для этого модуля, он мешает сигнатурам типов для функций foo и включает их в документацию API. Теперь мой вопрос:

Есть ли способ документировать полученные имена foo, fuh и т. Д. без записи их сигнатур типа в модуле Example?

Я не хочу писать сигнатуры типов, потому что в этом случае они являются шаблонными. Если мне нужно записать их, этот модуль теряет raison d'être .

Ответы [ 2 ]

1 голос
/ 01 мая 2011

Из руководства пользователя Haddock:

http://www.haskell.org/haddock/doc/html/markup.html#id564988

Обратите внимание, что Haddock не содержит системы типов Haskell - если вы не напишите сигнатуру типа для функции, то Haddock не сможет определить тип ее и не будет включен в документацию.

Документация для версии 2.8, версия 2.9 является самой новой.

0 голосов
/ 31 декабря 2011

На самом деле, я только что узнал, что с версии 2.9.2 Хэддок будет выводить сигнатуры типов для экспортируемых функций.К сожалению, я не могу найти способ украсить их дополнительной документацией.

Например, модуль

module Test (foo) where

foo = "bar"

будет выдавать сигнатуру типа

foo :: String

в документации, но, похоже, я не могу добавить к ней какой-либо текст.

...