anchor.diff:              mk_lb (lbname, tun, body) in
           let lbs = List.map2 (desugar_one_def (if is_rec then env' else env)) fnames funs in
           let body = desugar_term env' body in
  -        mk <| (Tm_let((is_rec, lbs), Subst.close rec_bindings body)) in
  +        mk <| (Tm_let((is_rec, lbs), Subst.close rec_bindings body)) 
  +      in
         //end ds_let_rec_or_app
   
         let ds_non_rec pat t1 t2 =
  
positive.code:       end
  
      | Abs(binders, body) ->
        let _, ftv = List.fold_left (fun (env, ftvs) pat ->
          match pat.pat with
            | PatAscribed(_, t) -> env, free_type_vars env t@ftvs
  
negative.code:                                   then (Inr (qualify env id), [], None), def
                                    else (Inl id, [], None), def
                                  | _ -> raise (Error("Unexpected let binding", p.prange))
                        end) 
          in
  
          //Generate fresh names and populate an env' with recursive bindings
          //below, we use env' instead of env, only if is_rec
          let env', fnames, rec_bindings =
            List.fold_left (fun (env, fnames, rec_bindings) ((f, _, _), _) ->
              let env, lbname, rec_bindings = match f with
  