gadt 相关问题

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

将新的 Scala 类型类语法与 GADT 类型相结合

我正在用 Scala 编写一个库,并决定使用 3.5.0 版本中引入的更新(实验)语法来处理类型类。所以我的代码有: 特质有边界: 自我类型

回答 1 投票 0

幻像类型使模式匹配无可辩驳,但这在 do 表示法中似乎不起作用

请看代码。 我相信使用幻像类型使得模式匹配无可辩驳,因此不需要 MonadFail 实例。 {-# 语言数据种类 #-} {-# 语言 GADT #-} {-# 选项...

回答 1 投票 0

在 Haskell 中,当函数无法处理数据类型的每个构造函数时,这意味着什么?

考虑 数据对 = 对(标头、生成器) |化合物对(标头,[对]) showBoundPart :: 边界 -> 配对 -> 生成器 showBoundPart(边界b)(对(标题,内容))= mc...

回答 1 投票 0

如何在具有类约束的单个类型容器中嵌入多个参数类型?

我想创建一个对多种数据类型执行操作的Haskell 类。例如,我想在 Map 结构的所有元素上添加一个值并检索一个新的 Map。 要做...

回答 1 投票 0

使用约束类型写入 GADT 记录

SO是一场狗屎秀。感谢您的搭车。

回答 1 投票 0

如何使用menhir解析成GADT表达式?

我刚刚通过Real World OCaml了解了OCaml中的GADT,并想尝试将那里的第一个小语言转移到解释器中,从而使用menhir。 ast 的定义是

回答 1 投票 0

如何使用menhir解析成GADT表达式?

我刚刚通过Real World OCaml了解了OCaml中的GADT,并想尝试将那里的第一个小语言转移到解释器中,从而使用menhir。 ast 的定义是

回答 1 投票 0

如何更改构造函数的类型应用程序参数的顺序

我有以下数据类型定义: 类型 DynamicF' :: k -> (k -> 类型) -> 类型 数据 DynamicF' k f 其中 DynamicF :: 可输入 a => f a -> DynamicF' k f 问题是,将军...

回答 1 投票 0

为什么 Data.Dynamic 包含见证而不是类型类约束?

Data.Dynamic 有以下实现: 数据动态在哪里 动态 :: TypeRep a -> a -> 动态 我发现以下定义是等效的(至少我......

回答 1 投票 0

无法解决与 gadt 类型不匹配的问题

我对 x 与 gadt 有以下类型定义。 输入 x = X : '一个选项 -> x 我正在尝试编写一个函数来获取带有标签 X 的选项的值 我首先尝试了以下方法 乐...

回答 1 投票 0

具有递归依赖元素的反向异构 gadt 列表

看过关于 List 的元素取决于前面元素的类型的答案,其中问题通过以下列表定义解决: 输入 ('a,'b) mlist = |明尼尔...

回答 1 投票 0

像 `Type.eq` / `Typing_equal.equal` 这样的平等证人有什么用?

type ('a, 'b) equal = ('a, 'b) t (source) 有什么用?我在 Coq 中使用过 refl,但还不需要像 OCaml 中那样的东西。 该类型在 Base 和即将发布的 OCaml 版本中定义

回答 0 投票 0

在 Scala 中使用 GADT 进行详尽检查的简洁方法?

我正在寻找与以下 OCaml 代码相同的行为,其中编译器理解匹配是详尽无遗的,因为我们已经表示两个检查者必须具有相同的类型: 输入 c...

回答 1 投票 0

GADTS/类型族的映射规则

这些是示例输入和输出类型的简单表示: 输入 = I1 Int | I2 字符串 输出 = OA 字符串 | OB 布尔 |超频 这里的参数只是为了更真实。 :) 我

回答 1 投票 0

GADTs但不存在量化的问题。

以下包含存在型的代码不能编译 {-# LANGUAGE LambdaCase #-}。{-# LANGUAGE DeriveFunctor #-}。{-# LANGUAGE TupleSections #-}。{-# LANGUAGE RankNTypes #-}。{-# LANGUAGE ...

回答 1 投票 0

为什么ghc不能在这个Category产品上匹配这些类型?

我有一个非常典型的类别定义,是这样的: class Category (cat :: k -> k -> Type) where id :: cat a a (.) :: cat a b -> cat c a -> cat c b Now I would like to make the ...

回答 1 投票 2

异构列表上的此类型错误是什么意思?

我有一个异构列表,并且在它们上面有一个函数,类型('ls,'tl)hlist = | Nil:('a,'a)hlist |缺点:'a *('l,'t)hlist->('a->'l,'t)hlist let rec headlist l =将l与|匹配。 ...

回答 1 投票 0

GADT的类型推断-a0不可触摸

让我说我有这个程序{-#语言GADT#-}数据My a其中A :: Int-> My Int B :: Char-> My Char main :: IO()main = do let x = undefined: :我的A v x案例x-> ...

回答 2 投票 12

为什么列举所有情况时通配符匹配不起作用?

考虑此代码:{-#语言GADT#-}数据P t其中PA :: P Int PB :: P Double PC :: P Char isA PA = True isA _ = False它将编译并正常工作。现在考虑以下代码:{-#LANGUAGE ...

回答 1 投票 7

GADT类型为无形状副产品-如何构建具有任意数量的代数的解释器

假设我有两种GADT类型。抽象类Numbers [A]()案例类IntType()扩展Numbers [Int]抽象类Letters [A]()案例类EnglishType()扩展Letters [String]我有...

回答 1 投票 0

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