anchor.diff:      | Refinement (b, r) ->
           let body = translate env [] (readback env r) in
           debug (fun () -> BU.print1 "Translated refinement body: %s\n" (t_to_string body));
  -        readback env (app body (Constant Unit) None)
  +        S.mk (Tm_refine(fst b, readback env body)) None Range.dummyRange
   
   // Zoe: Commenting out conflict with Danel
   // =======
  
positive.code:     | ("op_Minus", [Constant (Int i)]) -> readback env (Constant (Int (Z.minus_big_int i)))
      | ("op_Addition", [Constant (Int i1); Constant (Int i2)]) -> readback env (Constant (Int (Z.add_big_int i1 i2)))
      | ("op_Subtraction", [Constant (Int i1); Constant (Int i2)]) -> readback env (Constant (Int (Z.sub_big_int i1 i2)))
      | ("op_GreaterThan", [Constant (Int i1); Constant (Int i2)]) -> readback env (Constant (Bool (Z.gt_big_int i2 i2)))
      | ("equals", [typ; t1; t2]) -> readback env (Constant (Bool (readback env t1 = readback env t2)))
      | ("op_Negation", [Constant (Bool b)]) -> readback env (Constant (Bool (not b)))
      | ("c_and", [Constant (Bool b1); Constant (Bool b2)]) -> readback env (Constant (Bool (b1 && b2)))
      | ("c_or", [Constant (Bool b1); Constant (Bool b2)]) -> readback env (Constant (Bool (b1 || b2)))
      | _ -> failwith "Bad primitive op application"
  
  (* [readback] creates named binders and not De Bruijn *)
  
negative.code:                 debug (fun() -> BU.print "Translate fv: it's a Sig_let\n" []);
                  debug (fun () -> BU.print2 "Type of lbdef: %s - %s\n" (P.tag_of_term (SS.compress lb.lbtyp)) (P.term_to_string (SS.compress lb.lbtyp)));
                  debug (fun () -> BU.print2 "Body of lbdef: %s - %s\n" (P.tag_of_term (SS.compress lb.lbdef)) (P.term_to_string (SS.compress lb.lbdef)));
  
                  // VD: Don't unfold primops
                  if (List.mem (P.lid_to_string (fvar.fv_name.v)) primops) then
                      mkConstruct fvar [] []
                  else
                      translate_letbinding env [] lb
               end
            | None -> failwith "Could not find mutually recursive definition")
        | Some { sigel = Sig_datacon(_, _, _, lid, _, []) } ->
  