anchor.diff:          | Failure _ -> find_term p r
       else failwith "find_term"
   
  +/// Searches a term for all subterms that satisfy a predicate.
   let find_terms = 
       let rec accum tl p tm = 
           let tl' = 
  
positive.code: (* General substitution (for any free expression).                           *)
  (* ------------------------------------------------------------------------- *)
  
  let subst = 
      let rec ssubst ilist tm = 
          if ilist = [] then tm
  
negative.code:         with
          | Failure _ -> failwith "dest_gabs: Not a generalized abstraction"
  
  /// Tests if a term is a basic or generalized abstraction.
  let is_gabs = can dest_gabs
  
  /// Constructs a generalized abstraction.
  let mk_gabs = 
      let mk_forall(v, t) = 
          let cop = mk_const("!", [type_of v, aty])
  