anchor.diff:  
   let find_let (lbs : list<letbinding>) (fvar : fv) =
     BU.find_map lbs (fun lb -> match lb.lbname with
  -                   | BU.Inl _ -> failwith "impossible"
  +                   | BU.Inl _ -> failwith "find_let : impossible"
                      | BU.Inr name ->
                        if fv_eq name fvar
                        then Some lb
  
positive.code: 
      | Tm_app(head, args) ->
        debug (fun () -> BU.print2 "Application: %s @ %s\n" (P.term_to_string head) (P.args_to_string args));
        iapp cfg (translate cfg bs e) (List.map (fun x -> (translate cfg bs (fst x), snd x)) args) // Zoe : TODO avoid translation pass for args      
  
      | Tm_match(scrut, branches) ->
        let rec case (scrut : t) : t =
  
negative.code:               let (bs', args') =
                    List.fold_left (fun (bs, args) (arg, b) ->
                                      let (bs', arg') = process_pattern bs arg in
                                      (bs', (arg', b) :: args)) (bs, []) args
                in
                (bs', Pat_cons (fvar, List.rev args'))
              | Pat_var bvar ->
  