试图在Haskell中定义我自己的类型

试图在Haskell中定义我自己的类型,haskell,types,Haskell,Types,我试图在Haskell中定义自己的类型,名为Name,它只是一个字符串(我单独定义它是为了使代码更具可读性)。我只是这样写代码: type Name = String 但是,当我运行保存在GHCI中的文件时,我得到一个错误,上面写着“parse error on input`type'”。为什么我会犯这个错误 全部代码: module Names where import PhoneBook type Name = String 这应该行得通。很可能是编辑器中周围的空白或隐藏格式的问题导致

我试图在Haskell中定义自己的类型,名为
Name
,它只是一个
字符串(我单独定义它是为了使代码更具可读性)。我只是这样写代码:

type Name = String
但是,当我运行保存在GHCI中的文件时,我得到一个错误,上面写着“parse error on input`type'”。为什么我会犯这个错误

全部代码:

module Names where import PhoneBook

type Name = String

这应该行得通。很可能是编辑器中周围的空白或隐藏格式的问题导致了此问题


如果粘贴源代码,我们可能会直接解决这个问题:)

您需要将导入语句放在模块声明的单独一行上。像这样:

module Names where

import Phonebook

type Name = String

这条线适合我。该文件中是否还有其他错误?很可能是缩进错误。请记住,空格在Haskell中很重要。尝试了所有不同的缩进,仍然是相同的错误?请确保没有得到任何\t作为空格,最佳做法是使用编辑器,允许您使用空格设置缩进。如果这不是空格问题,则我怀疑在此之前的(非空)行有问题。你能发那条线吗?或者更好的是,一个简单但完整的例子展示了这个问题。这个答案并不精确:进口不需要单独一行。但是,
其中
确实开始一个块,因此后面的行必须与后面的第一个非空白、非注释字符在同一列中开始。