gpt4 book ai didi

haskell - 这个上下文是什么意思 : (Monad m, (~) * a ())?

转载 作者:行者123 更新时间:2023-12-03 14:08:15 24 4
gpt4 key购买 nike

我找到了以下类实例:(Monad m, (~) * a ()) => LaTeXC (LaTeXT m a) ,但不能完全理解它的上下文。

什么(~) * a ()意思?我在哪里可以阅读它?

最佳答案

(~)是类型级别的相等性(您可以将其写为 === 的某种变体,但人们认为这种表示法已经有足够多的不同含义,引入另一个会令人困惑)。 *是那种类型。所以(~) *是两个(可居住的)类型相等的断言。换句话说,实例也可以这样写:

instance Monad m => LaTeXC (LaTeXT m ())

为什么不是?嗯,这是一个推理问题。它的编写方式使编译器选择这个实例,即使它(还)不知道 LaTeXT 的最后一个参数。是 () ,然后强制这样做,而建议的替代实例只会提示。

关于haskell - 这个上下文是什么意思 : (Monad m, (~) * a ())?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28002078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com