376 that of the SML basis, which has constructors NONE and SOME instead |
376 that of the SML basis, which has constructors NONE and SOME instead |
377 of None and Some, as well as exception Option.Option instead of |
377 of None and Some, as well as exception Option.Option instead of |
378 OPTION. The functions the, if_none, is_some, is_none have been |
378 OPTION. The functions the, if_none, is_some, is_none have been |
379 adapted accordingly, while Option.map replaces apsome. |
379 adapted accordingly, while Option.map replaces apsome. |
380 |
380 |
381 * The exception LIST is no more, the standard exceptions Empty and |
381 * The exception LIST has been given up in favour of the standard |
382 Subscript, as well as Library.UnequalLengths are used instead. This |
382 exceptions Empty and Subscript, as well as Library.UnequalLengths. |
383 means that function like Library.hd and Library.tl are gone, as the |
383 Function like Library.hd and Library.tl are superceded by the |
384 standard hd and tl functions suffice. |
384 standard hd and tl functions etc. |
385 |
385 |
386 A number of basic functions are now no longer exported to the ML |
386 A number of basic functions are now no longer exported to the ML |
387 toplevel, as they are variants of standard functions. The following |
387 toplevel, as they are variants of standard functions. The following |
388 suggests how one can translate existing code: |
388 suggests how one can translate existing code: |
389 |
389 |
409 bypassing the standard channels (writeln etc.), or in token |
409 bypassing the standard channels (writeln etc.), or in token |
410 translations to produce properly formatted results; Output.raw is |
410 translations to produce properly formatted results; Output.raw is |
411 required when capturing already output material that will eventually |
411 required when capturing already output material that will eventually |
412 be presented to the user a second time. For the default print mode, |
412 be presented to the user a second time. For the default print mode, |
413 both Output.output and Output.raw have no effect. |
413 both Output.output and Output.raw have no effect. |
|
414 |
|
415 * Pure: name spaces have been refined, with significant changes of the |
|
416 internal interfaces -- INCOMPATIBILITY. Renamed cond_extern(_table) |
|
417 to extern(_table). The plain name entry path is superceded by a |
|
418 general 'naming' context, which also includes the 'policy' to |
|
419 produce a fully qualified name and external accesses of a fully |
|
420 qualified name; NameSpace.extend is superceded by context dependent |
|
421 Sign.declare_name. Several theory and proof context operations |
|
422 modify the naming context; especially note Theory.restore_naming and |
|
423 ProofContext.restore_naming. |
|
424 |
|
425 * Pure: cases produced by proof methods specify options, where NONE |
|
426 means to remove case bindings -- INCOMPATIBILITY in |
|
427 (RAW_)METHOD_CASES. |
414 |
428 |
415 * Provers: Simplifier and Classical Reasoner now support proof context |
429 * Provers: Simplifier and Classical Reasoner now support proof context |
416 dependent plug-ins (simprocs, solvers, wrappers etc.). These extra |
430 dependent plug-ins (simprocs, solvers, wrappers etc.). These extra |
417 components are stored in the theory and patched into the |
431 components are stored in the theory and patched into the |
418 simpset/claset when used in an Isar proof context. Context |
432 simpset/claset when used in an Isar proof context. Context |