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:       in
        let elim_action a =
          let action_typ_templ =
              let body = S.mk (Tm_ascribed(a.action_defn, (Inl a.action_typ, None), None)) a.action_defn.pos in
              match a.action_params with
              | [] -> body
              | _ -> S.mk (Tm_abs(a.action_params, body, None)) a.action_defn.pos in
          let destruct_action_body body =
              match (SS.compress body).n with
              | Tm_ascribed(defn, (Inl typ, None), None) -> defn, typ
              | _ -> failwith "Impossible"
          in
          let destruct_action_typ_templ t =
  
negative.code:     let asc = close_ascription cfg env asc in
      Some (List.hd bs, asc)
  
  and close_ascription cfg env (annot, tacopt, use_eq) =
    let annot =
      match annot with
      | Inl t -> Inl (non_tail_inline_closure_env cfg env t)
      | Inr c -> Inr (close_comp cfg env c) in
    let tacopt = BU.map_opt tacopt (non_tail_inline_closure_env cfg env) in
    annot, tacopt, use_eq
  
  and close_imp cfg env imp =
      match imp with
  