2011-02-15 66 views
2

所以我写了一些标准ML代码,并试图用smlnj进行编译。我得到了以下错误:我可以在SMLNJ中扩展typedef吗?

Error: operator and operand don't agree [tycon mismatch] 
    operator domain: unit -> Absyn.fundec 
    operand:   unit 
        -> (pos * pos) * 
         ((string * int) * (string * int) * Absyn.tp * Absyn.tp 
         * Absyn.exp) 

现在,这看起来应该是类型匹配的基础上我粗略检查的类型。我不会告诉你他们,因为我想要一个通用的解决方案,而不是我的代码中的错误。

是否有可能将两种类型扩展为基本数据类型,以便我能弄清楚它们有何不同?随着所有这些类型定义的浮动变得混乱,并且通过.sml文件查找所有定义并在纸上写入扩展看起来像是一个乏味的解决方案。

我很想这样说:

typeof Absyn.fundec 

,并找出究竟发生了什么样的表情可能会产生一个有效的fundec。

回答

1

因为Absyn.fundec不是int,bool等的标准类型,所以必须有一个数据类型或类型声明,它应该告诉你Absyn.fundec类型是如何定义的。

相关问题