anchor.diff:      bind (if d = TopDown
             then f env ({ t with n = tn })
             else ret t) (fun t ->
  -    let tn = match tn with
  +    let tn = match (SS.compress t).n with
                | Tm_app (hd, args) ->
                     let ff = tac_fold_env d f env in
                     bind (ff hd) (fun hd ->
  
positive.code:                                     (U.mk_eq2 (TcTerm.universe_of env typ) typ t ut) opts) (fun _ ->
            focus (
                  bind tau (fun _ ->
                  log ps (fun () ->
                  // Try to get rid of all the unification lambdas
                  let ut = N.reduce_uvar_solutions env ut in
                  BU.print2 "Pointwise_rec: succeeded rewriting\n\t%s to\n\t%s\n" (Print.term_to_string t)
                                                                                  (Print.term_to_string ut));
                  
  
                  ret ut))
            )) 
         in
         bind (trytac rewrite_eq) (fun x -> 
         match x with
         | None -> ret t
         | Some x -> ret x)
         
  
  let pointwise (d : direction) (tau:tac<unit>) : tac<unit> =
      bind get (fun ps ->
  
negative.code: let fail1 msg x     = fail (BU.format1 msg x)
  let fail2 msg x y   = fail (BU.format2 msg x y)
  let fail3 msg x y z = fail (BU.format3 msg x y z)
  
  let trytac (t : tac<'a>) : tac<option<'a>> =
      mk_tac (fun ps ->
  