let result env =
    match env.result, env.return with
      | Some x, Some t  -> x, t
      | Some _,  _ -> Wp_parameters.fatal "Result type undefined"
      | None ,_ ->
          match env.return with
            | Some typ ->
                let x = D.fresh "result" (Mdata.Vacsl (Ctype typ)) in
                env.result <- Some x ; (x, typ)
            | None ->
                Wp_parameters.fatal "Result type undefined"