我正在尝试实现merge
与抽象类型一起使用的通用过程,但是❰merge❱ expects a record of handlers
即使调用者传递了记录类型,它也总是会失败,即:
let Keys
: Type
= < A | B >
let ConfigType
: Type
= { A : Text, B : Text }
let Renderer =
λ(configType : Type)
→ λ(config : configType)
→ λ(value : Keys)
→ merge config value
in Renderer ConfigType { A = "A", B = "B" } Keys.A
是否有可能表明configType将是记录类型,以便可以解释此通用方法?
不,目前在该语言中这是不可能的。
在以下GitHub问题中,我们讨论了Row
在语言中添加一种类型以区分记录类型和其他类型:
https://github.com/dhall-lang/dhall-lang/issues/434
...但是最终以不同的方式解决了原始问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句