Я видел несколько более старый вопрос в Избегание загрязнения пространства имен в Haskell и ищу современный решение с помощью линз.
Я думаю, что подход будет состоять из нескольких шагов:
- Перепишите поля так, чтобы они подходили для линз:
field
->_field
. - Используйте линзы.
- Избегайте экспорта (или, если на стороне пользователя, импорта) файла
_field
s.
Меня больше всего беспокоит пункт 3 в этом вопросе, так как я думаю, что смогу выяснить остальное на основе существующих ресурсов. Но, возможно, это невозможно.
time
во многих различных типах записей, и они даже означают одно и то же. Я думаю, что не называть поля может быть вариантом. - person bbarker   schedule 19.01.2019Record
сRecord{id:: Int}
- есть ли способ иметь возможность напрямую ссылаться наRecord
без префикса, а затем также делать что-то вродеRCD.id
, гдеRCD
- это квалифицированный импорт для использования полеid
(или просто не импортировать их вообще, как говорится в моем исходном вопросе, что, я полагаю, является основным отличием от предыдущего вопроса). - person bbarker   schedule 19.01.2019Record
.import qualified ThePackage AS RCD; import ThePackage (Record)
- person 4castle   schedule 19.01.2019