WIHPB3GXBYKWLOVPHSLFXHBCX53ZXAQ6LRJMYUQYDE4BRYV6YSMQC
{ name :: !CardName -- ^ Name of the card
, quantity :: !(Refined Positive Natural) -- ^ Number of cards in a deck
, category :: !Category -- ^ Main category of the card in a deck
{ name :: !CardName
-- ^ Name of the card
, quantity :: !(Refined Positive Natural)
-- ^ Number of cards in a deck
, category :: !Category
-- ^ Main category of the card in a deck
in case (partialEqCard quantity x y, partialEqCard category x y) of
(True, True) -> go acc xs ys
(False, False) -> go (chQ : chC : acc) xs ys
(False, _) -> go (chQ : acc) xs ys
(_, False) -> go (chC : acc) xs ys
in case (partialEqCard quantity x y, partialEqCard category x y) of
(True, True) -> go acc xs ys
(False, False) -> go (chQ : chC : acc) xs ys
(False, _) -> go (chQ : acc) xs ys
(_, False) -> go (chC : acc) xs ys