anchor.diff:    else begin
       (* Sanity check. *)
       ignore (tc_term env c_pure);
  -    ignore (tc_term env c_app)
  +    ignore (tc_term env c_app);
  +    ignore (tc_term env c_lift1);
  +    ignore (tc_term env c_lift2)
     end;
   
     let check_and_gen' env (_,t) k =
  
positive.code:     in
      Util.abs (S.binders_of_list [ a; t1; t2; l; r ]) outer_body ret in
  
    if !jonathan_temp_hack < 2 then
      (* Skip the first two effect definitions until Tot is properly defined and
       * can be composed with GTot. *)
  
negative.code:                   l:st2_gctx heap a (t1 -> GTot t2) ->
                    r:st2_gctx heap a t1 ->
                    Tot (st2_gctx heap a t2)
      let st2_app #heap #a #t1 #t2 l r = fun p h -> l p h (r p h) *)
    let c_app =
      let a = S.new_bv None Util.ktype0 in
      let t1 = S.new_bv None Util.ktype0 in
      let t2 = S.new_bv None Util.ktype0 in
      let l = S.new_bv None (mk_gctx (S.bv_to_name a)
        (Util.arrow [ S.mk_binder (S.new_bv None (S.bv_to_name t1)) ] (S.mk_GTotal (S.bv_to_name t2))))
      in
      let r = S.new_bv None (mk_gctx (S.bv_to_name a) (S.bv_to_name t1)) in
      let ret = Some (Inl (Util.lcomp_of_comp (mk_Total (mk_gctx (S.bv_to_name a) (S.bv_to_name t2))))) in
  