Довольно удивительно, я пытаюсь исправить предупреждение компиляции missing-export-lists
, явно добавляя элементы, импортируемые один за другим для определенного модуля, но почему-то есть что-то волшебное, что этот модуль неявно экспортирует, что я не могу найти....
возможно ли получить то, что неявным образом экспортируется с помощью ghc?
Вот пример моей проблемы, Yesod генерирует некоторый код с TH и квазицитаты:
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
import Control.Monad.IO.Class (liftIO)
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Person
name String
age Int Maybe
deriving Show
|]
Тогда давайте предположим, что мы используем этот сгенерированный код таким образом:
people <- selectList
( [PersonAge >. 25, PersonAge <=. 30]
||. [PersonName /<-. ["Adam", "Bonny"]]
||. ([PersonAge ==. 50] ||. [PersonAge ==. 60])
)
[]
liftIO $ print people
Теперь я хочу поместить share в определенный модуль и точно контролировать, что я экспортирую из этого сгенерированного кода.
Я не знаю, как это генерирует PersonName
и PersonAge
!Я не как конкретно импортировать эти 2 типа, например ...