Here we define the (×), (+) and (→) types.
We have to define two functions one function left to right and vice-versa. For each transformation, if I transform and then transform the transformation back into the type I started with, I need to get to the same inhabitant. I can only define your types:
f: ((α + β) → γ) → ((α → γ) × (β → γ))
g: ((α → γ) × (β → γ)) → ((α + β) → γ)
