anchor.diff:                      let head, universes = aux head in
                       let universes = List.map (fun u -> (resugar_universe u t.pos, A.UnivApp)) universes in
                       let args = List.map (fun (t, _) -> (resugar_term t, A.Nothing)) args in
  -                    mk (A.Construct(head, args@universes))
  +                    if (U.is_tuple_data_lid' head) then
  +                      // ToDocument doesn't expect uvar that is added by the 
  +                      // typechecker in tuple constructor
  +                      // TODO: where should be store the universe information?
  +                      mk (A.Construct(head, args))
  +                    else
  +                      mk (A.Construct(head, args@universes))
                   | Tm_meta(_, m) ->
                     // the Tm_app for Data_app could be wrapped inside Tm_meta(_, Meta_monadic) after TypeChecker
                     // applies monadic_application
  
positive.code: 
      | Tm_app(e, args) ->
        (* Op("=!=", args) is desugared into Op("~", Op("==") and not resugared back as "=!=" *)
        let resugar_as_app e args = 
          let args = args |> List.map (fun (e, qual) ->
                resugar_term e) in
  
negative.code:               end
            | Sequence ->
                let term = resugar_term e in
                let rec resugar_seq t = match t.tm with  
                  | A.Let(_, [p, t1], t2) ->
                     mk (A.Seq(t1, t2))
                  | A.Ascribed(t1, t2, t3) -> 
                     (* this case happens when the let is wrapped in Meta_Monadic which is resugared to Ascribe*)
                     mk (A.Ascribed(resugar_seq t1, t2, t3))
                  | _ ->
                     (* this case happens in typechecker.normalize when Tm_let is_pure_effect, then 
                        only the body of Tm_let is used. *)
                     (* TODO: How should it be resugared *)
                     t
                in
                resugar_seq term
            | Primop (* doesn't seem to be generated by desugar *)
            | Masked_effect (* doesn't seem to be generated by desugar *)
            | Meta_smt_pat -> (* nothing special, just resugar the term *)
  