It looks like you're new here. If you want to get involved, click one of these buttons!
Products in Hask.
Recall that Haskell has a built-in product (pair) type with constructors written:
data (a,b) = (a,b)
Implement isomorphisms of the following type signatures by drawing diagrams and translating them into code. Explain why the functions you have constructed are isomorphisms.
(a) swap :: (a,b) -> (b,a)
(b) unit :: a -> ((),a)
(c) assoc :: (a,(b,c)) -> ((a,b),c)