Computing with binary cartesian product types