typingConstraint capGamma i (App (Abs x tau t)t2) =
((Abs x tau t)
,t2(TypeVar ("T"++show (i+1)))
,(TypeArrow(TypeVar("T"++show i)),(TypeVar("T"++ show (i+1)))))
where ((Abs x tau t),t2(TypeArrow tau1 tau2)) = typingConstraint capGamma i x
错误消息
"解析模式t2"
中的错误
答案 0 :(得分:3)
您的问题很少提供有关更广泛内容的信息,因此我不确定如何解决问题。但是,我可以看到语法错误。
where ((Abs x tau t),t2(TypeArrow tau1 tau2)) = typingConstraint capGamma i x
在=
左侧有一个模式,它使用模式变量t2
作为函数,应用于(TypeArrow tau1 tau2)
,但不允许这样的模式:匹配这样的模式意味着从其使用的一个例子中找出函数t2
。
我的猜测是你错过了一个逗号。没有更多信息,很难提供更好的建议。如果你能说出typingConstraint
的类型,那对我(也可能是你)来说真的很有帮助。该类型将告诉您哪些模式对于匹配其输出有效。