anchor.diff:        let args = map_rev (fun (x, q) -> (readback env x, q)) ts in
         U.mk_app (S.bv_to_name bv) args
   
  -    | Accu (Match (scrut, cases, patterns), ts) ->
  +    | Accu (Match (scrut, patterns), ts) ->
         let args = map_rev (fun (x, q) -> (readback env x, q)) ts in
         let head = 
           let scrut_new = readback env scrut in
  
positive.code:           | Some (branch, args) ->
              translate env (List.fold_left (fun bs x -> x::bs) bs args) branch
            | None -> //no branch is determined
              mkAccuMatch scrut case patterns
            end
          | Constant c ->
            (* same as for construted values, but args are either empty or is a singleton list (for wildcard patterns) *)
  
negative.code: type atom = //JUST FSHARP
    | Var of var
    | Match of t * (* the scutinee *)
               ((t -> term) -> list<branch>) (* the computation that reconstructs the pattern matching, parameterized by the readback function *)
               // ZP: Keep the original branches to reconstruct just the patterns
               // NS: add a thunked pattern translations here
  