- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Haskell 的 GeneralizedNewtypeDeriving 机制很棒;对于那些没有看过的人,写一些类似的东西
newtype SkewOptT 𝔪 α = SkewOptT (StateT Bool 𝔪 α)
deriving (Applicative, Functor, Monad, MonadTrans)
instance [overlap ok] Monad 𝔪 => Monad (SkewOptT 𝔪)
for
(一个循环),
parfor
(并行循环),
fcndef
(添加一个新函数)等,并没有一种完美的方法可以将其拆分为多个类型类[然后自动派生一个,然后手动编写另一个]。
最佳答案
不,这是不可能的。 Default signatures (GHC 7.2 中的新功能)可能会帮助您在这里拆分类;由于您可以根据其他类型类定义方法的默认实现,因此您可能能够派生一些实例,并且只在另一个类的实例中填写要覆盖的方法。
其实除了Show
和 Read
, newtype deriving 只是检查一些前提条件是否满足,然后直接重用字典(因为 newtypes 与底层类型具有相同的表示);见 the documentation了解更多详情。
关于haskell - 有什么方法可以自定义 GeneralizedNewtypeDeriving 实例的一种或两种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695722/
假设我们有一个类型类 class (A a, B a) => C a where .使用 newtype将允许我们克隆数据类型,然后通过 GeneralizedNewtypeDeriving 自动派生
Haskell 的 GeneralizedNewtypeDeriving 机制很棒;对于那些没有看过的人,写一些类似的东西 newtype SkewOptT 𝔪 α = SkewOptT (Stat
我正在尝试定义一个 Markdown newtype,并使用 GeneralizedNewtypeDeriving 自动定义新实例: import Text.Markdown import Yesod
下面的代码使用了不安全的 GeneralizedNewtypeDeriving扩展中断 Data.Set通过插入具有不同 Ord 的不同元素实例: {-# LANGUAGE GeneralizedNe
我是一名优秀的程序员,十分优秀!