Pointed Product

This is the Can a b type in Haskell.