anchor.diff:  
         | Tm_ascribed(t1, asc, _) ->
           maybe_weakly_reduced t1
  -        || (match fst asc with
  +        || (let asc_tc, asc_tac, _ = asc in
  +           (match asc_tc with
               | Inl t2 -> maybe_weakly_reduced t2
               | Inr c2 -> aux_comp c2)
  -        || (match snd asc with
  -           | None -> false
  -           | Some tac -> maybe_weakly_reduced tac)
  +           ||
  +           (match asc_tac with
  +            | None -> false
  +            | Some tac -> maybe_weakly_reduced tac))
   
         | Tm_meta(t, m) ->
           maybe_weakly_reduced t
  
positive.code:                 log cfg  (fun () -> BU.print_string "+++ Keeping ascription \n");
                  let t1 = norm cfg env [] t1 in
                  log cfg  (fun () -> BU.print_string "+++ Normalizing ascription \n");
                  let asc = norm_ascription cfg env (tc, tacopt) in
                  match stack with
                  | Cfg (cfg', dbg) :: stack ->
                    maybe_debug cfg t1 dbg;
  
negative.code:                  let t = arrow (norm_binders cfg env bs) c in
                   rebuild cfg env stack t
  
            | Tm_ascribed(t1, _, l) when cfg.steps.unascribe ->
              norm cfg env stack t1
  
            | Tm_ascribed(t1, asc, l) ->
              begin match stack with
                | Match _ :: _
                | Arg _ :: _
  