Data.Functor.Product
data Product f g a