anchor.diff:  *)
   let intro () : tac<binder> = wrap_err "intro" <|
       bind (cur_goal ()) (fun goal ->
  -    match U.arrow_one (bnorm (goal_env goal) (goal_type goal)) with
  +    match U.arrow_one (whnf (goal_env goal) (goal_type goal)) with
       | Some (b, c) ->
           if not (U.is_total_comp c)
           then fail "Codomain is effectful"
  
positive.code:     log ps (fun () ->
          BU.print1 "Pointwise seems to have succeded with %s\n" (Print.term_to_string gt'));
      bind (push_goals gs) (fun _ ->
      add_goals [goal_with_type g gt' |> bnorm_goal]))))
  
  let _trefl (l : term) (r : term) : tac<unit> =
     bind (cur_goal ()) (fun g ->
  
negative.code:     log ps (fun () ->
          BU.print1 "Topdown_rewrite seems to have succeded with %s\n" (Print.term_to_string gt'));
      bind (push_goals gs) (fun _ ->
      add_goals [goal_with_type g gt']))))
  
  
  let t_pointwise (d : direction) (tau:tac<unit>) : tac<unit> = wrap_err "t_pointwise" <|
  