definition ttest11 ≝ λf:ttest11_aux True. f I.
-(*BUG here: requires F_omega eat_args*)
definition ttest12 ≝ λf:True → Nat. f I.
(*GENERAL BUG: name clashes when binders shadow each other in CIC*)
+
+(*BUG: mutual type definitions not handled correctly: the ref is computed in a
+ wrong way *)
+
+(*BUG: multiple let-reced things are given the same (wrong) name*)
+
+(*BUG: for OCaml: cofixpoint not distinguished from fixpoints*)
+
+let rec rtest1 (n:nat) : nat ≝
+ match n with
+ [ O ⇒ O
+ | S m ⇒ rtest1 m ].
+
+let rec f (n:nat) : nat ≝
+ match n with
+ [ O ⇒ O
+ | S m ⇒ g m ]
+and g (n:nat) : nat ≝
+ match n with
+ [ O ⇒ O
+ | S m ⇒ f m ].
+
+(*BUG: pattern matching patterns when arguments have been deleted from
+ the constructor are wrong *)
+
+(*BUG: constructor names in pattern should be capitalised correctly;
+ name clashes must be avoided*)
+
+coinductive stream: Type[0] ≝ scons : nat → stream → stream.
+
+let corec div (n:nat) : stream ≝ scons n (div (S n)).
+
+definition rtest2 : nat → stream → nat ≝
+ λm,s. match s with [ scons n l ⇒ m + n ].
+
+(*
+let rec mkterm (n:nat) : nat ≝
+ match n with
+ [ O ⇒ O
+ | S m ⇒ mkterm m ]
+and mktyp (n:nat) : Type[0] ≝
+ match n with
+ [ O ⇒ nat
+ | S m ⇒ mktyp m ].*)