{-# LANGUAGE TypeOperators #-} module HaskellWorks.Data.Product where infixr :*: data (:*:) a b = (:*:) a b deriving ((a :*: b) -> (a :*: b) -> Bool 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 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)