我遇到了奇怪的编译错误。
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:16
是peek _ = er{here}ror "peek is not implemented"
,位于单词error
的中间?怎么可能?
更新 关闭,麻烦是标签
答案 0 :(得分:1)
检查sizeOf
,peek
和alignment
声明的缩进。它们应该缩进到同一级别。最有可能的是,一个或多个声明使用制表符进行缩进,而其他声明则使用空格,这将导致此错误。编写Haskell时,最好将编辑器配置为始终使用空格而不是制表符来避免此问题。