Рассмотрим следующий модуль
{-# 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
?
Я не хочу писать сигнатуры типов, потому что в данном случае они являются шаблонными. Если мне придется их записать, этот модуль теряет смысл существования.