let result env =
    let t = match env.ret_type with Some t -> t
      | None ->
          let t = Kernel_function.get_return_type env.kf in
            env.ret_type <- Some t ; t
    in
    let x = match env.result with Some x -> x
      | None ->
          let x = D.fresh "result" (Mdata.Vacsl (Ctype t)) in
            env.result <- Some x ; x
    in (x, t)