anchor.diff:  (* ------------------------------------------------------------------------- *)
   
   // CAUTION: change to bypass value restrictions
  -let rec define_type_raw_002 def : thm * thm = 
  +let define_type_raw_002 = 
       let generalize_recursion_theorem = 
           let ELIM_OUTCOMBS = GEN_REWRITE_RULE TOP_DEPTH_CONV [OUTL; OUTR]
           let rec mk_sum tys = 
  
positive.code:             let t = find (can get_const_type) constructors
              failwith("define_type: constant " + t + " already defined")
          else 
              let retval = define_type_raw defspec
              the_inductive_types := (s, retval) :: (!the_inductive_types)
              retval
  
  
negative.code:     let define_type_basecase def = 
          let add_id s = fst(dest_var(genvar bool_ty))
          let def' = map (I ||>> (map(add_id ||>> I))) def
          define_type_raw_002 def'
      let SIMPLE_BETA_RULE = GSYM << PURE_REWRITE_RULE [BETA_THM; FUN_EQ_THM]
      let ISO_USAGE_RULE = MATCH_MP ISO_USAGE
      let SIMPLE_ISO_EXPAND_RULE = CONV_RULE(REWR_CONV ISO)
  