Global Instance prod_enumerable (LX : enumT X) (LY : enumT Y) : enumT (X * Y).

(* Specifications: *)
Lemma C_longenough n : length (L_T (nat * nat) n) > n.
Definition R_nat_nat n : option (nat * nat) := nthe n (L_T n).
Lemma pairs_retract :  forall p, exists n, R_nat_nat n = Some p.
Lemma enumerable_nat_nat : enumerable__T (nat * nat).
Section enum_enumerable.