anchor.diff:        in
         let cfg' = {cfg with reifying=false} in
         let t =
  -      iapp cfg (translate cfg' [] lift_lam)
  -               [(translate cfg bs e, None)]
  +      iapp (translate cfg' [] lift_lam)
  +           [(translate cfg bs e, None)]
         in
         debug cfg (fun () -> BU.print1 "translate_monadic_lift(2): %s\n" (t_to_string t));
         t
  
positive.code:    then let ed = Env.get_effect_decl cfg.tcenv (Env.norm_eff_name cfg.tcenv mtgt) in
          let cfg' = {cfg with reifying=false} in
          let t =
          iapp cfg (iapp cfg (translate cfg' [] (U.un_uinst (snd ed.return_repr)))
                         [Univ U_unknown, None])
                         [(translate cfg' bs ty, None); //translating the type of the returned term
                          (translate cfg' bs e, None)]  //translating the returned term itself
  
negative.code:     | _ -> failwith ("Tm_constant " ^ (P.const_to_string c) ^ ": Not yet implemented")
  
  // GM: Not called?
  and translate_pat (p : pat) : t =
      match p.v with
      | Pat_constant c -> Constant (translate_constant c)
      | Pat_cons (cfv, pats) -> iapp (mkConstruct cfv [] []) (List.map (fun (p,_) -> (translate_pat p, None)) pats) // Zoe : TODO universe args?
      | Pat_var bvar -> mkAccuVar bvar
      | Pat_wild bvar -> mkAccuVar bvar
      | Pat_dot_term (bvar, t) -> failwith "Pat_dot_term not implemented"
  