有没有办法在 Haskell 中模仿 TypeScript 的可区分类型联合?我想做以下事情:
data A = B | C | D
data W = X | Y | Z
data FinalType = A | W
Run Code Online (Sandbox Code Playgroud)
我知道最后一个定义将创建两个值构造函数A和Wfor FinalType. 我现在可以通过FinalType以下方式正确制作:
data FinalType = B | C | D | X | Y | Z
Run Code Online (Sandbox Code Playgroud)
但这不是很整洁,并且在添加了大量值构造函数后变得很烦人。有没有办法在 Haskell 中缓解这种情况?