diff --git a/generator/Makefile b/generator/Makefile
index 454c45a430924ffbccf9d48faa15af2992a78e39..0dc8c278d60d7ce39c9b96060f6caabaa755d18d 100644
--- a/generator/Makefile
+++ b/generator/Makefile
@@ -33,7 +33,7 @@ stdlib:
 
 %.inferred.mli:
 	$(OCAMLBUILD) $@
-	cp _build/%@ .
+	cp _build/$@ .
 
 tests: main.byte stdlib
 	#TODO: Remove the first line
diff --git a/generator/js_of_ast.ml b/generator/js_of_ast.ml
index 96b44d26b4a19469f6cc637617c6a8d01d0b8f3e..b4220289e03078dfa4240b88b91c95e1102f6d1a 100755
--- a/generator/js_of_ast.ml
+++ b/generator/js_of_ast.ml
@@ -327,20 +327,17 @@ and js_of_structure_item ?(mod_gen=[]) old_env s =
   | Tstr_eval (e, _)     -> Printf.sprintf "%s" @@ js_of_expression ~mod_gen new_env e
   | Tstr_value (_, vb_l) -> String.concat "@,@," @@ List.map (fun vb -> show_value_binding ~mod_gen vb) @@ vb_l
   | Tstr_type tl ->
-   let explore_type = function
-      | [] -> ()
-      | x :: xs ->
-        (match x.typ_kind with
+   let create_type x =
+      (match x.typ_kind with
         | Ttype_variant cdl ->
           let cl = List.map (fun cstr -> extract_cstr_attrs cstr) cdl in
           List.iter (fun (name, cstrs_name) -> add_type mod_gen name cstrs_name) cl;
-          () (*print_type_tbl ()*)
+          (* print_type_tbl () *)
         | Ttype_record ldl ->
           (* Beware silent shadowing for record labels *)
           List.iter (fun lbl -> Hashtbl.replace record_tbl (Ident.name lbl.ld_id) (Ident.name x.typ_id)) ldl
-        | _ -> unsupported "open types, record and abstract type"
-        )
-   in explore_type tl; ""
+        | _ -> unsupported "open types, record and abstract type")
+   in List.iter create_type tl; ""
   | Tstr_open       od -> 
     let name = (fun od -> if od.open_override = Fresh then js_of_longident od.open_txt else "") od in
     if name <> "" then
diff --git a/generator/tests/calc.ml b/generator/tests/calc.ml
index a1d45b2bd4f1da316bc599e0e45087062a1ad0b7..6fb690ba35aa9596d93cd44ebdd2b69e3f6d41df 100644
--- a/generator/tests/calc.ml
+++ b/generator/tests/calc.ml
@@ -8,7 +8,7 @@ type expr =
   | Div [@f left, right] of expr * expr
   | Pop [@f stack] of sexpr
 and sexpr =
-  | Emp
+  | Emp [@f]
   | Push [@f value, stack] of expr * sexpr
 
 let rec eval_ expr = match expr with
diff --git a/generator/tests/types.ml b/generator/tests/types.ml
new file mode 100644
index 0000000000000000000000000000000000000000..756b5881a97a2c254647838fb3391c8f946f2ec9
--- /dev/null
+++ b/generator/tests/types.ml
@@ -0,0 +1,7 @@
+open Calc
+
+type exprone =
+	| Alpha [@f]
+	| Gamma [@f]
+and exprtwo =
+	| Beta [@f]
\ No newline at end of file