{-# LANGUAGE TypeOperators #-} module HaskellWorks.Data.Product where infixr :*: data (:*:) a b = (:*:) a b deriving ((a :*: b) -> (a :*: b) -> Bool ((a :*: b) -> (a :*: b) -> Bool) -> ((a :*: b) -> (a :*: b) -> Bool) -> Eq (a :*: b) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a forall a b. (Eq a, Eq b) => (a :*: b) -> (a :*: b) -> Bool /= :: (a :*: b) -> (a :*: b) -> Bool $c/= :: forall a b. (Eq a, Eq b) => (a :*: b) -> (a :*: b) -> Bool == :: (a :*: b) -> (a :*: b) -> Bool $c== :: forall a b. (Eq a, Eq b) => (a :*: b) -> (a :*: b) -> Bool Eq, Int -> (a :*: b) -> ShowS [a :*: b] -> ShowS (a :*: b) -> String (Int -> (a :*: b) -> ShowS) -> ((a :*: b) -> String) -> ([a :*: b] -> ShowS) -> Show (a :*: b) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall a b. (Show a, Show b) => Int -> (a :*: b) -> ShowS forall a b. (Show a, Show b) => [a :*: b] -> ShowS forall a b. (Show a, Show b) => (a :*: b) -> String showList :: [a :*: b] -> ShowS $cshowList :: forall a b. (Show a, Show b) => [a :*: b] -> ShowS show :: (a :*: b) -> String $cshow :: forall a b. (Show a, Show b) => (a :*: b) -> String showsPrec :: Int -> (a :*: b) -> ShowS $cshowsPrec :: forall a b. (Show a, Show b) => Int -> (a :*: b) -> ShowS Show)