Yeson.json.object применяется к слишком многим аргументам

import Yesod
import Data.Text

data App = App

instance Yesod App

mkYesod "App" [parseRoutes|
               / Home GET
               |]

getHome :: String -> Handler Value
getHome  =  object ["name" .= ("Adam"::Text)]

main = warpDebug 2012 App

выдает ошибку как,

 Couldn't match expected type ‘String -> Handler Value’
                with actual type ‘Value’
    Possible cause: ‘object’ is applied to too many arguments
    In the expression: object ["name" .= ("Adam" :: Text)]
    In an equation for ‘getHome’:
        getHome = object ["name" .= ("Adam" :: Text)]

object не входит в сферу применения в прелюдии. Какой пакет / модуль определяет это? Почему он не принимает пару ключ-значение в приведенном выше случае?

1 ответ

Решение

object не входит в сферу применения в прелюдии. Какой пакет / модуль определяет это?

Yesod.Json

Почему он не принимает пару ключ-значение в приведенном выше случае?

Это берет пару ключ-значение просто отлично. Сообщение об ошибке говорит вам, что object дает вам Value, но вы объявили getHome быть типом String -> Handler Valueне Value,

"Возможная причина" в данном случае кажется просто вводящей в заблуждение.

Другие вопросы по тегам