我只是一个爱好专业,不涉足计算科学与工程专业。
最近,我做了一种很小的函数式编程语言:https://github.com/mecheng98/nabi
但是nabi是无类型的,因此我想向其添加类型检查器。
实现一个基于haskell98的类型检查器是我的一个具体目标,但它仅支持“关联类型同义词”扩展。
我正确地读了论文Associated Type Synonyms,然后尝试制作约束约束函数(||-)。
但是我做不到,因为对我来说很难让(||-)应用推理规则“ EQ_subst”并且不会陷入无限循环。
请您给我一个提示(||-),并教我如何实现自己的目标?
+)我对THIH印象深刻,所以我希望扩展THIH的实现以实现我的目标,例如:
data Type
= TVar TyVar
| TCon TyCon
| TAp Type Type
| TGen Int
deriving Eq
data Pred
= IsIn Id Type
| IsEq Type Type
deriving Eq
entails :: ClassEnv -> [Pred] -> Pred -> Bool
entails = undefined
reduce :: Monad m => ClassEnv -> [Pred] -> m [Pred]
reduce = undefined
非常感谢您阅读我的问题。新年快乐。
答案 0 :(得分:2)