У меня есть открытая функция (простая функция с одним аргументом Text, которая выполняет операции ввода-вывода, а затем возвращает 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 зарегистрировался бы в основном приложении, как по волшебству, как и большинство вещей на хаскеле, ха
спасибо
к вашему сведению, я был бы очень признателентехнический ответ на этот вопрос, а не просто «типы не совпадают», хотя мое понимание объявлений классов и экземпляров не так уж и велико - работа продолжается:)