- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想写一些类似的东西:
{-# LANGUAGE FlexibleContexts,FlexibleInstances #-}
import Data.ByteString.Char8 (ByteString,pack)
import Data.Foldable (Foldable)
class (Show a) => Rows a where
rRepr :: a -> [ByteString]
rRepr = (:[]) . pack . show
instance (Foldable f,Show (f a)) => Rows (f a) where
rRepr = const []
f a
实例化
Rows
如果
f
实例化
Foldable
和
f a
实例化
Show
.当我运行 ghc 我得到:
Constraint is no smaller than the instance head
in the constraint: Show (f a)
(Use -XUndecidableInstances to permit this)
In the instance declaration for `Rows (f a)'
UndecidableInstances
的情况下定义我想要的东西的正确方法是什么? ? 最佳答案
让我们玩一下编译器:我们有一个类型 (f a)
我们想看看它是否是 Rows
的有效满足符约束。为此,我们需要发送一个证明 (f a)
满足 Show (f a)
也是。这不是问题,除非有人写
instance Rows (f a) => Show (f a) where ...
UndecidableInstances
.
Show
对
class
的约束定义使用像
Show1
这样的实例来自
prelude-extras .
class Show1 f where ...
show1 :: (Show1 f, Show a) => f a -> String -- not an instance definition!
instance (Foldable f, Show1 f, Show a) => Rows (f a) where ...
这在我的测试中有效。然后,您可以将默认实例编写为独立函数。
defRRepr :: Show a => a -> [ByteString]
defRRepr = (:[]) . pack . show
Show
编写实例定义时使用它能干的事。
newtype
包装器允许 Haskell 看到分辨率的“层”已被删除。
instance (Foldable f, Show (f a)) => Rows (FoldableRow f a) where
rRepr = const [] . unFR
newtype FoldableRow f a = FR { unFR :: f a } deriving (Show)
关于haskell - "Contraint is no smaller than the instance head"是什么意思以及如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17863332/
我已经写了这个简单的Dockerfile: FROM alpine WORKDIR /usr/src RUN apk add --no-cache curl jq RUN mkdir /env COP
我习惯于使用函数 optim ,但这次我对我的一个变量有一个条件。我有三个变量:a、b 和 d。我没有对 a 或 b 设置任何条件,但 d 必须在 0 和 1 之间:0== 0'. 因此,您需要建立一
如何解决 FK 约束?带触发器还是其他东西? #IF "DELETE FROM human where name='a';", error due to the FK contraist. # If
在我的项目中,我定义了一个 xib 和一个将包含 xib 的 ViewController。 class FeedDetailViewController: UIViewController, Fee
我想写一些类似的东西: {-# LANGUAGE FlexibleContexts,FlexibleInstances #-} import Data.ByteString.Char8 (ByteSt
我正在尝试更改我的表“广告”的引擎。它不会让我和我收到“外键约束失败”的消息。但我删除了所有外键,并且 SHOW CREATE TABLE 给了我这个: CREATE TABLE `adverts`
我得到了 错误 1215:无法在我的 sql 脚本上添加外键约束。 我已经检查过有关此问题的其他问题,答案始终是您必须设置相同的类型。 嗯,我的外键类型相同,但出现此错误。 这是我的sql脚本的代码:
检查证书基本约束的正确方法是什么?下面是我目前用来模仿钥匙串(keychain)中显示的图标的代码(下面的原因是虽然我们有一个 SFChooseIdentityPanel * identityPan
我正在尝试创建带有复合外键的表,但不断遇到错误错误代码:1822。无法添加外键约束。引用表“contractdates”中缺少约束“fk_contractdateshistoric_contractd
我有一个在 Django 和 MySql 上运行的网站。 部分数据库表使用InnoDB作为引擎,其他一些使用MyISAM。 这没有什么特殊原因。该项目是很久以前开始的,我认为这是由配置更改引起的。 当
完整错误: * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to p
使用 Oracle SQL Developer,您可以使用“工具”>“数据库导出”菜单项将数据库导出到 SQL 脚本(仅限 INSERT 语句)。问题是表格是按字母顺序导出的,而且似乎无法更改该顺序(
我正在尝试向我的航类计划表中添加一个外键,但它失败了,但我真的不知道为什么。外键应该引用 tblAircraft 表中的 txtAC_tag 属性,它是主键的一部分! 所以 tblAircraft 被
我试图将外键添加到我的 Flightschedule 表中,但失败了,但我真的不知道为什么。外键应引用 tblAircraft 表中的 txtAC_tag 属性,该表是主键的一部分!因此 tblAir
我是一名优秀的程序员,十分优秀!