anchor.diff:      | Tm_fvar fvar ->
         let find_in_sigtab (env : Env.env) (lid : lident) : option<sigelt> = BU.smap_try_find env.sigtab (text_of_lid lid) in
         (match find_in_sigtab env fvar.fv_name.v with 
  -       | Some elt ->
  -         (match elt.sigel with 
  -          | Sig_datacon _ -> mkConstruct fvar []
  -          | Sig_inductive_typ _ -> mkAccInd fvar
  -          | _ -> failwith "Sigelt not yet supported")
  -       | None -> failwith "Free variable not found")
  +       | Some { sigel = Sig_let ((is_rec, [lb]), _) n} ->
  +         if is_rec then 
  +           mkAccuRec lb [] 
  +         else 
  +           translate env [] lb.lbdef
  +       | None -> mkConstruct fvar [] (* Zoe : Treat all other cases as type/data constructors for now. *)
  +         (* Zoe : Z and S dataconstructors from the examples are not in the environment *) 
  +       )
       | Tm_abs (x::xs, body, _) ->
         let rest = S.mk (Tm_abs(xs, body, None)) None Range.dummyRange in
         let tm = S.mk (Tm_abs([x], rest, None)) None e.pos in
  
positive.code: //         | _ -> failwith "Recursive definition not a function")
  // >>>>>>> 86f93ae6edc257258f376954fed7fba11f53ff83
  
  let normalize (env : Env.env) (e:term) : term = readback env (translate env [] e)
  
negative.code:     | Accu (Type u, ts) ->
        let args = map_rev (fun x -> as_arg (readback env x)) ts in
        U.mk_app (S.mk (Tm_type u) None Range.dummyRange) args
                 
      | Accu (Match (scrut, cases), ts) ->
        let args = map_rev (fun x -> as_arg (readback env x)) ts in
        let head =  readback env (cases scrut) in
  