\import Data.Or

\class HasProduct (E : \hType)
  | Product \alias \infixl 7  : E -> E -> E

\instance TypeHasProduct : HasProduct \Type
  | Product A B => \Sigma A B

\class HasCoproduct (E : \hType)
  | Coproduct \alias \infixl 6 ⨿ : E -> E -> E

\instance TypeHasCoproduct : HasCoproduct \Type
  | Coproduct => Or