- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码会导致错误:
{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses, StandaloneDeriving #-}
class Module a b where
(*>) :: a -> b -> b
data D
newtype DWrapper = DW D
instance Module D D
deriving instance Module DWrapper DWrapper
错误:
No instance for (Module DWrapper D) arising from a use of ‘Main.*>’
In the first argument of ‘GHC.Prim.coerce’, namely
‘(Main.*>) :: DWrapper -> D -> D’
In the expression:
GHC.Prim.coerce ((Main.*>) :: DWrapper -> D -> D) ::
DWrapper -> DWrapper -> DWrapper
In an equation for ‘*>’:
(*>)
= GHC.Prim.coerce ((Main.*>) :: DWrapper -> D -> D) ::
DWrapper -> DWrapper -> DWrapper
When typechecking the code for ‘Main.*>’
in a derived instance for ‘Module DWrapper DWrapper’:
To see the code I am typechecking, use -ddump-deriv
因此,GHC 正在寻找 Module DWrapper D
实例来派生所请求的 Module D D
实例。我想这是合理的,但不是我想要的。有没有办法告诉 GHC 从哪个实例派生? GNTD 如何在 MPTC 上发挥作用?
最佳答案
不幸的是,GeneralizedNewtypeDeriving
仅适用于多参数类型类的最后参数。即使有 standalone deriving :
The stand-alone syntax is generalised for newtypes in exactly the same way that ordinary
deriving
clauses are generalised (Section 7.5.5, “Generalised derived instances for newtypes”). For example:newtype Foo a = MkFoo (State Int a)
deriving instance MonadState Int FooGHC always treats the last parameter of the instance (
Foo
in this example) as the type whose instance is being derived.
(顺便说一句,我尝试搜索任何相关的 GHC trac 错误报告或功能请求,但找不到任何内容。)
关于haskell - 将 -XGeneralizedNewtypeDeriving 与 -XMultiParamTypeClasses 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245788/
以下代码会导致错误: {-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses, StandaloneDeriving #-} cl
我是一名优秀的程序员,十分优秀!