diff --git a/src/OCamlMakefile b/src/OCamlMakefile
index 1192f78064cc2c00307baa77f423e1dbc3b164af..a75fcd784b4df6564f67ac670e19c4d51b9157e0 100644
--- a/src/OCamlMakefile
+++ b/src/OCamlMakefile
@@ -28,7 +28,9 @@ endif
 export RESULT
 
 ifndef DOC_FILES
-  DOC_FILES := $(filter %.mli,$(SOURCES))
+  MLY_SOURCES := $(filter %.mly,$(SOURCES))
+  MLL_SOURCES := $(filter %.mll,$(SOURCES))
+  DOC_FILES := $(filter %.mli %.ml,$(SOURCES)) $(MLY_SOURCES:.mly=.ml) $(MLL_SOURCES:.mll=.ml)
 endif
 export DOC_FILES
 
@@ -807,9 +809,15 @@ doc/latex: $(DOC_FILES)
 dot:
 	rm -rf $(RESULT).dot
 	rm -rf $(RESULT)-dot.ps
-	$(OCAMLDOC) -dot -dot-include-all main.ml  $(OCAMLDOCFLAGS) $(DOC_FILES) -o $(RESULT).dot
+	$(OCAMLDOC) -dot -dot-reduce  $(OCAMLDOCFLAGS) $(DOC_FILES) -o $(RESULT).dot
 	dot -Tps $(RESULT).dot > $(RESULT)-dot.ps
 
+dottype:
+	rm -rf $(RESULT).dot
+	rm -rf $(RESULT)-dot.ps
+	$(OCAMLDOC) -dot -dot-reduce -dot-types  $(OCAMLDOCFLAGS) $(DOC_FILES) -o $(RESULT).dot
+	dot -Tps $(RESULT).dot > $(RESULT)-dottype.ps
+
 
 doc/latex/doc.ps: doc/latex
 	cd doc/latex && \
diff --git a/src/compileData.ml b/src/compileData.ml
index 15e957f1d2dcb339482a8bdb3c4171d089b7fdd7..b0da3b224278bd29e530503945de8697b0e9d1dd 100644
--- a/src/compileData.ml
+++ b/src/compileData.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 14/12/2007 (at 15:54) by Erwan Jahier> *)
+(** Time-stamp: <modified the 17/12/2007 (at 16:47) by Erwan Jahier> *)
 
 (** 
 
@@ -12,7 +12,7 @@
 	DESCRIPTION :
 
 	Définition des structures de données utilisée pour la compil,
-	plus des utilitaires pour les mesages d'erreurs, de bug etc.
+	plus des utilitaires pour les messages d'erreurs, de bug etc.
 	N.B. on utilise beaucoup l'adjectif "effectif", qui signifie
 	simplement "correct".
 
@@ -313,6 +313,8 @@ Type : oper_alias
 and oper_alias =
     CheckedOper of oper_eff
   | HalfCheckedNode of node_half_eff
+
+
 (*---------------------------------------------------------------------
 Type chkflaged
 -----------------------------------------------------------------------
@@ -509,7 +511,7 @@ let rec string_of_node_key (nkey: node_key) = (
 )
 
 let string_of_clock (ck : clock_eff) = (
-	match ck with
+  match ck with
       BaseClockEff -> "<base>"
    |  VarClockEff veff -> (Ident.to_string veff.vf_name)
 )
@@ -533,13 +535,13 @@ Message d'erreur (associ
 ----------------------------------------------------------------------*)
 let print_compile_node_error nkey lxm msg = (
    Printf.eprintf "%s\n" (node_error_string nkey);
-	Errors.print_compile_error lxm msg ;
+  Errors.print_compile_error lxm msg ;
    flush stderr
 )
 
 let print_global_node_error nkey msg = (
    Printf.eprintf "%s\n" (node_error_string nkey);
-	Errors.print_global_error msg ;
+  Errors.print_global_error msg ;
    flush stderr
 )
 
diff --git a/src/evalConst.mli b/src/evalConst.mli
index 008b360953f9721139ab00f03d4137657f99077d..258a37017c81bdb754b5bc297d9880efc54feedb 100644
--- a/src/evalConst.mli
+++ b/src/evalConst.mli
@@ -1,6 +1,6 @@
-(** Time-stamp: <modified the 10/12/2007 (at 15:56) by Erwan Jahier> *)
+(** Time-stamp: <modified the 17/12/2007 (at 16:49) by Erwan Jahier> *)
 
-(**
+(*
 
 DESCRIPTION :
 	Evaluation statique des expressions "réputées" constantes
diff --git a/src/ident.mli b/src/ident.mli
index f2864c61ac0dfeb3c6e599c6874a673d552b59f0..50f54f890df3fe08a15c63d9095c14e09d4168d7 100644
--- a/src/ident.mli
+++ b/src/ident.mli
@@ -1,9 +1,9 @@
-(** Time-stamp: <modified the 14/12/2007 (at 16:57) by Erwan Jahier> *)
+(** Time-stamp: <modified the 14/12/2007 (at 18:35) by Erwan Jahier> *)
 
 
 type t 
 
-type pack_name  (* should this one be hidden too? *)
+type pack_name
 
 type long
 
diff --git a/src/lazyCompiler.ml b/src/lazyCompiler.ml
index 6129c1c3519826ad98e3f38f64fff6be6a827f4a..1993010866a1e6a237e9c527a7b5609999c2c873 100644
--- a/src/lazyCompiler.ml
+++ b/src/lazyCompiler.ml
@@ -19,9 +19,9 @@ open CompileData
 
 (* Flag pour les items compilés *)
 type 'a chkflaged =
-   Checking
-|  Checked of 'a
-|  BadChecked
+    Checking
+  | Checked of 'a
+  | BadChecked
 
 (* ERREUR DE RECURSION :
 - l'id sur lequel a été détecté la récursion
@@ -34,11 +34,11 @@ exception BadCheckRef_error
 
 
 let recursion_error (lxm : Lxm.t) (stack : string list) = (
-   let rec string_of_stack = function
+  let rec string_of_stack = function
       [] -> "" 
-   |  s::[] -> s
-   |  s::l  -> s^"\n   > "^(string_of_stack l)
-   in raise ( Compile_error (lxm,
+    |  s::[] -> s
+    |  s::l  -> s^"\n   > "^(string_of_stack l)
+  in raise ( Compile_error (lxm,
       "recursion loop detected:\n   > "^(string_of_stack stack)
    ))
 )
@@ -161,7 +161,7 @@ let rec do_type
 				      ))
 			      )
 			  )  
-		  ) 
+		  )
 		|
 		    None -> (
 		      (* pas de provided, on traite en interne ... *)
diff --git a/src/lazyCompiler.mli b/src/lazyCompiler.mli
index f34754a4b17b2e2a5f62fb4899035af5c3e15f93..d98f3efc8014738b9596a30a596dc44063d8dd69 100644
--- a/src/lazyCompiler.mli
+++ b/src/lazyCompiler.mli
@@ -1,5 +1,6 @@
+(** Time-stamp: <modified the 17/12/2007 (at 16:30) by Erwan Jahier> *)
 
-(* Structure pour gérer la compilation à la demande *)
+(** Compiling items on demand *)
 
 type t
 
diff --git a/src/main.ml b/src/main.ml
index a1f257f24cd7ec552dd31e7fd7989f309eab9759..fa8a9bd95ccfaaaf56a167687ae6a5138c00a466 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,60 +1,41 @@
-(** Time-stamp: <modified the 14/12/2007 (at 16:57) by Erwan Jahier> *)
+(** Time-stamp: <modified the 17/12/2007 (at 17:50) by Erwan Jahier> *)
 
 (**
 
-   compUtils.ml    
-   compUtils.mli
-
+- Lexing and Parsing (produces the parse tree)
+   lexer.mll  
+   parser.mly
+   parserUtils.ml
+   lxm.mli/ml
 
-   expandPack.mli
-   expandPack.ml
+- Data types
+  *** (1) Data types used to represent source expressions (parse tree)
+   syntaxe.ml 
 
-   syntaxe.ml
+  *** (2) Tabulated version of the parse tree 
+   srcTab.mli/ml
+   expandPack.mli/ml 
+   compUtils.ml/mli
+   symbolTab.mli/ml (util module for SrcTab containing Symbol (type/const/oper) tbls)
 
 
-   compile.ml   
-
-- 
+  *** (3) Data types used to represent checked (ie compiled) expressions
    compileData.ml
 
 
+- The compiling (checking) functions (from (2) to (3))
+   compile.ml   
+   lazyCompiler.mli/ml
 
-   lazyCompiler.mli
-   lazyCompiler.ml
-
-- source tables: tabulated version of the parse tree 
-   srcTab.mli
-   srcTab.ml
-   
-- Symbol table
-   symbolTab.mli
-   symbolTab.ml
-
-
-- Lexing and Parsing stuff
-   lexer.mll  
-   parser.mly
-   parserUtils.ml
-
-   lxm.mli
-   lxm.ml
-
-
-- Static evaluation of parameters
-   evalConst.mli
-   evalConst.ml
 
-   evalType.mli      
-   evalType.ml
+- Static evaluation of parameters (used during compilation)
+   evalConst.mli/ml
+   evalType.mli/ml
 
 - Misc modules
    dump.ml
-   
    errors.ml
-
-   verbose.mli
-   verbose.ml
-
+   verbose.mli/ml
    version.ml
 *)
 
diff --git a/src/parser.mly b/src/parser.mly
index 8d98bbe8b30cc42daa36e07a80f52ebea908aafc..e13395fd3b6835a6f43cca52710dc4c0c93d1f0b 100644
--- a/src/parser.mly
+++ b/src/parser.mly
@@ -177,9 +177,9 @@ let treat_external_func
 	( Some((Lxm.id lxm)) , typ )
       ) in
       (* fabrique la liste à plat des inputs *)
-    let flat_ins = ParserUtils.flat_flaged_list inpars make_a_param in
+    let flat_ins = ParserUtils.flat_flagged_list inpars make_a_param in
       (* fabrique la liste à plat des outputs *)
-    let flat_outs = ParserUtils.flat_flaged_list outpars make_a_param in
+    let flat_outs = ParserUtils.flat_flagged_list outpars make_a_param in
       (* fabrique le func_info *)
     let funcstr = Lxm.id funclxm in
     let finfo = {
@@ -217,7 +217,7 @@ let rec clocked_ids_to_var_infos vnat vdefs = (
       }
       lxm
   ) in
-    ParserUtils.flat_twice_flaged_list vdefs makevar
+    ParserUtils.flat_twice_flagged_list vdefs makevar
 )
 
 let treat_node_decl
@@ -250,7 +250,7 @@ let treat_node_decl
 		    Syntaxe.add_info vtable "variable" lxm vinfo ;
 		    (Lxm.id lxm)
 		) (* fin de put_var_in_table *) in
-		let lres = ParserUtils.flat_flaged_list tids put_var_in_table in
+		let lres = ParserUtils.flat_flagged_list tids put_var_in_table in
 		  List.append lres (treat_vars reste nat)
 	      )
 	) (* fin de treat_vars *)
@@ -318,7 +318,7 @@ let rec flat_clocked_ids
 	  [] -> []
 	| ( tids , ck ) :: reste -> (
 	    let make_var_info (lxm: Lxm.t) (ty: type_exp) = (nat (Lxm.id lxm) ty ck) in
-	    let lres = ParserUtils.flat_flaged_list tids make_var_info in
+	    let lres = ParserUtils.flat_flagged_list tids make_var_info in
 	      List.append lres (flat_clocked_ids reste nat)
 	  )
     )
diff --git a/src/parserUtils.ml b/src/parserUtils.ml
index 8b20152389635181bccc8481529a4e17d9e41b7d..4300b62bfe8d3307e1c869adf888b179d09f319a 100644
--- a/src/parserUtils.ml
+++ b/src/parserUtils.ml
@@ -1,11 +1,11 @@
-(** Time-stamp: <modified the 14/12/2007 (at 17:09) by Erwan Jahier> *)
+(** Time-stamp: <modified the 17/12/2007 (at 17:49) by Erwan Jahier> *)
 
 
 (* Une collection de "meta fonctions" pour faciliter la vie *)
 
 
 (*------------------------------------------------------
-flat_flaged_list
+flat_flagged_list
 --------------------------------------------------------
 Entrée :
 --------
@@ -23,7 +23,7 @@ Effets de bords :
 --------------------------------------------------------
 Exemple :
 -----------------
-flat_flaged_list [ ([a1;a2;a3], b1) ; ([a4;a5], b2) ] f
+flat_flagged_list [ ([a1;a2;a3], b1) ; ([a4;a5], b2) ] f
 <=>
 let c1 = (f a1 b1) in
 let c2 = (f a2 b1) in
@@ -32,7 +32,7 @@ let c4 = (f a4 b2) in
 let c5 = (f a5 b2) in
 [ c1; c2; c3; c4; c5 ]
 ------------------------------------------------------*)
-let flat_flaged_list 
+let flat_flagged_list 
     (inlist:   ('a list * 'b) list)
     (makeitem: 'a -> 'b -> 'c) 
     = (
@@ -47,7 +47,7 @@ let flat_flaged_list
     )
 
 let _ = assert (
-  (flat_flaged_list 
+  (flat_flagged_list 
      [ (["a1";"a2";"a3"], "b1") ; (["a4";"a5"], "b2") ] 
      (fun a b -> a ^ "-" ^ b))
   = 
@@ -55,7 +55,7 @@ let _ = assert (
   )
 
 (*------------------------------------------------------
-flat_twiced_flaged_list
+flat_twiced_flagged_list
 --------------------------------------------------------
 même principe mais avec deux niveaux de flags :
 
@@ -68,9 +68,9 @@ let toto =
 ( [ ([10], "f") ]   , "Z")
 ]
 
-  let l = flat_twice_flaged_list toto mk
+  let l = flat_twice_flagged_list toto mk
   ------------------------------------------------------*)
-let flat_twice_flaged_list 
+let flat_twice_flagged_list 
     (inlist:   (('a list * 'b) list * 'c) list )
     (makeitem: 'a -> 'b -> 'c -> 'd ) 
     = (
diff --git a/src/srcTab.mli b/src/srcTab.mli
index a29142dfe40c446229e3496509a511ccb1ceca7e..1e6ff4d7d0bff7af9b3e84638b589762426ccf69 100644
--- a/src/srcTab.mli
+++ b/src/srcTab.mli
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 14/12/2007 (at 16:53) by Erwan Jahier> *)
+(** Time-stamp: <modified the 17/12/2007 (at 16:43) by Erwan Jahier> *)
 
 (** source info tables: tabulated version of the parse tree 
 
@@ -16,8 +16,6 @@ type t
 val create : Syntaxe.pack_or_model list -> t
 
 
-
-
 (* accès aux infos *)
 val pack_body_env : t -> Ident.pack_name -> SymbolTab.t
 val pack_prov_env : t -> Ident.pack_name -> SymbolTab.t option
diff --git a/src/syntaxe.ml b/src/syntaxe.ml
index e387b9fa8c7c77e52912b58cd08d5e81f83a93f8..0c17067b7a2c82ba7d413010fda6cff7f102b440 100644
--- a/src/syntaxe.ml
+++ b/src/syntaxe.ml
@@ -1,7 +1,7 @@
-(** Time-stamp: <modified the 14/12/2007 (at 17:04) by Erwan Jahier> *)
+(** Time-stamp: <modified the 17/12/2007 (at 16:26) by Erwan Jahier> *)
 
 
-(** Syntaxe abstraite des programmes Lustre *)
+(** Abstract syntax of source programs *)
 
 open Printf
 open Lxm  (* pour la remontée au source *)
diff --git a/src/version.ml b/src/version.ml
index 831f19d6972a1a627ade9a896a092449e9601019..f8ad66718ba713db9950673070d1529fdd91c9f1 100644
--- a/src/version.ml
+++ b/src/version.ml
@@ -1,6 +1,6 @@
 (* Automatically generated from src/Makefile *) 
 let tool = "lus2lic"
 let branch = "u0"
-let commit = "6"
-let sha_1 = "7fefadf7d6a015efc455da87cef1ddeeeae06dd6"
+let commit = "7"
+let sha_1 = "52e81e78957364bfca6e9acce2884dce7345f3fc"
 let str = (branch ^ "." ^ commit)