diff --git a/src/socPredef.ml b/src/socPredef.ml
index 3a98d81411c24972551c90e843ffe804c0e1ef37..5c26dd757713d481d0d57a9612fb57b3293ed033 100644
--- a/src/socPredef.ml
+++ b/src/socPredef.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 20/06/2014 (at 08:07) by Erwan Jahier> *)
+(* Time-stamp: <modified the 24/06/2014 (at 17:01) by Erwan Jahier> *)
 
 (** Synchronous Object Code for Predefined operators. *)
 
@@ -34,7 +34,7 @@ let (soc_profile_of_types : Data.t list -> var list * var list) =
 (* For diese and nor *)  
 let (soc_profile_of_types_nary : Data.t list -> var list * var list) = 
   fun vl -> 
-    ["x", Array(Bool,List.length vl)], ["z",Bool]
+    ["i0", Array(Bool,List.length vl)], ["o0",Bool]
         
 
 let step11 = { (* a useful alias again *)
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 92d7744434428600e583c21bacb366925c34130c..ea4ee4386d2c84f3da2d9a8ba8c7d1acd63c1aed 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Tue Jun 24 15:30:13 2014
+Test Run By jahier on Tue Jun 24 17:01:44 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -381,7 +381,7 @@ PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus}
 PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
 PASS: ./lus2lic {-2c should_work/onlyroll2.lus -n onlyroll2}
-FAIL: Check that the generated C code compiles  : gcc onlyroll2_onlyroll2.c onlyroll2_onlyroll2_loop.c 
+PASS: gcc onlyroll2_onlyroll2.c onlyroll2_onlyroll2_loop.c 
 PASS: ./lus2lic {-o /tmp/modes3x2_v2.lic should_work/modes3x2_v2.lus}
 PASS: ./lus2lic {-ec -o /tmp/modes3x2_v2.ec should_work/modes3x2_v2.lus}
 PASS: ./myec2c {-o /tmp/modes3x2_v2.c /tmp/modes3x2_v2.ec}
@@ -462,7 +462,7 @@ PASS: ./lus2lic {-ec -o /tmp/plus.ec should_work/plus.lus}
 PASS: ./myec2c {-o /tmp/plus.c /tmp/plus.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/plus.lus
 PASS: ./lus2lic {-2c should_work/plus.lus -n plus}
-FAIL: Check that the generated C code compiles  : gcc plus_plus.c plus_plus_loop.c 
+PASS: gcc plus_plus.c plus_plus_loop.c 
 PASS: ./lus2lic {-o /tmp/xx.lic should_work/xx.lus}
 PASS: ./lus2lic {-ec -o /tmp/xx.ec should_work/xx.lus}
 PASS: ./myec2c {-o /tmp/xx.c /tmp/xx.ec}
@@ -474,7 +474,7 @@ PASS: ./lus2lic {-ec -o /tmp/call07.ec should_work/call07.lus}
 PASS: ./myec2c {-o /tmp/call07.c /tmp/call07.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call07.lus
 PASS: ./lus2lic {-2c should_work/call07.lus -n call07}
-FAIL: Check that the generated C code compiles  : gcc call07_call07.c call07_call07_loop.c 
+PASS: gcc call07_call07.c call07_call07_loop.c 
 PASS: ./lus2lic {-o /tmp/shift_ludic.lic should_work/shift_ludic.lus}
 PASS: ./lus2lic {-ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus}
 PASS: ./myec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec}
@@ -525,7 +525,7 @@ PASS: ./lus2lic {-ec -o /tmp/test_diese.ec should_work/test_diese.lus}
 PASS: ./myec2c {-o /tmp/test_diese.c /tmp/test_diese.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_diese.lus
 PASS: ./lus2lic {-2c should_work/test_diese.lus -n test_diese}
-FAIL: Check that the generated C code compiles  : gcc test_diese_test_diese.c test_diese_test_diese_loop.c 
+PASS: gcc test_diese_test_diese.c test_diese_test_diese_loop.c 
 PASS: ./lus2lic {-o /tmp/tri.lic should_work/tri.lus}
 PASS: ./lus2lic {-ec -o /tmp/tri.ec should_work/tri.lus}
 PASS: ./myec2c {-o /tmp/tri.c /tmp/tri.ec}
@@ -584,7 +584,7 @@ PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus}
 PASS: ./myec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus
 PASS: ./lus2lic {-2c should_work/onlyroll.lus -n onlyroll}
-FAIL: Check that the generated C code compiles  : gcc onlyroll_onlyroll.c onlyroll_onlyroll_loop.c 
+PASS: gcc onlyroll_onlyroll.c onlyroll_onlyroll_loop.c 
 PASS: ./lus2lic {-o /tmp/produitBool.lic should_work/produitBool.lus}
 PASS: ./lus2lic {-ec -o /tmp/produitBool.ec should_work/produitBool.lus}
 PASS: ./myec2c {-o /tmp/produitBool.c /tmp/produitBool.ec}
@@ -874,7 +874,7 @@ PASS: ./lus2lic {-ec -o /tmp/exclusion.ec should_work/exclusion.lus}
 PASS: ./myec2c {-o /tmp/exclusion.c /tmp/exclusion.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/exclusion.lus
 PASS: ./lus2lic {-2c should_work/exclusion.lus -n exclusion}
-FAIL: Check that the generated C code compiles  : gcc exclusion_exclusion.c exclusion_exclusion_loop.c 
+PASS: gcc exclusion_exclusion.c exclusion_exclusion_loop.c 
 PASS: ./lus2lic {-o /tmp/ply01.lic should_work/ply01.lus}
 PASS: ./lus2lic {-ec -o /tmp/ply01.ec should_work/ply01.lus}
 PASS: ./myec2c {-o /tmp/ply01.c /tmp/ply01.ec}
@@ -1482,9 +1482,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		1286
-# of unexpected failures	126
+# of expected passes		1292
+# of unexpected failures	120
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 134 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 130 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 4e047922dcaaf2796f59fbb605071958ed93fdb5..6879740d65575caa2a8a41db20e481570208f3e8 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 134 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 130 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/todo.org b/todo.org
index cd665d34193434f4ccd6092da186bd717e35c0e8..928e4dddf7b03ba18dee54b8484d821682a57350 100644
--- a/todo.org
+++ b/todo.org
@@ -51,45 +51,41 @@ http://www.di.ens.fr/~pouzet/bib/lctes12.pdf
 ** TODO les programmes qui ne passent pas le test:
 
 
-2. file:test/should_work/mappredef.lus lus2lic -2c should_work/mappredef.lus -n mappredef
-3. file:test/should_work/predefOp.lus lus2lic -2c should_work/predefOp.lus -n predefOp
-4. file:test/should_work/matrice2.lus lus2lic -2c should_work/matrice2.lus -n matrice2
-5. file:test/should_work/ply02.lus lus2lic -2c should_work/ply02.lus -n ply02
-6. file:test/should_work/onlyroll2.lus lus2lic -2c should_work/onlyroll2.lus -n onlyroll2
-7. file:test/should_work/morel3.lus lus2lic -2c should_work/morel3.lus -n morel3
-8. file:test/should_work/ply03.lus lus2lic -2c should_work/ply03.lus -n ply03
-9. file:test/should_work/plus.lus lus2lic -2c should_work/plus.lus -n plus
-10. file:test/should_work/xx.lus lus2lic -2c should_work/xx.lus -n xx
-11. file:test/should_work/call07.lus lus2lic -2c should_work/call07.lus -n call07
-12. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
-13. file:test/should_work/clock.lus lus2lic -2c should_work/clock.lus -n clock
-14. file:test/should_work/morel4.lus lus2lic -2c should_work/morel4.lus -n morel4
-15. file:test/should_work/bad.lus lus2lic -2c should_work/bad.lus -n bad
-16. file:test/should_work/onlyroll.lus lus2lic -2c should_work/onlyroll.lus -n onlyroll
-17. file:test/should_work/mapinf.lus lus2lic -2c should_work/mapinf.lus -n mapinf
-18. file:test/should_work/over2.lus lus2lic -2c should_work/over2.lus -n over2
-19. file:test/should_work/over3.lus lus2lic -2c should_work/over3.lus -n over3
-20. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
-21. file:test/should_work/carV2.lus lus2lic -2c should_work/carV2.lus -n carV2
-22. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
-23. file:test/should_work/CURRENT.lus lus2lic -2c should_work/CURRENT.lus -n CURRENT
-24. file:test/should_work/left.lus lus2lic -2c should_work/left.lus -n left
-25. file:test/should_work/morel.lus lus2lic -2c should_work/morel.lus -n morel
-26. file:test/should_work/matrice.lus lus2lic -2c should_work/matrice.lus -n matrice
-27. file:test/should_work/exclusion.lus lus2lic -2c should_work/exclusion.lus -n exclusion
-28. file:test/should_work/pack1.lus lus2lic -2c should_work/pack1.lus -n pack1
-29. file:test/should_work/bob.lus lus2lic -2c should_work/bob.lus -n bob
-30. file:test/should_work/morel2.lus lus2lic -2c should_work/morel2.lus -n morel2
-31. file:test/should_work/xxx.lus lus2lic -2c should_work/xxx.lus -n xxx
-32. file:test/should_work/filliter.lus lus2lic -2c should_work/filliter.lus -n filliter
-33. file:test/should_work/mapdeRed.lus lus2lic -2c should_work/mapdeRed.lus -n mapdeRed
-34. file:test/should_work/simpleRed.lus lus2lic -2c should_work/simpleRed.lus -n simpleRed
-35. file:test/should_work/ck7.lus lus2lic -2c should_work/ck7.lus -n ck7
-36. file:test/should_work/redoptest.lus lus2lic -2c should_work/redoptest.lus -n redoptest
-37. file:test/should_work/cond01.lus lus2lic -2c should_work/cond01.lus -n cond01
-38. file:test/should_work/overload.lus lus2lic -2c should_work/overload.lus -n overload
-39. file:test/should_work/simple.lus lus2lic -2c should_work/simple.lus -n simple
-40. file:test/should_work/minus.lus lus2lic -2c should_work/minus.lus -n minus
+1. file:test/should_work/mappredef.lus lus2lic -2c should_work/mappredef.lus -n mappredef
+   pb de types polymorphes
+2. file:test/should_work/predefOp.lus lus2lic -2c should_work/predefOp.lus -n predefOp
+3. file:test/should_work/matrice2.lus lus2lic -2c should_work/matrice2.lus -n matrice2
+4. file:test/should_work/ply02.lus lus2lic -2c should_work/ply02.lus -n ply02
+5. file:test/should_work/morel3.lus lus2lic -2c should_work/morel3.lus -n morel3
+6. file:test/should_work/ply03.lus lus2lic -2c should_work/ply03.lus -n ply03
+7. file:test/should_work/xx.lus lus2lic -2c should_work/xx.lus -n xx
+8. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
+9. file:test/should_work/clock.lus lus2lic -2c should_work/clock.lus -n clock
+10. file:test/should_work/morel4.lus lus2lic -2c should_work/morel4.lus -n morel4
+11. file:test/should_work/bad.lus lus2lic -2c should_work/bad.lus -n bad
+12. file:test/should_work/mapinf.lus lus2lic -2c should_work/mapinf.lus -n mapinf
+13. file:test/should_work/over2.lus lus2lic -2c should_work/over2.lus -n over2
+14. file:test/should_work/over3.lus lus2lic -2c should_work/over3.lus -n over3
+15. file:test/should_work/carV2.lus lus2lic -2c should_work/carV2.lus -n carV2
+16. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
+17. file:test/should_work/CURRENT.lus lus2lic -2c should_work/CURRENT.lus -n CURRENT
+18. file:test/should_work/left.lus lus2lic -2c should_work/left.lus -n left
+19. file:test/should_work/morel.lus lus2lic -2c should_work/morel.lus -n morel
+20. file:test/should_work/matrice.lus lus2lic -2c should_work/matrice.lus -n matrice
+21. file:test/should_work/exclusion.lus lus2lic -2c should_work/exclusion.lus -n exclusion
+22. file:test/should_work/pack1.lus lus2lic -2c should_work/pack1.lus -n pack1
+23. file:test/should_work/bob.lus lus2lic -2c should_work/bob.lus -n bob
+24. file:test/should_work/morel2.lus lus2lic -2c should_work/morel2.lus -n morel2
+25. file:test/should_work/xxx.lus lus2lic -2c should_work/xxx.lus -n xxx
+26. file:test/should_work/filliter.lus lus2lic -2c should_work/filliter.lus -n filliter
+27. file:test/should_work/mapdeRed.lus lus2lic -2c should_work/mapdeRed.lus -n mapdeRed
+28. file:test/should_work/simpleRed.lus lus2lic -2c should_work/simpleRed.lus -n simpleRed
+29. file:test/should_work/ck7.lus lus2lic -2c should_work/ck7.lus -n ck7
+30. file:test/should_work/redoptest.lus lus2lic -2c should_work/redoptest.lus -n redoptest
+31. file:test/should_work/cond01.lus lus2lic -2c should_work/cond01.lus -n cond01
+32. file:test/should_work/overload.lus lus2lic -2c should_work/overload.lus -n overload
+33. file:test/should_work/simple.lus lus2lic -2c should_work/simple.lus -n simple
+34. file:test/should_work/minus.lus lus2lic -2c should_work/minus.lus -n minus
 
 
 * Packages, modeles, etc.