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:         if cfg.steps.iota
          then matches scrutinee branches
          else norm_and_rebuild_match ()
  
  and norm_residual_comp cfg env (rc:residual_comp) : residual_comp =
    {rc with residual_typ = BU.map_option (closure_as_term cfg env) rc.residual_typ}
  
negative.code: 
      | _ -> failwith "Impossible: unexpected stack element"
  
  
  and close_match_returns cfg env ret_opt =
    match ret_opt with
    | None -> None
    | Some (b, asc) ->
      let bs, env = close_binders cfg env [b] in
      let asc = close_ascription cfg env asc in
      Some (List.hd bs, asc)
  
  and close_ascription cfg env (annot, tacopt) =
    let annot =
  