src/Pure/context.ML
changeset 37852 a902f158b4fc
parent 37216 3165bc303f66
child 37867 b9783e9e96e1
equal deleted inserted replaced
37851:1ce77362598f 37852:a902f158b4fc
   118 val kinds = Unsynchronized.ref (Datatab.empty: kind Datatab.table);
   118 val kinds = Unsynchronized.ref (Datatab.empty: kind Datatab.table);
   119 
   119 
   120 fun invoke f k =
   120 fun invoke f k =
   121   (case Datatab.lookup (! kinds) k of
   121   (case Datatab.lookup (! kinds) k of
   122     SOME kind => f kind
   122     SOME kind => f kind
   123   | NONE => sys_error "Invalid theory data identifier");
   123   | NONE => raise Fail "Invalid theory data identifier");
   124 
   124 
   125 in
   125 in
   126 
   126 
   127 fun invoke_empty k = invoke (K o #empty) k ();
   127 fun invoke_empty k = invoke (K o #empty) k ();
   128 val invoke_extend = invoke #extend;
   128 val invoke_extend = invoke #extend;
   457 val kinds = Unsynchronized.ref (Datatab.empty: (theory -> Object.T) Datatab.table);
   457 val kinds = Unsynchronized.ref (Datatab.empty: (theory -> Object.T) Datatab.table);
   458 
   458 
   459 fun invoke_init k =
   459 fun invoke_init k =
   460   (case Datatab.lookup (! kinds) k of
   460   (case Datatab.lookup (! kinds) k of
   461     SOME init => init
   461     SOME init => init
   462   | NONE => sys_error "Invalid proof data identifier");
   462   | NONE => raise Fail "Invalid proof data identifier");
   463 
   463 
   464 fun init_data thy =
   464 fun init_data thy =
   465   Datatab.map' (fn k => fn _ => invoke_init k thy) (! kinds);
   465   Datatab.map' (fn k => fn _ => invoke_init k thy) (! kinds);
   466 
   466 
   467 fun init_new_data data thy =
   467 fun init_new_data data thy =