Рассмотрим следующий модуль
{-# 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
, который работает немного как модуль первого класса. Затем модуль Пример
создает экземпляр модуля и использует расширение RecordWildCards, чтобы ввести имена в область видимости и сделать их экспортируемыми.
Когда вы запускаете Haddock (версия 2.8) в этом модуле, это будет мешать типу подписи для функций foo
и включить их в документацию по API. Теперь мой вопрос:
Есть ли способ задокументировать полученные имена
foo
,fuh
и т. Д. без записи сигнатур их типов в модульExample
?
Я не хочу писать сигнатуры типов, потому что в данном случае они являются шаблонными. Если мне придется их записать, этот модуль теряет raison d'être .