查看模块的隐式导出

时间:2019-05-24 13:03:56

标签: haskell module ghc yesod template-haskell

非常令人惊讶的是,我试图通过显式添加为特定模块逐个导入的元素来修复编译警告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

现在,我想在特定的模块中分配份额,并精确控制我从生成的代码中导出的内容。

我不知道它是如何生成PersonNamePersonAge的!例如,我不打算具体导入这两种类型...

0 个答案:

没有答案