1

我遇到了奇怪的编译错误。

import Foreign
import Foreign.C.Types
import Foreign.C.String

newtype Test = Test {testList :: [CShort]}   deriving (Show)    

instance Storable Test where
    sizeOf _ =  16
    peek _ = error "peek is not implemented"
    alignment _ = alignment (undefined :: CShort)

得到

TestICH.hsc:9:16: parse error on input `='

9:16peek _ = er{here}ror "peek is not implemented",在这个词的中间error?这怎么可能?

更新 已关闭,问题出在标签上

4

1 回答 1

1

检查sizeOf,peek和的声明的缩进alignment。它们都应该缩进到相同的级别。很可能,一个或多个声明使用制表符进行缩进,而其他声明使用空格,这将导致此错误。编写 Haskell 时,最好将编辑器配置为始终使用空格而不是制表符来避免这个问题。

于 2013-10-09T16:13:01.127 回答