Я видел пару пакетов на hackage, которые содержат имена модулей с .Internal
в качестве своего последнего компонента (например, Data.ByteString.Internal
)
Эти модули, как правило, не могут быть просмотрены в браузере (но они все равно могут отображаться) в Haddock и не должны использоваться клиентским кодом, но содержат определения, которые либо реэкспортируются из открытых модулей, либо просто используются внутри.
Теперь мой вопрос к этому шаблону организации библиотеки:
- Какие проблемы решаются этими модулями
.Internal
? - Есть ли другие предпочтительные способы решения этих проблем?
- Какие определения следует перенести в те модули
.Internal
? - Какая рекомендуемая практика в отношении организации библиотек с помощью таких модулей
.Internal
?