Yesod子站点功能处理程序

时间:2018-06-06 16:05:49

标签: haskell yesod

我的子网站中有一个公开的函数(一个带有一个Text参数的简单函数,它执行IO操作,然后返回一个bool)。但每次我从我的主站点boolVal <- Sub.getVal "abc"调用它时都会抛出以下错误:

Couldn't match type ‘Sub’ with ‘App’
Expected type: HandlerT App IO Bool 
Actual type: HandlerT Sub (HandlerT master0 IO) Bool

子网站代码段

type SubHandler a = forall master. Yesod master => HandlerT Sub (HandlerT 
master IO) a

getVal :: Text -> SubHandler Bool
getVal name = do
    -- some operations including IO
    return False

主网站代码段

import Sub

getHomeR :: Handler Html
getHomeR = do
    boolVal <- Sub.getVal "abc"
    defaultLayout $ do
        $(widgetFile "home/index")

子网站路线工作正常,我愚蠢地认为SubHandler会在主应用程序中注册,神奇地,就像haskell ha中的大多数东西一样

谢谢

仅供参考我真的很感激这方面的技术答案,而不只是&#34;这些类型不匹配&#34;虽然我对类和实例声明的理解并不是那么好的atm - 在进展:))

0 个答案:

没有答案