如何在Haskell中融合相同类型的两个枚举?

如何在Haskell中融合相同类型的两个枚举?,haskell,enums,haskell-platform,Haskell,Enums,Haskell Platform,我对Haskell还是很陌生,我很好奇如何将两个手牌合并在一起,这样第一只手牌就放在第二只手牌的上面。我希望它是一个中缀操作符,即(Hand) (您需要在其中一个非空手牌上进行模式匹配,以便访问其中的牌 (<+) :: Hand -> Hand -> Hand Empty <+ h = h h <+ Empty = h (Add c rest1) <+ h = Add c (rest1 <+ h) 然后 (手->手 (手h1)你试过什么?你在哪里卡住了

我对Haskell还是很陌生,我很好奇如何将两个
手牌
合并在一起,这样第一只手牌就放在第二只手牌的上面。我希望它是一个中缀操作符,即(Hand)
(您需要在其中一个非空手牌上进行模式匹配,以便访问其中的牌

(<+) :: Hand -> Hand -> Hand
Empty <+ h = h
h <+ Empty = h
(Add c rest1) <+ h = Add c (rest1 <+ h)
然后

(手->手

(手h1)你试过什么?你在哪里卡住了?可能是@JosephSible的重复对不起,这实际上是我之前问的一个问题,类似,但不一样。@MichaelLitchardupdated@JosephSible我可以保证这就是亚历克斯想问的问题,因为是我让他提出新问题的。
(<+) :: Hand -> Hand -> Hand
Empty <+ h = h
h <+ Empty = h
(Add c rest1) <+ h = Add c (rest1 <+ h)
newtype Hand = Hand [Card]
(<+) :: Hand -> Hand -> Hand
(Hand h1) <+ (Hand h2) = Hand (h1 ++ h2)