不在范围内:'<>'表示Data.Text

时间:2016-06-06 17:54:07

标签: haskell

我尝试使用<>运算符加入两个Data.Text,但是当我编译时,我看到以下错误:

Not in scope: ‘<>’
    Perhaps you meant one of these:
      ‘<*>’ (imported from Prelude), ‘>>’ (imported from Prelude),
      ‘<=’ (imported from Prelude)

我使用的是GHC 7.10.3,但根据this answer它很久以前就添加了。

可能已经回答了这个问题,但由于<>符号,很难在StackOverflow上找到它。

你能帮忙吗?

1 个答案:

答案 0 :(得分:4)

每当编译器抱怨某些功能不在范围内时,您很可能忘记导入它。在这种情况下你的第一站应该是Hayoo,will readily tell you <>Data.Monoid的模块base中定义了import Data.Monoid ((<>)) 。所以你只需要

import Data.Monoid

在您的模块顶部。实际上,这是一个常见的模块,我几乎总是将其导入,就像

一样
base

如果.cabal不是,您可能还需要安装它所在的包/将其添加为依赖项到import CAN bus = CAN.interface.Bus(channel='can0', bustype='socketcan_native') msg = CAN.Message(arbitration_id=0x13C, data=[0,25,1,3,1,4,1] bus.send(msg) 文件。