anchor.diff:        in
         let t =
             mk (Tm_match(t,
  -                       BU.map_opt asc_opt (close_ascription cfg env),
  +                       close_match_returns cfg env asc_opt,
                          branches |> List.map (close_one_branch env),
                          lopt)) t.pos
         in
  
positive.code:             then closure_as_term cfg_exclude_zeta env t
              else norm cfg_exclude_zeta env [] t
            in
            let norm_ascription (tc, tacopt) =
              let tc = match tc with
                       | Inl t -> Inl (norm cfg env [] t)
                       | Inr c -> Inr (norm_comp cfg env c) in
              let tacopt = BU.map_opt tacopt (norm cfg env []) in
              tc, tacopt in
            let rec norm_pat env p = match p.v with
              | Pat_constant _ -> p, env
              | Pat_cons(fv, pats) ->
  
negative.code:                           scrutinee //scrutinee was only reduced to wnf; reduce it fully
                  else scrutinee
                in
                let asc_opt = norm_match_returns cfg env asc_opt in
                let branches = norm_branches() in
                rebuild cfg env stack (mk (Tm_match(scrutinee, asc_opt, branches, lopt)) r)
            in
  