diff --git a/ALIRE b/ALIRE
index 488da445f8d9b78ab8923b70f00de8afeae45967..2aa897203a18ca9152ec7790563cc1bf9e6e6a1c 100644
--- a/ALIRE
+++ b/ALIRE
@@ -20,3 +20,24 @@ En cours :
     dump du LicPrg : elle n'est plus faite au fur et à mesure
     dans LasyCompiler
 
+
+ETAT COURANT
+
+19/07
+
+- completement séparé la compil de l'affichage, du coup
+  on a débranché l'ancien source_to_source
+
+- l'ajout d'alias sur type array est fait par une passe source 2 source :
+  ca fait un exemple de traitement s2s simple,
+  c'est plus propre qu'avant ou c'etait fait par effet de bord
+  a l'affichage
+--> consequence co-latterale : les clashs sur nom de type introduit
+    sont gérés de manière plus "smart"
+
+==> reste a faire :
+   refaire les traitements source_to_source !!
+   
+    
+  
+
diff --git a/map.lus b/map.lus
index faa3c841b5beed0057762ca475fe8c34be56abf7..c98198d9e1557e265eeb21fe9112f10fb768a791 100644
--- a/map.lus
+++ b/map.lus
@@ -1,13 +1,18 @@
 
---node titi = map<<+,4>>;
+node myplus<<type t>>(x, y : t) returns (o : t);
+let
+   o = x + y;
+tel
+
+node titi<<type t>> = map<<myplus<<t>>,4>>;
 
 node toto(x,y: int^4) returns (o: int^4);
 let
 	(* o = map<<+, 4>>(x,y); *)
-	o = titi(x,y);
+	o = titi<<int>>(x,y);
 tel
 
 node tutu(x,y: real^4) returns (o: real^4);
 let
-	o = titi(x,y);
+	o = titi<<real>>(x,y);
 tel
diff --git a/map2.lus b/map2.lus
new file mode 100644
index 0000000000000000000000000000000000000000..ee1ea4a455ff6c0973d9f5c65673c9628c52d5c6
--- /dev/null
+++ b/map2.lus
@@ -0,0 +1,13 @@
+
+node titi = map<<+,4>>;
+
+node toto(x,y: int^4) returns (o: int^4);
+let
+	(* o = map<<+, 4>>(x,y); *)
+	o = titi(x,y);
+tel
+
+node tutu(x,y: real^4) returns (o: real^4);
+let
+	o = titi(x,y);
+tel
diff --git a/src/eff.ml b/src/eff.ml
index 8a514ca045ef559c2e0e6b461081c9d748839170..c6632c7baae87bb8c1adba9465b4f2e082361f0a 100644
--- a/src/eff.ml
+++ b/src/eff.ml
@@ -467,13 +467,15 @@ let (var_are_compatible : var_info -> var_info -> bool) =
       (clock_are_equals (snd v1.var_clock_eff) (snd v2.var_clock_eff))
   
 let ident_of_type = function
-  | Bool_type_eff -> Ident.long_of_string "bool"
-  | Int_type_eff -> Ident.long_of_string "int"
-  | Real_type_eff -> Ident.long_of_string "real"
+  | Bool_type_eff -> Ident.out_of_pack "bool"
+  | Int_type_eff -> Ident.out_of_pack "int"
+  | Real_type_eff -> Ident.out_of_pack "real"
   | External_type_eff id
   | Abstract_type_eff (id, _)
   | Enum_type_eff     (id, _)
   | Struct_type_eff   (id, _) -> id
+  | Any -> Ident.out_of_pack "any"
+  | Overload -> Ident.out_of_pack "anynum"
   | _ -> assert false
 
 
diff --git a/src/ident.ml b/src/ident.ml
index 38f54c5e3e7021ce57c66a27c6ca44debcf0eee1..6e21cd4727c7b6555590710a4fa18d45ee423085 100644
--- a/src/ident.ml
+++ b/src/ident.ml
@@ -67,9 +67,14 @@ let (pack_name_to_string : pack_name -> string) =
 
 
 let (string_of_long : long -> string) =
-  fun (pn, id) -> 
-    if !Global.ec then pn ^"__"^ id else
-    if !Global.lv4  then pn ^"__"^ id else pn ^"::"^ id
+   fun (pn, id) -> 
+   let sep =
+      if !Global.ec || !Global.lv4 then "__" else "::"
+   in
+   match pn with
+   | "" -> id
+   | _ -> Printf.sprintf "%s%s%s" pn sep id
+
 let (string_of_long2 : long -> string) =
   fun (pn, id) -> 
     pn ^"::"^ id
@@ -115,6 +120,8 @@ let idref_of_string s = (
     | _ -> raise (Failure ("idref_of_string: \""^s^"\" not a proper ident")) 
 )
 
+let out_of_pack s = ("", s)
+
 let (long_of_string : string -> long) =
   fun s -> 
     match (Str.split (Str.regexp "::") s) with
diff --git a/src/ident.mli b/src/ident.mli
index 5bf0b34c6514538ea94b691013b5776704dde752..4916fa279fc7df9c09e122d199d05ff87a98e34b 100644
--- a/src/ident.mli
+++ b/src/ident.mli
@@ -22,6 +22,9 @@ val long_of_string : string -> long
 
 val make_long : pack_name -> t -> long
 
+(* lift simple string to long WITH EMPTY PACK *)
+val out_of_pack : string -> long
+
 val set_dft_pack_name : pack_name -> unit
 
 (* TODO: a renommer et a abstraire  ??  
diff --git a/src/lazyCompiler.ml b/src/lazyCompiler.ml
index 1dc699d7329e781658c81596371c4514c401a3da..6d25ccba13e7eefe5b1a74bcee975ceabcd6e4c3 100644
--- a/src/lazyCompiler.ml
+++ b/src/lazyCompiler.ml
@@ -1142,6 +1142,8 @@ and (make_alias_node :  node_exp -> node_key -> local_env -> id_solver ->
     in
       alias_node
 
+(*
+OBSOLETE
 and gen_code (provide_flag:bool) (current_env:Eff.node_env) (nexp: Eff.node_exp) : unit =
 
       let nk = nexp.node_key_eff in
@@ -1195,6 +1197,7 @@ and gen_code (provide_flag:bool) (current_env:Eff.node_env) (nexp: Eff.node_exp)
                 (* output_string !Global.oc str *)
                ()
           )
+*)
 
 (** builds a [node_key] and calls [node_check] *)
 and (solve_node_idref : t -> SymbolTab.t -> bool -> Ident.pack_name -> Ident.idref ->