let get_var ~create tbl_opt label v get_tau =
  try
    match tbl_opt with None -> raise Not_found
      | Some tbl -> Varinfo.Hashtbl.find tbl v
  with Not_found ->
    if create then
      let here = (label = Clabels.Herein
      let t = get_tau v in
      let fv = fvar_of_cvar v t in
      let fv =
        if here then fv
        else freshen () (*pool m.env*) fv
      in
      let _ = match tbl_opt with
        | None -> if here then () else unsupported "get_var without tbl"
        | Some tbl -> Varinfo.Hashtbl.add tbl v fv
      in fv
     else raise Not_found