let rec print_env ?use_user_def print env = 
  let print_entry acu (name, t) =
    if name.[0] <> '_' then
      acu
      ^ "val " ^ name ^ ": " ^ (print t) ^ "\n"
    else 
      acu
  in
    Printf.printf "%s\n" 
      (List.fold_left print_entry "" (environment_as_list env))