gpt4 book ai didi

haskell - 具有任意 "Constraint aliases"的派生子句?

转载 作者:行者123 更新时间:2023-12-04 21:40:23 26 4
gpt4 key购买 nike

例如,此声明带有 deriving :

{-# LANGUAGE DeriveDataTypeable, ConstraintKinds #-}
import Data.Data (Data)
import Data.Typeable (Typeable)

type Constraints a = (Show a, Eq a, Ord a, Data a, Typeable a)
data A = A deriving (Constraints)

错误:
Illegal deriving item ‘Constraints’

考虑到 http://downloads.haskell.org/~ghc/7.8.3/docs/html/users_guide/deriving.html,这是有道理的

我写 deriving (Show, Eq, Ord, Data, Typeable)对于我的大多数类型。导出标准的“约束别名”可能会很好,即任何类型的 * -> Constraint .当然,假设约束元组中的约束都是正确的,具有空的“最小完整定义”等。

对此有什么建议吗?会有多难?有替代品吗?

最佳答案

对此没有任何建议。这不会太难,但我怀疑它不会有很大的吸引力。您不仅可以使用模板 haskell 生成独立的派生声明,正如评论所建议的那样,如果您真的需要,您可以使用 CPP 宏扩展为您想要的子句。

关于haskell - 具有任意 "Constraint aliases"的派生子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28037837/

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