{-# LANGUAGE TypeOperators #-} {-# LANGUAGE DataKinds #-} module Test.MockCat.Cons ((:>)(..)) where data a :> b = a :> b instance (Show a, Show b) => Show (a :> b) where show :: (a :> b) -> String show (a a :> b b) = a -> String forall a. Show a => a -> String show a a String -> ShowS forall a. Semigroup a => a -> a -> a <> String "," String -> ShowS forall a. Semigroup a => a -> a -> a <> b -> String forall a. Show a => a -> String show b b instance (Eq a, Eq b) => Eq (a :> b) where (a a :> b b) == :: (a :> b) -> (a :> b) -> Bool == (a a2 :> b b2) = (a a a -> a -> Bool forall a. Eq a => a -> a -> Bool == a a2) Bool -> Bool -> Bool && (b b b -> b -> Bool forall a. Eq a => a -> a -> Bool == b b2) infixr 8 :>