impredicativetypes相关内容
OCaml的Hindley-Milner类型系统不允许强制性多态性(称为System-F),除非最近对记录类型进行了扩展.同样适用于F#. 有时有时需要将强制性多态性(例如Coq)编写的程序翻译成此类语言. Coq提取到OCaml的解决方案是(部分地)使用Obj.magic,这是一种通用的不安全类型转换.之所以有效,是因为 在OCaml的运行时系统中,所有值的大小均相同,无论其类型如何
..
我正在搞乱 runST 函数。其中有类型(forall s。ST s a) - >一个,它似乎试图以任何不直接应用而没有任何间接性的方式使用它,以非常讨厌的方式破坏它。 runST ::(forall s。ST sa) - > a const :: a - > b - > a 所以在 a c $ c> const 用于 forall s。 ST sa 你应该得到
..
在Haskell中采用谦虚的标识函数, id :: forall a。 a - > a 鉴于Haskell据称支持impandicative多态,我应该能够“限制” id 添加到类型(forall a。a - > a) - > (通过类型归属来确定b。b - > b)。但这不起作用: Prelude> id ::(forall a。a - > a) -
..
我想要一些像 f :: [forall m。 (Mutable v)(PrimState m)r - > m()] - > v r - > vr - 非法签名 f gs x = runST $ do y gy)undefined gs - 获得这个想法 unsafeFreeze y 我基本处于和
..