【发布时间】:2020-04-06 17:46:14
【问题描述】:
假设我们有以下类型定义:
data P = PA | PB
(不管PA还是PB的结构)
然后,我们可以像这样定义一些其他的记录类型(案例1):
data C1 = C1 { field :: P } -- this is fine
但有时您需要定义更受约束的字段类型(案例 2):
data C2 = C2 { field :: PA } -- won't compile because PA is a data constructor
在 Haskell 中解决此类案例最自然、最惯用的方法是什么? 我试图避免过于复杂或样板的解决方案。
【问题讨论】:
标签: haskell