嗨,我正在构建我自己的 GPU 编程 Haskell DSL 版本,称为 Accelerate 。问题是关于 infixl 声明:

这是代码片段:

infixl 3 :.
data tail :. head = tail :. head
    deriving (Eq, Show)

我认为这个片段非常简单明了,但是当我尝试将其加载到 ghci 时,它失败了:

它报道:
Illegal declaration of a type or class operator ‘:.’
      Use TypeOperators to declare operators in type and declarations

你对这个问题有什么想法吗?我使用的 ghc 版本是:
The Glorious Glasgow Haskell Compilation System, version 7.8.3

谢谢!

最佳答案

你需要

{-# LANGUAGE TypeOperators #-}

在您的源文件中。这就是错误消息所说的。
要在 ghci 中使用它们,您还必须在那里启用。见 XTypeOperators extension doesn't work as pragma

10-08 08:47