Haskell实例声明中的编译错误

时间:2013-10-09 15:48:52

标签: haskell compiler-errors

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

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的中间?怎么可能?

更新 关闭,麻烦是标签

1 个答案:

答案 0 :(得分:1)

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