let mk_def xl t defs = 
  let f = "_let_"^(string_of_int (snd !defs) ) in 
  defs := 
    ({name = f ; param = xl; body = t}::(fst !defs)), 
  1+(snd !defs);f