首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会产生错误的代码?

会产生错误的代码?
EN

Stack Overflow用户
提问于 2015-04-01 11:00:15
回答 1查看 72关注 0票数 3

我正在制作一个Yesod子网站,并在一些模板Haskell生成的代码中得到一个类型错误:

代码语言:javascript
复制
Yesod\DataSource\Data.hs:19:1:
Couldn't match type `[Char]' with `Text'
Expected type: () -> ([Text], [(Text, Text)]) -> Maybe (Route DataSource)
  Actual type: () -> ([[Char]], [(Text, Text)]) -> Maybe (Route DataSource)
In the first argument of `\ f_amMs x_amMt -> f_amMs () x_amMt ::
                            forall a_amMu.
                            (() -> ([Text], [(Text, Text)]) -> Maybe (Route a_amMu))
                            -> ([Text], [(Text, Text)]) -> Maybe (Route a_amMu)', namely
  `helper_amMr'
In the expression:
    \ f_amMs x_amMt -> f_amMs () x_amMt ::
      forall a_amMu.
      (() -> ([Text], [(Text, Text)]) -> Maybe (Route a_amMu))
      -> ([Text], [(Text, Text)]) -> Maybe (Route a_amMu)
    helper_amMr

问题很明显,但我不明白为什么它会生成错误的代码。

这一问题发生在这次电话会议上:

代码语言:javascript
复制
mkYesodSubData "DataSource" [parseRoutes|
/ SubHomeR GET
/datasource DataSourceInputR POST GET
|]

具体而言,造成这种情况的原因如下:

代码语言:javascript
复制
/datasource DataSourceInputR POST GET

删除此行将修复此问题。

我用的是堆叠LTS 1.15:

代码语言:javascript
复制
remote-repo: stackage-lts-1.15:http://www.stackage.org/snapshot/lts-1.15

我在一个阴谋集团的沙箱里。

以下是相关文件:https://gist.github.com/BeerendLauwers/774cc432c3ada5b597e1

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-01 11:07:48

我认为生成的代码希望在源文件中启用OverloadedStrings扩展。试着添加

代码语言:javascript
复制
{-# LANGUAGE OverloadedStrings #-}

插入模板Haskell代码(即Data.hs)的源文件顶部。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29389064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档