gadt 相关问题

广义代数数据类型GADT是支持自定义构造函数类型的更强大的代数数据类型。

使用OCaml中的GADT的简单lambda演算DSL

你如何使用GADT在OCaml中定义一个简单的lambda演算类DSL?具体来说,我无法弄清楚如何正确定义类型检查器从无类型AST转换为类型AST也...

回答 2 投票 9

教会编码转换功能无法使用GADT进行编译

下面的to_c函数由于在使用GADTs扩展编译时出现类型错误而被拒绝,我希望将其用于此处未显示的无关代码片段。 newtype教会=教会{...

回答 1 投票 2

TypeFamilies或GADT突然中断了有效代码

我有非常无辜的代码数据Config = Config {cInts :: [Int],cStrings :: [String]}实例Semigroup Config其中c1 <> c2 = Config {cInts = ...

回答 1 投票 8

OCaml的GADT和许多类型变量

我正在尝试在OCaml中模拟纸牌游戏(为了简单起见,我们假设它是一个单人纸牌游戏)。该游戏的给定状态由类型游戏的值表示。然后我会定义......

回答 2 投票 7

这种GADT的使用是否完全等同于存在类型?

存在量化的数据构造函数,如数据Foo = forall a。 MkFoo a(a - > Bool)| Nil可以很容易地翻译成GADT:数据Foo MkFoo :: a - >(a - > Bool) - &...

回答 3 投票 4

动态模式匹配嵌套的GADT从包装器中返回

我最近问过如何制作GADT实例的同源列表:函数返回GADT的任何构造函数的结果tl; dr { - #LANGUAGE GADTs,EmptyDataDecls# - }模块主要位置 - 定义...

回答 1 投票 3

函数返回GADT的任何构造函数的结果

当我尝试创建一个返回Thing a(其中Thing是GADT)的函数时,我正在与typechecker进行斗争。最简单的例子:{ - #LANGUAGE GADTs,EmptyDataDecls# - }模块......

回答 1 投票 2

具有约束的内联记录构造函数的存在类型

我试图在OCaml中表示一组语法的产生,而存在类型对于模拟语法规则的语义动作非常有用。我一直在研究Menhir的源代码......

回答 2 投票 2

通过Nat-kind递归

这个问题是以下问题的续集。首先参考它:通过Nat-kind重叠实例现在是时候制作Group Symmetric的实例了。在一些野蛮的数学之后,我来了......

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.