anchor.diff:         | [arg] -> app hd arg
          | arg :: args -> app (curry hd args) arg
          in
  -       if List.exists isAccu ts then (* if there is at least one symbolic argument or (TODO) application is partial, do not unfold *)
  +       let args_no = count_abstractions lb.lbdef in 
  +       // Printf.printf "Args no. %d\n" args_no;
  +       if test_args ts args_no then (* if the arguments are not symbolic and the application is not partial compute *)
  +         readback (curry (translate ((mkAccuRec lb bs) :: bs) lb.lbdef) ts)
  +       else (* otherwise do not unfold *)
            let head = 
              (* Zoe: I want the head to be [let rec f = lb in f]. Is this the right way to construct it? *)
              let f = match lb.lbname with
  
positive.code:   | ({v = Pat_cons (c', args)}, _, e) :: bs when (fv_eq c c') ->
      e
    | b :: bs -> pickBranch c bs
  
  (* XXX unused *)
  let rec mkBranches branches cont = 
  
negative.code:          (match ts with 
            | [] -> head
            | _ -> U.mk_app head args)
        
  // Zoe: Commenting out conflict with Danel
  // =======
  //     | Accu (Rec (lb, bs), ts) -> 
  