如何制作约束蕴含函数(||-)? (关联类型同义词)
How to make the constraint-entailment function (||-)? (associated type synonyms)
我只是一个非计算科学与工程专业的业余爱好者
最近,我做了一个微型函数式编程语言:https://github.com/mecheng98/nabi
但是 nabi 是无类型的,所以我想给它添加一个类型检查器。
具体目标是实现一个基于haskell98但支持唯一扩展的类型检查器"associated type synonyms"。
我阅读了这篇论文 Associated Type Synonyms,然后尝试制作约束蕴含函数 (||-)。
但是我没有做到,因为我太难了(||-)应用推理规则"EQ_subst"而不陷入无限循环。
能否请您给我一个制作 (||-) 的提示并教我如何实现我的目标?
+) 我希望以 THIH 风格表示类型。
非常感谢您阅读我的问题。新年快乐。
I read the paper Associated Type Synonyms right then tried to make the constraint-entailment function (||-).
But I failed to do it, because it is too hard for me to have (||-) apply the inference rule "EQ_subst" and not fall into infinite loop.
这听起来像是在尝试直接实施类型化规则(图 2),但仅靠这些并不能提供有效的类型检查程序。该论文还介绍了一种类型推断算法(第 5 节;图 4、5),这是应该实现的。要学习该部分,您可能需要先很好地掌握 Hindley-Milner 类型推断和统一。
我只是一个非计算科学与工程专业的业余爱好者
最近,我做了一个微型函数式编程语言:https://github.com/mecheng98/nabi
但是 nabi 是无类型的,所以我想给它添加一个类型检查器。
具体目标是实现一个基于haskell98但支持唯一扩展的类型检查器"associated type synonyms"。
我阅读了这篇论文 Associated Type Synonyms,然后尝试制作约束蕴含函数 (||-)。
但是我没有做到,因为我太难了(||-)应用推理规则"EQ_subst"而不陷入无限循环。
能否请您给我一个制作 (||-) 的提示并教我如何实现我的目标?
+) 我希望以 THIH 风格表示类型。
非常感谢您阅读我的问题。新年快乐。
I read the paper Associated Type Synonyms right then tried to make the constraint-entailment function (||-).
But I failed to do it, because it is too hard for me to have (||-) apply the inference rule "EQ_subst" and not fall into infinite loop.
这听起来像是在尝试直接实施类型化规则(图 2),但仅靠这些并不能提供有效的类型检查程序。该论文还介绍了一种类型推断算法(第 5 节;图 4、5),这是应该实现的。要学习该部分,您可能需要先很好地掌握 Hindley-Milner 类型推断和统一。