我已经输入了import.hs
import qualified Database.Esqueleto as E
但是在我的处理程序文件中
import Import
但找不到E
module Handler.MyProfile where
import Import
getMyProfileR :: Handler Html
getMyProfileR = do
now <- liftIO getCurrentTime
wordList <- (runDB $ E.select $ E.from $ v -> do
where_ (v ^. VocabularyDate E.<. val now)
return v)
defaultLayout $ do
$(widgetFile "myprofile")
这是不可能的。这将击败合格进口的主要目的:预选赛前五十件告诉您来自何处的事情。如果您的代码中有E.<.
,读者希望能够查看它来自何处!
您有两个选择:
- 将
import qualified Database.Esqueleto as E
直接放在Handler.MyProfile
中。这通常是最好的解决方案 - 虽然它导致每个源文件之上的笨拙的标头,但优势是,一个人立即看到了一切的来源。是的,它违反了干燥,但我认为在这种情况下这是合理的。 -
为Esqueleto东西制作专用的"导入模块"。而且,如有必要,对于您拥有的任何其他进口标级前缀
module Import.Esqueleto where -- package-local, hidden module import Database.Esqueleto import Database.Esqueleto.... module Handler.MyProfile where import qualified Import.Esqueleto as E