equal
deleted
inserted
replaced
20 (* identification via serial numbers *) |
20 (* identification via serial numbers *) |
21 |
21 |
22 fun serial exn = |
22 fun serial exn = |
23 (case get_exn_serial exn of |
23 (case get_exn_serial exn of |
24 SOME i => (i, exn) |
24 SOME i => (i, exn) |
25 | NONE => let val i = Library.serial () in (i, set_exn_serial i exn) end); |
25 | NONE => |
|
26 let |
|
27 val i = Library.serial (); |
|
28 val exn' = uninterruptible (fn _ => set_exn_serial i) exn; |
|
29 in (i, exn') end); |
26 |
30 |
27 val the_serial = the o get_exn_serial; |
31 val the_serial = the o get_exn_serial; |
28 |
32 |
29 val exn_ord = rev_order o int_ord o pairself the_serial; |
33 val exn_ord = rev_order o int_ord o pairself the_serial; |
30 |
34 |