Я извлек постоянный код, генерирующий типы записей, в отдельный модуль (Dao), и я хочу сохранить импорт чистым и строгим, поэтому я попытался явно импортировать все нужные мне типы и функции из модуля Dao. Я застрял с экземпляром нового типа для ключа. Ключ не мой тип семьи. Это определено в постоянной библиотеке.
import Dao -- work but it is a mystery how much is imported
GH C (8.6.5) выглядит довольно умно и даже пытается помочь в моей борьбе:
In module `Dao':
`RedirectMappingRKey' is a data constructor of `Key'
To import it use
import Dao( Key( RedirectMappingRKey ) )
or
import Dao( Key(..) )
|
52 | import Dao (openDbPool, RedirectMappingR(..), RedirectMappingRKey)
, но обе версии предложенный GH C отвергается им:
Module `Dao' does not export `Key(RedirectMappingRKey)'
|
52 | import Dao (openDbPool, RedirectMappingR(..), Key(RedirectMappingRKey))
или
C:\pro\demo\haskell\servant\myproject\src\Lib.hs:52:47: error: Module `Dao' does not export `Key(..)'
|
52 | import Dao (openDbPool, RedirectMappingR(..), Key(..))
| ^^^^^^^
определение экземпляра
*Dao> :i RedirectMappingRKey
newtype instance persistent-2.9.2:Database.Persist.Class.PersistEntity.Key
RedirectMappingR
= RedirectMappingRKey {...}
У меня заканчиваются идеи, возможно, квалифицированный импорт может помочь мне, но я хотел бы знать лучшее решение.