Рассмотрим следующий модуль
{-# 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 .