Haskell 是否可以在系统F或CoC等设置中混合使用动态和静态类型?

Haskell 是否可以在系统F或CoC等设置中混合使用动态和静态类型?,haskell,types,functional-programming,type-systems,Haskell,Types,Functional Programming,Type Systems,我有一个很大的非类型λ-项的代码库。我认为尝试将此代码库转换为构造演算可能会很有趣,但我不想从头开始实现所有东西。相反,我希望类型系统接受我的非类型术语。我会以渐进的方式慢慢添加类型注释 我的想法是用一个“未知”类型的注释扩展CoC,?,该注释将始终进行类型检查,但我不确定这是否可行。有什么已知的、有原则的方法可以做到这一点吗?对此我不确定。一些随机的想法——这种非类型术语的任何实际使用不会产生?类型吗?主题缩减不能再保留类型,它必须考虑在每次beta缩减时可能变成?的类型。此外,以后添加类型不

我有一个很大的非类型λ-项的代码库。我认为尝试将此代码库转换为构造演算可能会很有趣,但我不想从头开始实现所有东西。相反,我希望类型系统接受我的非类型术语。我会以渐进的方式慢慢添加类型注释


我的想法是用一个“未知”类型的注释扩展CoC,
,该注释将始终进行类型检查,但我不确定这是否可行。有什么已知的、有原则的方法可以做到这一点吗?

对此我不确定。一些随机的想法——这种非类型术语的任何实际使用不会产生
类型吗?主题缩减不能再保留类型,它必须考虑在每次beta缩减时可能变成
的类型。此外,以后添加类型不仅仅是添加注释,而是插入lambda和类型应用程序(例如,identity在CoC中是一个二进制函数)。在Coq/Agda中,您可以添加一个(不一致的)公理
强制:对于所有a:Type,?->a
强制进行类型检查,但无法再进行缩减。