Hello, the small ocaml program attached gives no errors at compilation ocamlc -c tuvuw_from_data_error.ml and this syntax error at execution: ocaml < tuvuw_from_data_error.ml Objective Caml version 3.09.2 # * * val s_d1 : string = "1" # val s_d2 : string = "2" # val s_d3 : string = "3" # val s_d4 : string = "4" # val s_d5 : string = "5" # val d1 : int = 1 # val d2 : int = 2 # val d3 : int = 3 # val d4 : int = 4 # val d5 : int = 5 print_string (" w d5 = ") ;t = print_int (w_from_data ( d5 ) ) ;> print_newline () ;t -> int = val t : int * int -> int = print_string (" v d3 d4 d5 = ") ;ta : int -> int = print_int (v_from_data ( d3, d4, d5 ) ) ;= print_newline () ;_data : int * int * int -> int = val t_from_data : int * int * int * int * int -> int = print_string (" u d1 d2 = ") ; for data : d1 = 1 d2 = 2 d3 = 3 d4 = 4 d5 = 5 print_int (u_from_data ( d1, d2 ) ) ; print_newline () ;3 d4 d5 = 22 unit = () # Syntax error # By the way, why is the output mixed up ? Thanks François Colonna