anchor.diff:  (* ------------------------------------------------------------------------- *)
   (* Useful instance of more general higher order matching.                    *)
   (* ------------------------------------------------------------------------- *)
  +/// Rewrite once using more general higher order matching.
   let HIGHER_REWRITE_CONV = 
       let BETA_VAR = 
           let rec BETA_CONVS n = 
  
positive.code: (* ------------------------------------------------------------------------- *)
  (* Modify bound variable names at depth. (Not very efficient...)             *)
  (* ------------------------------------------------------------------------- *)
  let deep_alpha = 
      let tryalpha v tm = 
          try 
  
negative.code: (* ------------------------------------------------------------------------- *)
  (* Instantiators.                                                            *)
  (* ------------------------------------------------------------------------- *)
  /// Apply a higher-order instantiation to a term.
  let (instantiate : instantiation -> term -> term) = 
      let betas n tm = 
          let args, lam = funpow n (fun (l, t) -> (rand t) :: l, rator t) ([], tm)
  