equal
deleted
inserted
replaced
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 = |