This file documents the Mercury standard library, version rotd-2020-01-17.
Copyright © 1995–1997,1999–2012 The University of Melbourne.
Copyright © 2013–2020 The Mercury team.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
The Mercury standard library contains a variety of modules which we hope may be of general usefulness. If you write a module that would be useful to others, and you would like us to include it as part of the Mercury standard library, please let us know.
The following documentation is simply the interface parts to those modules, automatically extracted from the source code. Some of the library modules are not very well documented; we apologize.
For many of the modules in the standard library, we have not yet had enough experience using them to be confident that the current interface is satisfactory; it is likely that the interfaces to many of the modules in the standard library will change somewhat in future releases of the Mercury system. Some modules are rather experimental modules that may even be removed in future releases. Of course, we wouldn’t make changes gratuitously, but at the current time, preserving 100% backwards compatibility would be disadvantageous in the long run.
To help you protect yourself from depending on modules that are likely to change, each module has a comment “stability: low/medium/high” at the top which gives an indication of the likely stability of the interface to that module. For modules whose stability is “high”, new functionality may be added to the interface, but we envisage very few if any changes to the interface of the sort that might break existing code. For modules whose stability is “medium”, we expect that changes are more likely. For modules whose stability is “low”, such changes are highly likely. If you want to minimize the possibility of your programs requiring modification to work with new releases of the Mercury system, we recommend that if possible you use only those modules whose stability is described as either “medium to high” or “high”.