/usr/bin/texi2dvi: Running etex --file-line-error './library.texi_pp' ...
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
 file:line:error style messages enabled.
 %&-line parsing enabled.
entering extended mode
(./library.texi_pp (./texinfo.tex Loading texinfo [version 2008-04-18.10]:
pdf, fonts, page headings, tables, conditionals, indexing, sectioning, toc,
environments, defuns, macros, cross references, insertions, localization,
formatting, and turning on texinfo input format.) [1] [2] [-1]
(./library-chapters.texi_pp Chapter 1
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8--8
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[1]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 58--58
 []    @texttt % ar-ray2d([[X11, ..., X1N], ..., [XM1, ..., XMN]]) con-structs 
a array2d[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 59--59
 []    @texttt % of size M * N, with the spe-cial case that bounds(array2d([]),
 0, 0).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 61--61
 []    @texttt % An ex-cep-tion is thrown if the sub-lists are not all the same
 length.[] 
[2]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 102--102
 []    @texttt % T ^ un-safe_elem(I, J) := X is the same as T ^ elem(I, J) := X
 except[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 106--106
 []@texttt :- mode ( ar-ray2d_di ^ un-safe_elem(in,  in)  := in ) = ar-ray2d_uo
 is det.[] 
[3] Chapter 2
Overfull \hbox (14.94176pt too wide) in paragraph at lines 145--145
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 158--158
 []@texttt % dis-able some of the check-ing by com-pil-ing with `--intermodule-
optimization'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 163--163
 []@texttt % `mmc --intermodule-optimization --cflags -DML_OMIT_ARRAY_BOUNDS_CH
ECKS'.[] 
[4]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 174--174
 []@texttt % Ar-rays are cur-rently not unique ob-jects. un-til this sit-u-a-ti
on is resolved,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 176--176
 []@texttt % pre-serve cor-rect-ness. In the ab-sence of mode re-order-ing, one
 should therefore[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 177--177
 []@texttt % as-sume that eval-u-a-tion will take place in left-to-right or-der
. For example,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 178--178
 []@texttt % the fol-low-ing code will prob-a-bly not work as ex-pected (f is a
 function,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 189--189
 []@texttt % and will be un-aware that the first line should be or-dered *af-te
r* the second.[] 
[5]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 228--228
 []@texttt :- inst mostly_uniq_array == mostly_uniq_array(ground). % XXX work-a
round[] 
[6]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 272--272
 []@texttt :- func ar-ray.generate(int::in, (func(int) = T)::in) = (array(T)::a
rray_uo)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 276--276
 []    @texttt % As above, but us-ing a pred-i-cate with an ac-cu-mu-la-tor thr
eaded through it[] 
[7]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 342--342
 []    @texttt % ar-ray.in_bounds checks whether an in-dex is in the bounds of 
an array.[] 
[8] [9]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 422--422
 []    @texttt % ar-ray.semidet_slow_set sets the nth el-e-ment of an ar-ray, a
nd returns[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 423--423
 []    @texttt % the re-sult-ing ar-ray. The ini-tial ar-ray is not re-quired t
o be unique,[] 
[10]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 473--473
 []    @texttt % The ar-ray is ex-panded or shrunk to make it fit the new size 
`Size'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 492--492
 []    @texttt % ar-ray.from_list takes a list, and re-turns an ar-ray con-tain
-ing those[] 
[11]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 498--498
 []    @texttt % ar-ray.from_reverse_list takes a list, and re-turns an ar-ray 
containing[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 499--499
 []    @texttt % those el-e-ments in the re-verse or-der that they oc-curred in
 the list.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 501--501
 []@texttt :- func ar-ray.from_reverse_list(list(T)::in) = (ar-ray(T)::array_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 503--503
 []    @texttt % ar-ray.to_list takes an ar-ray and re-turns a list con-tain-in
g the elements[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 515--515
 []    @texttt % and places those items in the ar-ray be-tween these in-dices i
nto a list.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 526--526
 []    @texttt % in-stead of ar-ray.bsearch, which may be dep-re-cated in later
 releases.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 528--528
 []    @texttt % ar-ray.bsearch takes an ar-ray, an el-e-ment to be matched and
 a comparison[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 529--529
 []    @texttt % pred-i-cate and re-turns the po-si-tion of the first oc-cur-re
nce in the array[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 542--542
 []    @texttt % ar-ray.approx_binary_search(A, X, I) per-forms a bi-nary searc
h for an[] 
[12]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 543--543
 []    @texttt % ap-prox-i-mate match for X in ar-ray A, com-put-ing I as the r
e-sult.  More[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 545--545
 []    @texttt % A ^ elem(I) @< X and ei-ther X @< A ^ elem(I + 1) or I is the 
last index[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 549--549
 []    @texttt % ex-act match for X in ar-ray A (i.e., it suc-ceeds iff X = A ^
 elem(I)).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 552--552
 []    @texttt % (the or-der-ing must be with re-spect to the sup-plied com-par
-i-son predicate[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 559--559
 []@texttt :- pred ar-ray.approx_binary_search(comparison_func(T), ar-ray(T), T
, int).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 583--583
 []    @texttt % This sort is not sta-ble. That is, el-e-ments that com-pare/3 
de-cides are[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 584--584
 []    @texttt % equal will ap-pear to-gether in the sorted ar-ray, but not nec
essarily[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 585--585
 []    @texttt % in the same or-der in which they oc-curred in the in-put ar-ra
y. This is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 586--586
 []    @texttt % pri-mar-ily only an is-sue with types with user-defined equiv-
a-lence for[] 
[13]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 597--597
 []@texttt %:- mode ar-ray.foldl(func(in, in) = out is det, ar-ray_ui, in) = ou
t is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 599--599
 []@texttt %:- mode ar-ray.foldl(func(in, di) = uo is det, ar-ray_ui, di) = uo 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 610--610
 []@texttt :- mode ar-ray.foldl(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 611--611
 []@texttt :- mode ar-ray.foldl(pred(in, mdi, muo) is semidet, in, mdi, muo) is
 semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 618--618
 []@texttt :- pred ar-ray.foldl2(pred(T1, T2, T2, T3, T3), ar-ray(T1), T2, T2, 
T3, T3).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 619--619
 []@texttt :- mode ar-ray.foldl2(pred(in, in, out, in, out) is det, in, in, out
, in, out)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 621--621
 []@texttt :- mode ar-ray.foldl2(pred(in, in, out, mdi, muo) is det, in, in, ou
t, mdi, muo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 623--623
 []@texttt :- mode ar-ray.foldl2(pred(in, in, out, di, uo) is det, in, in, out,
 di, uo)[] 
[14]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 651--651
 []@texttt :- pred ar-ray.foldl4(pred(T1, T2, T2, T3, T3, T4, T4, T5, T5), arra
y(T1),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 653--653
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 655--655
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 659--659
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 661--661
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 663--663
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, di, uo) is
 semidet,[] 
[15]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 694--694
 []@texttt %:- mode ar-ray.foldr(func(in, in) = out is det, ar-ray_ui, in) = ou
t is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 696--696
 []@texttt %:- mode ar-ray.foldr(func(in, di) = uo is det, ar-ray_ui, di) = uo 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 707--707
 []@texttt :- mode ar-ray.foldr(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 708--708
 []@texttt :- mode ar-ray.foldr(pred(in, mdi, muo) is semidet, in, mdi, muo) is
 semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 713--713
 []@texttt :- pred ar-ray.foldr2(pred(T1, T2, T2, T3, T3), ar-ray(T1), T2, T2, 
T3, T3).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 714--714
 []@texttt :- mode ar-ray.foldr2(pred(in, in, out, in, out) is det, in, in, out
, in, out)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 716--716
 []@texttt :- mode ar-ray.foldr2(pred(in, in, out, mdi, muo) is det, in, in, ou
t, mdi, muo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 718--718
 []@texttt :- mode ar-ray.foldr2(pred(in, in, out, di, uo) is det, in, in, out,
 di, uo)[] 
[16]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 739--739
 []@texttt :- mode ar-ray.foldr3(pred(in, in, out, in, out, mdi, muo) is semide
t, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 746--746
 []@texttt :- pred ar-ray.foldr4(pred(T1, T2, T2, T3, T3, T4, T4, T5, T5), arra
y(T1),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 748--748
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 750--750
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 754--754
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 756--756
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 758--758
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, di, uo) is
 semidet,[] 
[17]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 801--801
 []    @texttt % each cor-re-spond-ing pair of el-e-ments Aelt and Belt. Build 
up the ar-

Overfull \hbox (32.18782pt too wide) in paragraph at lines 805--805
 []    @texttt % C will have as many el-e-ments as A does. In most uses, B will
 also have[] 
[18]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 827--827
 []@texttt :- func ar-ray.append(array(T)::in, ar-ray(T)::in) = (ar-ray(T)::arr
ay_uo) is det.[] 
Chapter 3
Overfull \hbox (95.42339pt too wide) in paragraph at lines 852--852
 []@texttt % Copy-right (C) 1995-1997, 1999-2001, 2004-2006, 2010-2011 The Uni-
ver-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 853--853
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[19]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 902--902
 []    @texttt % Re-turn the two lists con-tain re-spec-tively the first and se
c-ond member[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 911--911
 []@texttt :- pred as-soc_list.search(assoc_list(K, V)::in, K::in, V::out) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 918--918
 []    @texttt % ex-cep-tion if the key in ques-tion does not ap-pear in the as
soc_list.[] 
[20]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 938--938
 []@texttt :- mode as-soc_list.map_values_only(pred(in, out) is det, in, out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 951--951
 []    @texttt % in-put ar-gu-ment and for each mem-ber K - V of List X, calls 
the closure[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 959--959
 []    @texttt % as-soc_list.negated_filter(Pred, List, FalseList) takes a clo-
sure with one[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 960--960
 []    @texttt % in-put ar-gu-ment and for each mem-ber K - V of List X, calls 
the closure[] 
[21]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 968--968
 []    @texttt % as-soc_list.filter(Pred, List, Tru-eList, FalseList) takes a c
lo-sure with[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 969--969
 []    @texttt % one in-put ar-gu-ment and for each mem-ber K - V of List X, ca
lls the closure[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 974--974
 []    @texttt as-soc_list(K, V)::in, as-soc_list(K, V)::out, as-soc_list(K, V)
::out) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 978--978
 []    @texttt % L is the re-sult of merg-ing the el-e-ments of L1 and L2, in a
s-cend-ing order.[] 
[22] Chapter 4
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1042--1042
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[23]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 1075--1075
 []    @texttt % Re-turn the num-ber of unique val-ues in a bag, du-pli-cate va
l-ues are counted[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1102--1102
 []    @texttt % cor-re-spond-ing bag af-ter the value has been re-moved. Du-pl
i-cate values[] 
[24]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 1130--1130
 []    @texttt % Given a bag, pro-duce a sorted list con-tain-ing all the val-u
es in the bag.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1131--1131
 []    @texttt % Each value will ap-pear in the list once, with the as-so-ci-at
ed integer[] 
[25]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 1160--1160
 []    @texttt % Re-move a list of val-ues from a bag. Du-pli-cates are re-move
d from the bag[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1161--1161
 []    @texttt % the ap-pro-pri-ate num-ber of times. Fail if any of the items 
in the list[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1171--1171
 []@texttt :- pred bag.remove_list(list(T)::in, bag(T)::in, bag(T)::out) is sem
idet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1173--1173
 []    @texttt % Re-move a list of val-ues from a bag. Du-pli-cates are re-move
d from the bag[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1174--1174
 []    @texttt % the ap-pro-pri-ate num-ber of times.  Abort if any of the item
s in the list[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1178--1178
 []@texttt :- pred bag.det_remove_list(list(T)::in, bag(T)::in, bag(T)::out) is
 det.[] 
[26]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1218--1218
 []    @texttt % Sub-tracts Sub-Bag from Bag0 to pro-duce Bag. Each el-e-ment i
n Sub-Bag is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1234--1234
 []    @texttt % The third bag is the in-ter-sec-tion of the first 2 bags. Ev-e
ry element[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1242--1242
 []    @texttt % bag.intersect(A, B) :- bag.intersect(A, B, C), not bag.is_empt
y(C).[] 
[27]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1254--1254
 []@texttt :- pred bag.least_upper_bound(bag(T)::in, bag(T)::in, bag(T)::out) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1280--1280
 []@texttt :- pred bag.subset_compare(comparison_result::out, bag(T)::in, bag(T
)::in)[] 
Chapter 5
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1295--1295
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[28]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1303--1303
 []@texttt % This mod-ule con-tains pred-i-cates that deal with the CPU time re
quirements[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1315--1315
 []    @texttt % `re-port_stats' is a non-logical pro-ce-dure in-tended for use
 in profiling[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1320--1320
 []    @texttt % Note: in Java, this re-ports us-age of the call-ing thread.  Y
ou will get[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1321--1321
 []    @texttt % non-sen-si-cal re-sults if the pre-vi-ous call to `re-port_sta
ts' was from a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1329--1329
 []    @texttt % `re-port_full_memory_stats' is a non-logical pro-ce-dure in-te
nded for use[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1335--1335
 []    @texttt % re-port_memory_attribution(Label, !IO) is a pro-ce-dure in-ten
ded for use in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1336--1336
 []    @texttt % pro-fil-ing the mem-ory us-age by a pro-gram. In `mem-prof.gc'
 grades it has[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1337--1337
 []    @texttt % the side-effect of forc-ing a garbage col-lec-tion and re-port
-ing a summary[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1338--1338
 []    @texttt % of the ob-jects on the heap to a data file. See ``Us-ing mprof
 -s for[] 
[29]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 1348--1348
 []    @texttt % bench-mark_det(Pred, In, Out, Re-peats, Time) is for bench-mar
k-ing the det[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1349--1349
 []    @texttt % pred-i-cate Pred. We call Pred with the in-put In and the out-
put Out, and[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1351--1351
 []    @texttt % bench-marked pred-i-cate. Since most sys-tems do not have good
 facilities[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1354--1354
 []    @texttt % in-ter-val. The num-ber of mil-lisec-onds re-quired to ex-e-cu
te Pred with input[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1361--1361
 []@texttt :- mode bench-mark_det(pred(in, out) is det, in, out, in, out) is cc
_multi.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 1362--1362
 []@texttt :- mode bench-mark_det(pred(in, out) is cc_multi, in, out, in, out) 
is cc_multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1365--1365
 []@texttt :- mode bench-mark_func(func(in) = out is det, in, out, in, out) is 
cc_multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1367--1367
 []@texttt :- pred bench-mark_det_io(pred(T1, T2, T3, T3), T1, T2, T3, T3, int,
 int).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1371--1371
 []    @texttt % bench-mark_nondet(Pred, In, Count, Re-peats, Time) is for benc
hmarking[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1372--1372
 []    @texttt % the non-det pred-i-cate Pred. bench-mark_nondet is sim-i-lar t
o benchmark_det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1373--1373
 []    @texttt % but it re-turns only a count of the so-lu-tions, rather than s
olutions[] 
[30]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1409--1409
 []    @texttt % Turn off or on the col-lec-tion of mem-ory al-lo-cated in each
 procedure[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 1423--1423
 []    @texttt % Write out the trace counts ac-cu-mu-lated so far in this pro-g
ram's execution[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1424--1424
 []    @texttt % to File-Name. If suc-cess-ful, set May-beEr-rorMsg to "no". If
 unsuccessful,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 1426--1426
 []    @texttt % be-cause trace count-ing isn't turned on, then set May-beEr-ro
rMsg to a "yes"[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1435--1435
 []    @texttt % Place a log mes-sage in the thread-scope event stream.  The ev
ent will be[] 
[31]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 1436--1436
 []    @texttt % logged as be-ing gen-er-ated by the cur-rent Mer-cury En-gine.
  This is a no-
Chapter 6
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1453--1453
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1462--1462
 []@texttt % A map (also known as a dic-tio-nary or an as-so-cia-tive ar-ray) i
s a collection[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1463--1463
 []@texttt % of (Key, Data) pairs which al-lows you to look up any Data item gi
ven the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1464--1464
 []@texttt % Key.  A bimap also al-lows you to ef-fi-ciently look up the Key gi
ven the Data.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1465--1465
 []@texttt % This time ef-fi-ciency comes at the ex-pense of us-ing twice as mu
ch space.[] 
[32] [33]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1554--1554
 []@texttt :- pred bimap.det_insert(K::in, V::in, bimap(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1560--1560
 []    @texttt % NOTE: set-ting the key-value pair (K, V) will re-move the key-
value pairs[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1564--1564
 []@texttt :- pred bimap.set(K::in, V::in, bimap(K, V)::in, bimap(K, V)::out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1566--1566
 []    @texttt % In-sert key-value pairs from an as-so-ci-a-tion list into the 
given bimap.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1567--1567
 []    @texttt % Fails if the con-tents of the as-so-ci-a-tion list and the ini
-tial bimap[] 
[34]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1589--1589
 []@texttt :- pred bimap.det_insert_from_corresponding_lists(list(K)::in, list(
V)::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1593--1593
 []    @texttt % The key-value pairs from the as-so-ci-a-tion list may up-date 
ex-ist-ing keys[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1614--1614
 []@texttt :- pred bimap.delete_key(K::in, bimap(K, V)::in, bimap(K, V)::out) i
s det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1620--1620
 []@texttt :- pred bimap.delete_value(V::in, bimap(K, V)::in, bimap(K, V)::out)
 is det.[] 
[35]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1625--1625
 []@texttt :- pred bimap.delete_keys(list(K)::in, bimap(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1631--1631
 []@texttt :- pred bimap.delete_values(list(V)::in, bimap(K, V)::in, bimap(K, V
)::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1639--1639
 []@texttt :- pred bimap.overlay(bimap(K, V)::in, bimap(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1645--1645
 []@texttt :- pred bimap.to_assoc_list(bimap(K, V)::in, as-soc_list(K, V)::out)
 is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1647--1647
 []    @texttt % Con-vert an as-so-ci-a-tion list to a bimap. Fails if the as-s
o-ci-a-tion list[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1651--1651
 []@texttt :- func bimap.from_assoc_list(assoc_list(K, V)) = bimap(K, V) is sem
idet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1659--1659
 []@texttt :- pred bimap.det_from_assoc_list(assoc_list(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1663--1663
 []    @texttt % im-plic-itly de-fine a bi-jec-tion or if the lists are of un-e
qual length.[] 
[36]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1673--1673
 []@texttt :- func bimap.det_from_corresponding_lists(list(K), list(V)) = bimap
(K, V).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1699--1699
 []    @texttt % Per-form a traver-sal of the bimap, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1707--1707
 []@texttt :- mode bimap.foldl(pred(in, in, in, out) is semidet, in, in, out) i
s semidet.[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 1708--1708
 []@texttt :- mode bimap.foldl(pred(in, in, mdi, muo) is semidet, in, mdi, muo)
 is semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1709--1709
 []@texttt :- mode bimap.foldl(pred(in, in, di, uo) is semidet, in, di, uo) is 
semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1711--1711
 []    @texttt % Per-form a traver-sal of the bimap, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1713--1713
 []    @texttt % ex-pres-sive than bimap.foldl, this is of-ten a more con-ve-ni
ent format,[] 
[37]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1732--1732
 []    @texttt % Per-form a traver-sal of the bimap, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1734--1734
 []    @texttt % ex-pres-sive than bimap.foldl, this is of-ten a more con-ve-ni
ent format,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1751--1751
 []@texttt :- mode bimap.foldl3(pred(in, in, in, out, in, out, mdi, muo) is sem
idet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1756--1756
 []    @texttt % Ex-tract a the for-ward map from the bimap, the map from key t
o value.[] 
[38] Chapter 7
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1776--1776
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1784--1784
 []@texttt % and byte-oriented streams.  The use-ful part of the in-ter-face is
 defined[] 
[39] Chapter 8
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1833--1833
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1849--1849
 []@texttt % for a neg-a-tive num-ber of bits) will re-sult in an ex-cep-tion b
e-ing thrown.[] 
[40]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1869--1869
 []        @texttt % <= stream.bulk_reader(Stream, byte_index, bit-map, State, 
Error).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1883--1883
 []    @texttt % the stream spec-i-fied by Stream and State in chunks of Num-By
tes bytes.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1888--1888
 []@texttt :- func new(num_bytes, Stream, State) = read_buffer(Stream, State, E
rror)[] 
[41]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 1924--1924
 []@texttt :- pred get_bit(stream.result(bool, Er-ror), read_buffer(Stream, Sta
te, Error),[] 
[42]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1965--1965
 []    @texttt % Note that this is much more ef-fi-cient if both In-dex and the
 initial[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1966--1966
 []    @texttt % po-si-tion in the buffer are both at a byte bound-ary (for ex-
am-ple after[] 
Chapter 9
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1998--1998
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[43]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 2005--2005
 []@texttt % A bit buffer pro-vides an in-ter-face be-tween bit-oriented out-pu
t requests[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2006--2006
 []@texttt % and byte-array-oriented streams, stor-ing bits un-til there are en
ough bytes[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2028--2028
 []@texttt :- type io_write_buffer == write_buffer(io.binary_output_stream, io.
state).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2036--2036
 []    @texttt % the stream spec-i-fied by Stream and State in chunks of Num-By
tes bytes.[] 
[44]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 2065--2065
 []@texttt :- pred put_bit(bool, write_buffer(Stream, State), write_buffer(Stre
am, State))[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2069--2069
 []    @texttt % Write the given num-ber of low-order bits from an int to the b
uffer.[] 
[45]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 2096--2096
 []@texttt :- mode put_bitmap(bitmap_ui, in, in, write_buffer_di, write_buffer_
uo) is det.[] 
Chapter 10
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2128--2128
 []@texttt % Copy-right (C) 2001-2002, 2004-2007, 2009-2011 The Uni-ver-sity of
 Melbourne[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2129--2129
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[46]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2157--2157
 []    @texttt % Type `bit-map' is equiv-a-lent to `ar-ray(bool)', but is im-pl
e-mented much[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2164--2164
 []    @texttt % Com-par-i-son of bit-maps first com-pares the size, if the siz
e is equal[] 
[47]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2236--2236
 []    @texttt % Shrink a bit-map with-out copy-ing it into a smaller mem-ory a
llocation.[] 
[48]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 2266--2266
 []    @texttt % As above, but throw an ex-cep-tion if the bit-map has a par-ti
al fi-nal byte.[] 
[49]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 2315--2315
 []@texttt :- mode (bit-map_di  ^ bits(in, in)              := in)   = bit-map_
uo is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2317--2317
 []@texttt :- func (bit-map     ^ un-safe_bits(bit_index, num_bits) := word) = 
bitmap.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2318--2318
 []@texttt :- mode (bit-map_di  ^ un-safe_bits(in, in)              := in)   = 
bitmap_uo[] 
[50]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 2345--2345
 []@texttt :- mode (bit-map_di  ^ un-safe_byte(in)           := in)   = bit-map
_uo is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2351--2351
 []    @texttt % A bit-map slice rep-re-sents the sub-range of a bit-map of Num
Bits bits[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2352--2352
 []    @texttt % start-ing at bit in-dex StartIn-dex.  Throws an ex-cep-tion if
 the slice[] 
[51]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2387--2387
 []    @texttt % Set op-er-a-tions; for bi-nary op-er-a-tions the sec-ond ar-gu
-ment is altered[] 
[52]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2427--2427
 []@texttt :- func copy_bits(bitmap, bit_index, bit-map, bit_index, num_bits) =
 bitmap.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2436--2436
 []@texttt :- func copy_bits_in_bitmap(bitmap, bit_index, bit_index, num_bits) 
= bitmap.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 2444--2444
 []@texttt :- func copy_bytes(bitmap, byte_index, bit-map, byte_index, num_byte
s) = bitmap.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2445--2445
 []@texttt %:- mode copy_bytes(bitmap_ui, in, bit-map_di, in, in) = bit-map_uo 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2450--2450
 []    @texttt % Over-write Num-Bytes bytes start-ing at Dest-Start-Byte with t
he NumBytes[] 
[53] [54] Chapter 11
Overfull \hbox (49.43388pt too wide) in paragraph at lines 2562--2562
 []@texttt % Copy-right (C) 1996-1997,2000,2002-2007,2009-2010 The Uni-ver-sity
 of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2563--2563
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[55]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2571--2571
 []@texttt % This mod-ule ex-ports the boolean type `bool' and some op-er-a-tio
ns on bools.[] 
[56] Chapter 12
Overfull \hbox (66.67995pt too wide) in paragraph at lines 2640--2640
 []@texttt % Copy-right (C) 1997, 1999-2000, 2002-2003, 2005-2006 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2641--2641
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2651--2651
 []@texttt % and up-date time, and does not re-quire the bt_array to be unique.
  If you[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2660--2660
 []@texttt % ex-ploit ac-cu-mu-la-tor re-cur-sion in some op-er-a-tions.  See t
he documentation[] 
[57]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2681--2681
 []    @texttt % bt_array with bounds from Low to High whose el-e-ments each eq
ual Init.[] 
[58]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2721--2721
 []    @texttt % bt_array.semidet_lookup is like bt_array.lookup ex-cept that i
t fails[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2724--2724
 []@texttt :- pred bt_array.semidet_lookup(bt_array(T)::in, int::in, T::out) is
 semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2740--2740
 []    @texttt % `bt_array.resize(BtArray0, Lo, Hi, Item, BtAr-ray)' is true if
 BtArray[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2741--2741
 []    @texttt % is a bt_array cre-ated by ex-pand-ing or shrink-ing BtAr-ray0 
to fit the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2745--2745
 []    @texttt % Note: This op-er-a-tion is op-ti-mised for the case where the 
lower bound[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2746--2746
 []    @texttt % of the new bt_array is the same as that of the old bt_array. I
n that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2747--2747
 []    @texttt % case, the op-er-a-tion takes time pro-por-tional to the ab-so-
lute difference[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2748--2748
 []    @texttt % in size be-tween the two bt_arrays. If this is not the case, i
t may take[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2755--2755
 []    @texttt % bt_array.shrink(BtArray0, Lo, Hi, Item, BtAr-ray) is true if B
tArray[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2756--2756
 []    @texttt % is a bt_array cre-ated by shrink-ing BtAr-ray0 to fit the boun
ds (Lo, Hi).[] 
[59]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2757--2757
 []    @texttt % It is an er-ror if the new bounds are not wholly within the bo
unds of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2760--2760
 []    @texttt % Note: This op-er-a-tion is op-ti-mised for the case where the 
lower bound[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2761--2761
 []    @texttt % of the new bt_array is the same as that of the old bt_array. I
n that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2762--2762
 []    @texttt % case, the op-er-a-tion takes time pro-por-tional to the ab-so-
lute difference[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2763--2763
 []    @texttt % in size be-tween the two bt_arrays. If this is not the case, i
t may take[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2766--2766
 []@texttt :- pred bt_array.shrink(bt_array(T)::in, int::in, int::in, bt_array(
T)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2770--2770
 []    @texttt % bt_array.from_list(Low, List, BtAr-ray) takes a list (of pos-s
i-bly zero[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2771--2771
 []    @texttt % length), and re-turns a bt_array con-tain-ing % those el-e-men
ts in the same[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2772--2772
 []    @texttt % or-der that they oc-curred in the list. The lower bound of the
 new array[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2774--2774
 []@texttt :- pred bt_array.from_list(int::in, list(T)::in, bt_array(T)::out) i
s det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 2785--2785
 []    @texttt % and places those items in the bt_array be-tween these in-dices
 into a list.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2788--2788
 []@texttt :- pred bt_array.fetch_items(bt_array(T)::in, int::in, int::in, list
(T)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2793--2793
 []    @texttt % com-par-i-son pred-i-cate and re-turns the po-si-tion of the f
irst occurrence[] 
[60]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 2807--2807
 []    @texttt % (Ar-ray ^ elem(Index) := Value) = bt_array.set(Array, In-dex, 
Value).[] 
Chapter 13
Overfull \hbox (14.94176pt too wide) in paragraph at lines 2822--2822
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2848--2848
 []@texttt % and the types `pred', `pred(T)', `pred(T1, T2)', `pred(T1, T2, T3)
', ...[] 
[61] [62] [63]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2983--2983
 []    @texttt % there is more than one ref-er-ence to the data in ques-tion, i
.e. it is[] 
[64]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3012--3012
 []    @texttt % X2)'.  `promise_only_solution(Pred)' pre-sumes that this as-su
mp-tion is[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3013--3013
 []    @texttt % sat-is-fied, and re-turns the X for which Pred(X) is true, if 
there is[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3017--3017
 []    @texttt % `cc_multi' or `cc_nondet' code in-side a `det' or `semidet' pr
ocedure.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3019--3019
 []    @texttt % Note that mis-use of this func-tion may lead to un-sound re-su
lts: if the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3020--3020
 []    @texttt % as-sump-tion is not sat-is-fied, the be-haviour is un-de-fined
.  (If you lie[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3032--3032
 []    @texttt % `promise_only_solution_io' is like `promise_only_solution', bu
t for[] 
[65]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3043--3043
 []    @texttt % the as-sump-tion is not sat-is-fied, the be-haviour is un-de-f
ined.  (If you[] 
[66]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3098--3098
 []    @texttt %   must be to-tal or-der re-la-tions: that is they must be anti
symmetric,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3109--3109
 []    @texttt % XXX The ui modes are com-mented out be-cause they don't yet wo
rk properly.[] 
[67]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3137--3137
 []    @texttt % type, where this or-der-ing is not nec-es-sar-ily the stan-dar
d ordering.[] 
[68]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3190--3190
 []    @texttt % `semidet_fail' is like `fail' ex-cept that its de-ter-min-ism 
is semidet[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3220--3220
 []    @texttt % dy-namic_cast(X, Y) suc-ceeds with Y = X iff X has the same gr
ound type[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3221--3221
 []    @texttt % as Y (so this may suc-ceed if Y is of type list(int), say, but
 not if[] 
Chapter 14 [69]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3237--3237
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3247--3247
 []@texttt % The Gre-go-rian cal-en-dar is the cal-en-dar that is cur-rently us
ed by most of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3248--3248
 []@texttt % the world. In this cal-en-dar a year is a leap year if it is di-vi
s-i-ble by[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 3249--3249
 []@texttt % 4, but not di-vis-i-ble by 100. The only ex-cep-tion is if the yea
r is divisible[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 3250--3250
 []@texttt % by 400, in which case it is a leap year. For ex-am-ple 1900 is not
 leap year,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3252--3252
 []@texttt % Gre-go-rian cal-en-dar back-ward in time to be-fore it was first i
n-tro-duced in[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3265--3265
 []    @texttt % A point on the Pro-lep-tic Gre-go-rian cal-en-dar, to the near
-est microsecond.[] 
[70]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3312--3312
 []    @texttt % init_date(Year, Month, Day, Hour, Minute, Sec-ond, Mi-croSec-o
nd, Date).[] 
[71]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3329--3329
 []    @texttt % Con-vert a string of the form "YYYY-MM-DD HH:MM:SS.mmmmmm" to 
a date.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3338--3338
 []    @texttt % Con-vert a date to a string of the form "YYYY-MM-DD HH:MM:SS.m
mmmmm".[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3352--3352
 []    @texttt % Cal-cu-late the Ju-lian day num-ber for a date on the Gre-go-r
ian calendar.[] 
[72]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3397--3397
 []    @texttt days::out, hours::out, min-utes::out, sec-onds::out, microsecond
s::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3410--3410
 []    @texttt % The string should be of the form "PnYn-M-nDTnHn-MnS" where eac
h "n" is a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3411--3411
 []    @texttt % non-negative in-te-ger rep-re-sent-ing the num-ber of years (Y
), months (M),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3412--3412
 []    @texttt % days (D), hours (H), min-utes (M) or sec-onds (S). The du-ra-t
ion string[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3413--3413
 []    @texttt % al-ways starts with 'P' and the 'T' sep-a-rates the date and t
ime components[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3414--3414
 []    @texttt % of the du-ra-tion. A com-po-nent may be omit-ted if it is zero
, and the 'T'[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3416--3416
 []    @texttt % The sec-ond com-po-nent may in-clude a frac-tion com-po-nent u
s-ing a period.[] 
[73]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3426--3426
 []    @texttt % Note that in-ter-nally the du-ra-tion is rep-re-sented us-ing 
only months,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3428--3428
 []    @texttt % duration_to_string(det_duration_from_string("P1Y18M100DT10H15M
90.0003S"))[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3445--3445
 []    @texttt % If this causes the day to be out of range (e.g. April 31), the
n it is[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3448--3448
 []    @texttt % in turn cause the month and year com-po-nents of the date to c
hange again.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3463--3463
 []    @texttt % can-not be said to be less than, equal to or greater than an-o
ther duration[] 
[74]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 3477--3477
 []    @texttt % To con-vert UTC time to lo-cal time, add the re-sult of local_
time_offset/3[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3478--3478
 []    @texttt % to UTC (us-ing add_duration/3). To com-pute UTC given the lo-c
al time,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3479--3479
 []    @texttt % first negate the re-sult of lo-cal_time_offset/3 (us-ing negat
e/1) and then[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3486--3486
 []    @texttt % The al-go-rithm is greedy in the sense that it will try to max
-imise each[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3487--3487
 []    @texttt % com-po-nent in the re-turned du-ra-tion in the fol-low-ing or-
der: years, months,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3489--3489
 []    @texttt % The re-turned du-ra-tion is pos-i-tive if DateB is af-ter Date
A and negative[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3494--3494
 []    @texttt % time-zones or day-light sav-ings phases, first con-vert the da
tes to UTC.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3498--3498
 []    @texttt % add_duration(DateB, negate(duration(DateA, DateB)), DateA) may
 not hold.[] 
[75]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3512--3512
 []    @texttt % re-turned du-ra-tion will al-ways be zero. The du-ra-tion will
 be in terms[] 
Chapter 15
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3529--3529
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[76]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3564--3564
 []    @texttt % `char.to_int'/1 and `char.to_int(in, out)' con-vert a char-ac-
ter to its[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3567--3567
 []    @texttt % `char.to_int(out, in)' con-verts an in-te-ger value to a char-
ac-ter value.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3570--3570
 []    @texttt % Be aware that there is no guar-an-tee that char-ac-ters can be
 writ-ten to[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3571--3571
 []    @texttt % files or to the stan-dard out-put or stan-dard er-ror streams.
 Files us-

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3572--3572
 []    @texttt % 8-bit na-tional char-ac-ter set would only be able to rep-re-s
ent a sub-

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3573--3573
 []    @texttt % all pos-si-ble code points. Cur-rently, the Mer-cury stan-dard
 li-brary can[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3574--3574
 []    @texttt % only read and write UTF-8 text files, so the en-tire range is 
supported[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3577--3577
 []    @texttt % Note that '\0' is not ac-cepted as a Mer-cury null char-ac-ter
 literal.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3578--3578
 []    @texttt % In-stead, a null char-ac-ter can be cre-ated us-ing `char.det_
from_int(0)'.[] 
[77]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3629--3629
 []    @texttt % True iff the char-ac-ter is a white-space char-ac-ter in the A
SCII range,[] 
[78] [79]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 3697--3697
 []    @texttt % Re-turns a dec-i-mal digit or up-per-case let-ter cor-re-spond
-ing to the value.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3725--3725
 []    @texttt % These code points should not be used for in-ter-change, but ma
y be used[] 
Chapter 16
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3742--3742
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[80]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3788--3788
 []    @texttt % Binds Func-tor-Name and Ar-ity to the name and ar-ity of func-
tor number[] 
[81]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 3797--3797
 []    @texttt % get_functor_with_names(Type, Func-tor-Num-ber, Func-tor-Name, 
Ar-ity, ArgTypes,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3800--3800
 []    @texttt % Binds Func-tor-Name and Ar-ity to the name and ar-ity of func-
tor number[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3802--3802
 []    @texttt % for the types of the ar-gu-ments of that func-tor, and ArgName
s to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3804--3804
 []    @texttt % not a dis-crim-i-nated union type, or if Func-tor-Num-ber is o
ut of range.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3812--3812
 []    @texttt % Re-turns Or-di-nal, where Or-di-nal is the po-si-tion in dec-l
a-ra-tion order[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3813--3813
 []    @texttt % for the spec-i-fied type of the func-tion sym-bol that is in p
o-si-tion I[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3834--3834
 []    @texttt % Given a type de-scrip-tor, a func-tor name and ar-ity, finds t
he functor[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3835--3835
 []    @texttt % num-ber and the types of its ar-gu-ments. It thus serves as th
e converse[] 
[82]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3847--3847
 []    @texttt % num-ber of ar-gu-ments sup-plied doesn't match the ar-ity of t
he selected[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3851--3851
 []@texttt :- func con-struct(type_desc, func-tor_number_lex, list(univ)) = uni
v is semidet.[] 
Chapter 17
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3871--3871
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3880--3880
 []@texttt % A cord is es-sen-tially a tree struc-ture with data stored in the 
leaf nodes.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3881--3881
 []@texttt % Join-ing two cords to-gether to con-struct a new cord is there-for
e an O(1)[] 
[83]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3887--3887
 []@texttt % While this data type presents a list-like in-ter-face, calls to li
st/1 and[] 
[84] [85] [86]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 4033--4033
 []@texttt :- mode foldl_pred(in(pred(in, in, out) is semidet), in, in, out) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4034--4034
 []@texttt :- mode foldl_pred(in(pred(in, mdi, muo) is semidet), in, mdi, muo) 
is semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4035--4035
 []@texttt :- mode foldl_pred(in(pred(in, di, uo) is semidet), in, di, uo) is s
emidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4044--4044
 []@texttt :- mode foldr_pred(in(pred(in, in, out) is semidet), in, in, out) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4045--4045
 []@texttt :- mode foldr_pred(in(pred(in, mdi, muo) is semidet), in, mdi, muo) 
is semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4046--4046
 []@texttt :- mode foldr_pred(in(pred(in, di, uo) is semidet), in, di, uo) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4051--4051
 []    @texttt % left to right. Each call to P trans-forms an el-e-ment of the 
in-put cord[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4062--4062
 []@texttt :- mode map_foldl(in(pred(in, out, in, out) is semidet), in, out, in
, out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4064--4064
 []@texttt :- mode map_foldl(in(pred(in, out, mdi, muo) is semidet), in, out, m
di, muo)[] 
[87]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 4079--4079
 []    @texttt cord(A)::in, cord(B)::out, C::in, C::out, D::in, D::out, E::in, 
E::out)[] 
Chapter 18
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4101--4101
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4109--4109
 []@texttt % Pred-i-cates for deal-ing with coun-ters, which are mech-a-nisms f
or allocating[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4110--4110
 []@texttt % con-sec-u-tively num-bered in-te-gers. The ab-strac-tion bar-rier 
elim-i-nates the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4112--4112
 []@texttt % the next num-ber to be handed out, or the last num-ber that was ha
nded out?".[] 
[88] Chapter 19
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4151--4151
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[89]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 4175--4175
 []    @texttt % i.e. of a type in which a sin-gle log-i-cal value may have mor
e than one[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4182--4182
 []    @texttt % pred-i-cate should re-turn a con-stant giv-ing the iden-tity o
f the type,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4186--4186
 []    @texttt % the pred-i-cate should pro-ceed as if the term were of a canon
-i-cal type.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4205--4205
 []    @texttt % (in-clud-ing univ), and re-turn rep-re-sen-ta-tion in-for-ma-t
ion for that type.[] 
[90] [91]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4281--4281
 []@texttt :- pred func-tor_number(T::in, func-tor_number_lex::out, int::out) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4297--4297
 []    @texttt % the func-tor of the data item. If the ar-gu-ment in-dex is out
 of range[] 
[92]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4314--4314
 []    @texttt % arg_cc/3 is sim-i-lar to arg/4, ex-cept that it han-dles ar-gu
-ments with[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4323--4323
 []    @texttt % its name rather than its po-si-tion. If Data has no ar-gu-ment
 with that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4329--4329
 []@texttt :- mode named_arg(in, in(canonicalize_or_do_not_allow), in, out) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4349--4349
 []    @texttt % Same as named_arg/4, ex-cept that for cases where named_arg/4 
would fail,[] 
[93]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4361--4361
 []    @texttt % of the func-tor, Ar-ity to the ar-ity of this data item, and A
rguments[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4365--4365
 []    @texttt % The cost of call-ing de-con-struct de-pends greatly on how man
y arguments[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4376--4376
 []@texttt :- mode de-con-struct(in, in(include_details_cc), out, out, out) is 
cc_multi.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4381--4381
 []    @texttt % Given a data item (Data) which has a dis-crim-i-nated union ty
pe, binds[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4384--4384
 []    @texttt % ar-gu-ments of the func-tor. The ar-gu-ments in the list are e
ach of type[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4392--4392
 []@texttt :- mode de-con-struct_du(in, in(include_details_cc), out, out, out) 
is cc_nondet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4398--4398
 []    @texttt % lim-ited_deconstruct works like de-con-struct, but if the ar-i
ty of T is[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4399--4399
 []    @texttt % greater than MaxAr-ity, lim-ited_deconstruct fails. This is us
e-ful in[] 
[94] Chapter 20
Overfull \hbox (26.43913pt too wide) in paragraph at lines 4427--4427
 []@texttt % Copy-right (C) 1995-1999,2002-2007, 2010-2011 The Uni-ver-sity of 
Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4428--4428
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4436--4436
 []@texttt % This mod-ule de-fines a data type rep-re-sent-ing di-rected graphs
.  A directed[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4437--4437
 []@texttt % graph of type di-graph(T) is log-i-cally equiv-a-lent to a set of 
ver-tices of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4438--4438
 []@texttt % type T, and a set of edges of type pair(T).  The end-points of eac
h edge[] 
[95]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 4461--4461
 []    @texttt % The ab-stract type that in-dexes ver-tices in a di-graph.  Eac
h key is only[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4462--4462
 []    @texttt % valid with the di-graph it was cre-ated from -- pred-i-cates a
nd functions[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4483--4483
 []    @texttt % di-graph.search_key re-turns the key as-so-ci-ated with a ver-
tex.  Fails if[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4489--4489
 []    @texttt % di-graph.lookup_key re-turns the key as-so-ci-ated with a ver-
tex.  Aborts if[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4499--4499
 []@texttt :- pred di-graph.lookup_vertex(digraph(T)::in, di-graph_key(T)::in, 
T::out)[] 
[96]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 4530--4530
 []@texttt :- func di-graph.add_assoc_list(assoc_list(digraph_key(T), digraph_k
ey(T)),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4532--4532
 []@texttt :- pred di-graph.add_assoc_list(assoc_list(digraph_key(T), digraph_k
ey(T))::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4538--4538
 []@texttt :- func di-graph.delete_edge(digraph_key(T), di-graph_key(T), di-gra
ph(T)) =[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4545--4545
 []@texttt :- func di-graph.delete_assoc_list(assoc_list(digraph_key(T), digrap
h_key(T)),[] 
[97]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 4564--4564
 []    @texttt % Given key x, di-graph.lookup_from re-turns the set of keys y s
uch that[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4567--4567
 []@texttt :- func di-graph.lookup_from(digraph(T), di-graph_key(T)) = set(digr
aph_key(T)).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4578--4578
 []    @texttt % Given a key y, di-graph.lookup_to re-turns the set of keys x s
uch that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4581--4581
 []@texttt :- func di-graph.lookup_to(digraph(T), di-graph_key(T)) = set(digrap
h_key(T)).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4594--4594
 []    @texttt % di-graph.to_assoc_list turns a di-graph into a list of pairs o
f vertices,[] 
[98]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4598--4598
 []@texttt :- pred di-graph.to_assoc_list(digraph(T)::in, as-soc_list(T, T)::ou
t) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4600--4600
 []    @texttt % di-graph.to_key_assoc_list turns a di-graph into a list of pai
rs of keys,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4608--4608
 []    @texttt % di-graph.from_assoc_list turns a list of pairs of ver-tices in
to a digraph.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4611--4611
 []@texttt :- pred di-graph.from_assoc_list(assoc_list(T, T)::in, di-graph(T)::
out) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4615--4615
 []    @texttt % di-graph.dfs(G, Key, Dfs) is true if Dfs is a depth-first sort
-ing of G[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4627--4627
 []@texttt :- func di-graph.dfsrev(digraph(T), di-graph_key(T)) = list(digraph_
key(T)).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4632--4632
 []    @texttt % i.e. a list of all the keys in G such that all keys for chil-d
ren of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4634--4634
 []    @texttt % di-graph is cyclic, the po-si-tion in which cy-cles are bro-ke
n (that is,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4640--4640
 []    @texttt % di-graph.dfsrev(G, Df-s-Rev) is true if Df-s-Rev is a re-verse
 depth-first[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4641--4641
 []    @texttt % sort-ing of G.  That is, Df-s-Rev is the re-verse of Dfs from 
digraph.dfs/2.[] 
[99]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4644--4644
 []@texttt :- pred di-graph.dfsrev(digraph(T)::in, list(digraph_key(T))::out) i
s det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4647--4647
 []    @texttt % sort-ing of G start-ing at Key, as-sum-ing we have al-ready vi
s-ited !.Visit[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4650--4650
 []    @texttt % par-ent.  !.Visit al-lows us to ini-tialise a set of pre-vi-ou
sly visited[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4653--4653
 []@texttt :- pred di-graph.dfs(digraph(T)::in, di-graph_key(T)::in, digraph_ke
y_set(T)::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4658--4658
 []    @texttt % al-ready vis-ited !.Visit nodes, ie the re-verse of Dfs from d
igraph.dfs/5.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4672--4672
 []    @texttt % di-graph.inverse(G, G') is true iff the do-mains of G and G' a
re equal,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4673--4673
 []    @texttt % and for all x, y in this do-main, (x,y) is an edge in G iff (y
,x) is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4680--4680
 []    @texttt % of the di-graphs G1 and G2.  That is, there is an edge (x,y) i
n G iff[] 
[100]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4695--4695
 []@texttt :- pred di-graph.components(digraph(T)::in, set(set(digraph_key(T)))
::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4702--4702
 []@texttt :- pred di-graph.cliques(digraph(T)::in, set(set(digraph_key(T)))::o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4704--4704
 []    @texttt % di-graph.reduced(G, R) is true if R is the re-duced di-graph (
di-graph of[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4710--4710
 []    @texttt % As above, but also re-turn a map from each key in the orig-i-n
al digraph[] 
[101]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4738--4738
 []    @texttt % di-graph.rtc(G, RTC) is true if RTC is the re-flex-ive tran-si
-tive closure[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4744--4744
 []    @texttt % di-graph.traverse(G, Pro-cessVer-tex, Pro-cessEdge) will tra-v
erse a digraph[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4745--4745
 []    @texttt % call-ing Pro-cessVer-tex for each ver-tex in the di-graph and 
Pro-cessEdge for[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4746--4746
 []    @texttt % each edge in the di-graph.  Each ver-tex is pro-cessed fol-low
ed by all the[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4747--4747
 []    @texttt % edges orig-i-nat-ing at that ver-tex, un-til all ver-tices hav
e been processed.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4749--4749
 []@texttt :- pred di-graph.traverse(digraph(T), pred(T, A, A), pred(T, T, A, A
), A, A).[] 
Chapter 21
Overfull \hbox (49.43388pt too wide) in paragraph at lines 4766--4766
 []@texttt % Copy-right (C) 1994-1995,1997,1999-2000,2002-2011 The Uni-ver-sity
 of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4767--4767
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4778--4778
 []@texttt % sep-a-ra-tors in paths passed to them to the nor-mal sep-a-ra-tor 
for the platform,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4781--4781
 []@texttt % Du-pli-cate di-rec-tory sep-a-ra-tors and trail-ing sep-a-ra-tors 
are also removed[] 
[102] [103]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4840--4840
 []    @texttt % so `dir.split_name("C:foo, _, _)' will fail when run-ning un-d
er Cygwin.[] 
[104]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4878--4878
 []    @texttt % Trail-ing slashes in Path-Name are re-moved first, if that doe
sn't change[] 
[105]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 4941--4941
 []@texttt :- pred dir.current_directory(io.res(string)::out, io::di, io::uo) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4949--4949
 []@texttt :- pred dir.make_directory(string::in, io.res::out, io::di, io::uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4952--4952
 []    @texttt % Fails if the di-rec-tory al-ready ex-ists, or the par-ent di-r
ec-tory doesn't.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4954--4954
 []@texttt :- pred dir.make_single_directory(string::in, io.res::out, io::di, i
o::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4961--4961
 []    @texttt % A pred-i-cate passed to dir.foldl2 to pro-cess each en-try in 
a directory.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4966--4966
 []@texttt :- inst dir.foldl_pred == (pred(in, in, in, out, in, out, di, uo) is
 det).[] 
[106]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4972--4972
 []    @texttt % Pro-cess-ing will stop if the boolean (Con-tinue) out-put of P
 is bound[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4983--4983
 []    @texttt % Sub-di-rec-to-ries are pro-cessed depth-first, pro-cess-ing th
e di-rec-tory itself[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4984--4984
 []    @texttt % be-fore its con-tents. If `Fol-lowSym-Links' is `yes', re-cur-
sively process[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4993--4993
 []    @texttt % Im-ple-ment brace ex-pan-sion, as in sh: re-turn the se-quence
 of strings[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4997--4997
 []    @texttt % The fol-low-ing is the doc-u-men-ta-tion of brace ex-pan-sion 
from the sh manual:[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5000--5000
 []    @texttt %   gen-er-ated. This mech-a-nism is sim-i-lar to path-name ex-p
an-sion, but the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5001--5001
 []    @texttt %   file-names gen-er-ated need not ex-ist. Pat-terns to be brac
e expanded[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5004--5004
 []    @texttt %   op-tional post-script. The pream-ble is pre-fixed to each st
ring contained[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5008--5008
 []    @texttt %   Brace ex-pan-sions may be nested. The re-sults of each ex-pa
nded string[] 
Chapter 22 [107]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5026--5026
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5035--5035
 []@texttt % which can be con-verted to and from in-te-gers with-out loss of in
formation.[] 
Chapter 23
Overfull \hbox (37.93651pt too wide) in paragraph at lines 5060--5060
 []@texttt % Copy-right (C) 1995-1997, 1999, 2003-2006, 2011 The Uni-ver-sity o
f Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5061--5061
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[108]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 5094--5094
 []    @texttt % If this item is known to the equiv-a-lence class, re-turn the 
id of its[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5095--5095
 []    @texttt % par-ti-tion. The only use that the caller can make of the par-
ti-tion id[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5096--5096
 []    @texttt % is to check whether two items in the same equiv-a-lence calls 
have the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5099--5099
 []    @texttt % to stay the same as an eqv-class is up-dated, so such com-par-
isons will[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 5102--5102
 []    @texttt % If you want to check whether two items are in the same equiv-a
-lence class,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5105--5105
 []    @texttt % How-ever, if you want to per-form this check on X and Y1, on X
 and Y2,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5106--5106
 []    @texttt % ... X and Yn, then call-ing eqv-class.partition_id on X just o
nce and[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5107--5107
 []    @texttt % com-par-ing this with the par-ti-tion_ids of the Yi will be mo
re efficient.[] 
[109]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5124--5124
 []@texttt :- pred eqv-class.ensure_element(T::in, eqv-class(T)::in, eqvclass(T
)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5132--5132
 []@texttt :- pred eqv-class.new_element(T::in, eqv-class(T)::in, eqv-class(T):
:out) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5143--5143
 []@texttt :- pred eqv-class.ensure_corresponding_equivalences(list(T)::in, lis
t(T)::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5155--5155
 []@texttt :- pred eqv-class.same_eqvclass(eqvclass(T)::in, T::in, T::in) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5159--5159
 []@texttt :- pred eqv-class.same_eqvclass_list(eqvclass(T)::in, list(T)::in) i
s semidet.[] 
[110]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5164--5164
 []@texttt :- pred eqv-class.partition_set(eqvclass(T)::in, set(set(T))::out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5169--5169
 []@texttt :- pred eqv-class.partition_list(eqvclass(T)::in, list(set(T))::out)
 is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5175--5175
 []@texttt :- pred eqv-class.partition_set_to_eqvclass(set(set(T))::in, eqvclas
s(T)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5198--5198
 []@texttt :- func eqv-class.remove_equivalent_elements(eqvclass(T), T) = eqvcl
ass(T).[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 5202--5202
 []    @texttt % Given a func-tion, di-vide each par-ti-tion in the orig-i-nal 
equiv-a-lence class[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5204--5204
 []    @texttt % par-ti-tion in the new equiv-a-lence class if and only if the 
func-tion maps[] 
[111] Chapter 24
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5222--5222
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5230--5230
 []@texttt % This file is in-tended to hold things re-lated to Er-lang for the 
Er-lang grade.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5233--5233
 []@texttt % Cur-rently it con-tains a server that is started at pro-gram initi
alisation[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5234--5234
 []@texttt % to em-u-late global vari-ables.  Lookups and up-dates of global mu
-ta-bles work by[] 
Chapter 25
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5258--5258
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[112]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 5270--5270
 []@texttt % `pragma for-eign_export' throws an ex-cep-tion which is not caught
 within that[] 
[113] [114] [115]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 5414--5414
 []@texttt :- pred in-cre-men-tal_try_all(pred(T), pred(exception_result(T), A,
 A), A, A).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5440--5440
 []@texttt :- pred fi-nally(pred(T, io, io), T, pred(io.res, io, io), io.res, i
o, io).[] 
[116] Chapter 26
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5474--5474
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[117] [118] [119] [120] [121] Chapter 27
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5709--5709
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[122] Chapter 28
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5753--5753
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5761--5761
 []@texttt % This mod-ule ex-ports the pred-i-cate getopt_io.process_options/6,
 which can be[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5764--5764
 []@texttt % This ver-sion al-lows both short (single-character) op-tions and G
NU-style long[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5765--5765
 []@texttt % op-tions. It also has the GNU ex-ten-sion of rec-og-niz-ing op-tio
ns any-where in[] 
[123]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 5801--5801
 []@texttt % For the "sim-ple" op-tion types, if there are mul-ti-ple oc-cur-re
nces of the same[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5802--5802
 []@texttt % op-tion on the command-line, then the last (right-most) oc-cur-ren
ce will take[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5806--5806
 []@texttt % With the ex-cep-tion of file_special, the "spe-cial" op-tion types
 are handled[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5807--5807
 []@texttt % by a spe-cial op-tion han-dler (see `spe-cial_handler' be-low), wh
ich may perform[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5808--5808
 []@texttt % ar-bi-trary mod-i-fi-ca-tions to the op-tion_table.  For ex-am-ple
, an op-tion which[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5809--5809
 []@texttt % is not yet im-ple-mented could be han-dled by a spe-cial han-dler 
which produces[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5811--5811
 []@texttt % "prim-i-tive" op-tions could be han-dled by a spe-cial han-dler wh
ich sets those[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5814--5814
 []@texttt % It is an er-ror to use a "spe-cial" op-tion for which there is no 
han-dler, or[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5826--5826
 []@texttt % en-tirely by this mod-ule. It al-ways takes a sin-gle ar-gu-ment, 
a file name.[] 
[124]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 5828--5828
 []@texttt % con-tents into a se-quence of words sep-a-rated by white space, an
d interpreting[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5836--5836
 []@texttt % pro-cess-ing will im-me-di-ately ter-mi-nate, with-out pro-cess-in
g any remaining[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 5854--5854
 []@texttt % getopt_io.process_options(OptionOps, Args, Op-tionArgs, NonOp-tion
Args, Result)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5859--5859
 []@texttt %   `Op-tionTable' is a map from a user-defined op-tion type to opti
on_data.[] 
[125]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 5884--5884
 []@texttt %   The canon-i-cal ex-am-ples of spe-cial op-tions are -O op-tions 
in compilers,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5887--5887
 []@texttt :- pred getopt_io.process_options(option_ops(OptionType)::in(option_
ops),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5888--5888
 []    @texttt list(string)::in, list(string)::out, maybe_option_table(OptionTy
pe)::out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5891--5891
 []@texttt :- pred getopt_io.process_options(option_ops(OptionType)::in(option_
ops),[] 
[126] [127] [128]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6016--6016
 []@texttt :- pred getopt_io.lookup_bool_option(option_table(Option)::in, Optio
n::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6018--6018
 []@texttt :- func getopt_io.lookup_bool_option(option_table(Option), Op-tion) 
= bool.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6020--6020
 []@texttt :- pred getopt_io.lookup_int_option(option_table(Option)::in, Option
::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6024--6024
 []@texttt :- pred getopt_io.lookup_string_option(option_table(Option)::in, Opt
ion::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6026--6026
 []@texttt :- func getopt_io.lookup_string_option(option_table(Option), Op-tion
) = string.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 6028--6028
 []@texttt :- pred getopt_io.lookup_maybe_int_option(option_table(Option)::in, 
Option::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6030--6030
 []@texttt :- func getopt_io.lookup_maybe_int_option(option_table(Option), Op-t
ion) =[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6035--6035
 []@texttt :- func getopt_io.lookup_maybe_string_option(option_table(Option), O
p-tion) =[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6040--6040
 []@texttt :- func getopt_io.lookup_accumulating_option(option_table(Option), O
p-tion) =[] 
Chapter 29
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6055--6055
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[129]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6063--6063
 []@texttt % This mod-ule ex-ports the pred-i-cate getopt.process_options/4, wh
ich can be[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6066--6066
 []@texttt % This ver-sion al-lows both short (single-character) op-tions and G
NU-style long[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6067--6067
 []@texttt % op-tions. It also has the GNU ex-ten-sion of rec-og-niz-ing op-tio
ns any-where in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6102--6102
 []@texttt % A fur-ther spe-cial op-tion, file_special, is sup-ported only by t
he getopt_io[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6103--6103
 []@texttt % mod-ule, be-cause it re-quires pro-cess_options to take a pair of 
I/O state[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6106--6106
 []@texttt % For the "sim-ple" op-tion types, if there are mul-ti-ple oc-cur-re
nces of the same[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6107--6107
 []@texttt % op-tion on the command-line, then the last (right-most) oc-cur-ren
ce will take[] 
[130]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6111--6111
 []@texttt % The "spe-cial" op-tion types are han-dled by a spe-cial op-tion ha
n-dler (see[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6112--6112
 []@texttt % `spe-cial_handler' be-low), which may per-form ar-bi-trary mod-i-f
i-ca-tions to the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6113--6113
 []@texttt % op-tion_table.  For ex-am-ple, an op-tion which is not yet im-ple-
mented could be[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6114--6114
 []@texttt % han-dled by a spe-cial han-dler which pro-duces an er-ror re-port,
 or an option[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6118--6118
 []@texttt % It is an er-ror to use a "spe-cial" op-tion for which there is no 
han-dler, or[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6134--6134
 []@texttt % pro-cess-ing will im-me-di-ately ter-mi-nate, with-out pro-cess-in
g any remaining[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6151--6151
 []@texttt % getopt.process_options(OptionOps, Args, Op-tionArgs, NonOp-tionArg
s, Result)[] 
[131]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6156--6156
 []@texttt %   `Op-tionTable' is a map from a user-defined op-tion type to opti
on_data.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6181--6181
 []@texttt %   The canon-i-cal ex-am-ples of spe-cial op-tions are -O op-tions 
in compilers,[] 
[132] [133] [134]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6320--6320
 []@texttt :- pred getopt.lookup_string_option(option_table(Option)::in, Option
::in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6322--6322
 []@texttt :- func getopt.lookup_string_option(option_table(Option), Op-tion) =
 string.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6324--6324
 []@texttt :- pred getopt.lookup_maybe_int_option(option_table(Option)::in, Opt
ion::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6331--6331
 []@texttt :- func getopt.lookup_maybe_string_option(option_table(Option), Op-t
ion) =[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6336--6336
 []@texttt :- func getopt.lookup_accumulating_option(option_table(Option), Op-t
ion) =[] 
[135] Chapter 30 Chapter 31 Chapter 32
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6367--6367
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[136]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 6411--6411
 []    @texttt % XXX This is all fake un-til the com-piler can han-dle nested u
nique modes.[] 
[137]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6459--6459
 []    @texttt % De-fault hash_preds for ints and strings and ev-ery-thing (buw
ahahaha!)[] 
[138]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 6487--6487
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6503--6503
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6513--6513
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6523--6523
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 
[139]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6557--6557
 []@texttt :- func from_assoc_list(hash_pred(K)::in(hash_pred), as-soc_list(K, 
V)::in) =[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6563--6563
 []@texttt :- mode fold(func(in, in, in) = out is det, hash_table_ui, in) = out
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6564--6564
 []@texttt :- mode fold(func(in, in, di) = uo is det, hash_table_ui, di) = uo i
s det.[] 
[140] Chapter 33
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6594--6594
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6602--6602
 []@texttt % This mod-ule pro-vides the `in-jec-tion' ADT.  An in-jec-tion is l
ike a `map'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6603--6603
 []@texttt % (see map.m) but it al-lows ef-fi-cient re-verse lookups, sim-i-lar
ly to `bimap'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6605--6605
 []@texttt % or more.  The dif-fer-ence be-tween an in-jec-tion and a bimap is 
that there[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6606--6606
 []@texttt % can be val-ues in the range of the in-jec-tion that are not re-tur
ned for any[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6609--6609
 []@texttt % The in-vari-ants on this data struc-ture, which are en-forced by t
his module,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6612--6612
 []@texttt % 1) For any key K, if a for-ward lookup suc-ceeds with value V then
 a reverse[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6615--6615
 []@texttt % 2) For any value V, if a re-verse lookup suc-ceeds with key K then
 a forward[] 
[141] [142]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6676--6676
 []@texttt :- pred in-jec-tion.reverse_lookup(injection(K, V)::in, K::out, V::i
n) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6699--6699
 []@texttt :- func in-jec-tion.insert(injection(K, V), K, V) = in-jec-tion(K, V
) is semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6714--6714
 []@texttt :- func in-jec-tion.update(injection(K, V), K, V) = in-jec-tion(K, V
) is semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6718--6718
 []    @texttt % As above, but throws an ex-cep-tion if the key does not al-rea
dy exist,[] 
[143]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6729--6729
 []@texttt :- func in-jec-tion.set(injection(K, V), K, V) = in-jec-tion(K, V) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6733--6733
 []    @texttt % As above, but throws an ex-cep-tion if the value is al-ready a
ssociated[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6740--6740
 []    @texttt % In-sert key-value pairs from an as-soc_list into the given inj
ection.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6743--6743
 []@texttt :- func in-jec-tion.insert_from_assoc_list(assoc_list(K, V), in-jec-
tion(K, V)) =[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6759--6759
 []@texttt :- func in-jec-tion.set_from_assoc_list(assoc_list(K, V), in-jec-tio
n(K, V)) =[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6767--6767
 []@texttt :- func in-jec-tion.det_set_from_assoc_list(assoc_list(K, V), in-jec
-tion(K, V)) =[] 
[144]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 6778--6778
 []@texttt :- pred in-jec-tion.insert_from_corresponding_lists(list(K)::in, lis
t(V)::in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 6786--6786
 []@texttt :- pred in-jec-tion.det_insert_from_corresponding_lists(list(K)::in,
 list(V)::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6803--6803
 []@texttt :- pred in-jec-tion.det_set_from_corresponding_lists(list(K)::in, li
st(V)::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6811--6811
 []@texttt :- pred in-jec-tion.delete_key(K::in, in-jec-tion(K, V)::in, in-jec-
tion(K, V)::out)[] 
[145]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6824--6824
 []@texttt :- func in-jec-tion.delete_keys(injection(K, V), list(K)) = in-jec-t
ion(K, V).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6830--6830
 []@texttt :- func in-jec-tion.delete_values(injection(K, V), list(V)) = in-jec
-tion(K, V).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6837--6837
 []@texttt :- func in-jec-tion.merge(injection(K, V), in-jec-tion(K, V)) = in-j
ec-tion(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6845--6845
 []@texttt :- func in-jec-tion.overlay(injection(K, V), in-jec-tion(K, V)) = in
-jec-tion(K, V).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6854--6854
 []@texttt :- pred in-jec-tion.apply_forward_map_to_list(injection(K, V)::in, l
ist(K)::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6862--6862
 []@texttt :- pred in-jec-tion.apply_reverse_map_to_list(injection(K, V)::in, l
ist(V)::in,[] 
[146]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 6870--6870
 []@texttt :- func in-jec-tion.map_keys(func(V, K) = L, in-jec-tion(K, V)) = in
-jec-tion(L, V).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6888--6888
 []@texttt :- pred in-jec-tion.map_values(pred(K, V, W)::in(pred(in, in, out) i
s det),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6894--6894
 []@texttt :- pred in-jec-tion.forward_map(injection(K, V)::in, map(K, V)::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6899--6899
 []@texttt :- pred in-jec-tion.reverse_map(injection(K, V)::in, map(V, K)::out)
 is det.[] 
Chapter 34 [147]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6913--6913
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6955--6955
 []    @texttt % op-tion-ally pre-ceded by a plus or mi-nus sign.  For bases > 
10, digits[] 
[148] [149] Chapter 35
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7024--7024
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7032--7032
 []@texttt % Pred-i-cates and func-tions for deal-ing with machine-size in-te-g
er numbers.[] 
[150] [151]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7126--7126
 []    @texttt % Throws a `math.domain_error' ex-cep-tion if the right operand 
is zero.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7137--7137
 []    @texttt % Throws a `math.domain_error' ex-cep-tion if the right operand 
is zero.[] 
[152]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7163--7163
 []    @texttt % Throws a `math.domain_error' ex-cep-tion if the right operand 
is zero.[] 
[153] [154] [155]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7295--7295
 []@texttt :- mode int.fold_down(pred(in, mdi, muo) is det, in, in, mdi, muo) i
s det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7328--7328
 []@texttt :- mode int.fold_up2(pred(in, in, out, mdi, muo) is det, in, in, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7334--7334
 []@texttt :- mode int.fold_up2(pred(in, in, out, ar-ray_di, ar-ray_uo) is det,
 in, in,[] 
[156]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7353--7353
 []@texttt :- mode int.fold_down2(pred(in, in, out, in, out) is det, in, in, in
, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7355--7355
 []@texttt :- mode int.fold_down2(pred(in, in, out, mdi, muo) is det, in, in, i
n, out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7357--7357
 []@texttt :- mode int.fold_down2(pred(in, in, out, di, uo) is det, in, in, in,
 out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7361--7361
 []@texttt :- mode int.fold_down2(pred(in, in, out, ar-ray_di, ar-ray_uo) is de
t, in, in,[] 
[157] Chapter 36
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7394--7394
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7405--7405
 []@texttt % the un-der-ly-ing sys-tem.  We en-sure ref-er-en-tial trans-parenc
y by pass-ing around[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7406--7406
 []@texttt % a ``state-of-the-world'' ar-gu-ment us-ing unique modes. The com-p
iler will check[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7407--7407
 []@texttt % that the state of the world ar-gu-ment is prop-erly single-threade
d, and will[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7410--7410
 []@texttt % At-tempt-ing any op-er-a-tion on a stream which has al-ready been 
closed results[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7413--7413
 []@texttt % In mul-ti-threaded pro-grams, each thread in the pro-gram has its 
own set of[] 
[158] [159] [160]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 7542--7542
 []@texttt :- pred io.read_line_as_string(io.result(string)::out, io::di, io::u
o) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7544--7544
 []    @texttt % Reads all the char-ac-ters (code points) from the cur-rent in-
put stream[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7547--7547
 []@texttt :- pred io.read_file(io.maybe_partial_res(list(char))::out, io::di, 
io::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7550--7550
 []    @texttt % Reads all the char-ac-ters (code points) from the cur-rent in-
put stream[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7563--7563
 []@texttt :- pred io.input_stream_foldl(pred(char, T, T), T, io.maybe_partial_
res(T),[] 
[161]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 7576--7576
 []@texttt :- mode io.input_stream_foldl_io((pred(in, di, uo) is cc_multi), out
, di, uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7586--7586
 []@texttt :- mode io.input_stream_foldl2_io((pred(in, in, out, di, uo) is cc_m
ulti),[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7589--7589
 []    @texttt % Ap-plies the given clo-sure to each char-ac-ter (code point) r
ead from the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7590--7590
 []    @texttt % in-put stream in turn, un-til eof or er-ror, or the clo-sure r
e-turns `no' as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7608--7608
 []    @texttt % `io.putback_char' will throw an io.error ex-cep-tion if ungetc
() fails.[] 
[162]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 7620--7620
 []@texttt :- pred io.read_char_unboxed(io.input_stream::in, io.result::out, ch
ar::out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7638--7638
 []@texttt :- pred io.read_line_as_string(io.input_stream::in, io.result(string
)::out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7641--7641
 []    @texttt % Reads all the char-ac-ters (code points) from the given in-put
 stream until[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7647--7647
 []    @texttt % Reads all the char-ac-ters from the given in-put stream un-til
 eof or error.[] 
[163]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 7689--7689
 []    @texttt % Ap-plies the given clo-sure to each char-ac-ter (code point) r
ead from the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7690--7690
 []    @texttt % in-put stream in turn, un-til eof or er-ror, or the clo-sure r
e-turns `no' as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7708--7708
 []    @texttt % `io.putback_char' will throw an io.error ex-cep-tion if ungetc
() fails.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7710--7710
 []@texttt :- pred io.putback_char(io.input_stream::in, char::in, io::di, io::u
o) is det.[] 
[164]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 7712--7712
 []    @texttt % Reads a ground term of any type, writ-ten us-ing stan-dard Mer
-cury syntax,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7713--7713
 []    @texttt % from the cur-rent or spec-i-fied in-put stream. The type of th
e term read[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7716--7716
 []    @texttt % First, the in-put stream is read un-til an end-of-term to-ken,
 end-of-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7718--7718
 []    @texttt % fol-lowed by white-space. The trail-ing white-space is left in
 the input[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7721--7721
 []    @texttt % Then, the re-sult is de-ter-mined ac-cord-ing to the to-kens r
ead. If there[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7722--7722
 []    @texttt % were no non-whitespace char-ac-ters be-fore the end of file, t
hen `io.read'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7723--7723
 []    @texttt % re-turns `eof'. If the to-kens read formed a syn-tac-ti-cally 
cor-rect ground[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7724--7724
 []    @texttt % term of the cor-rect type, fol-lowed by an end-of-term to-ken,
 then it[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7725--7725
 []    @texttt % re-turns `ok(Term)'. If char-ac-ters read from the in-put stre
am did not form[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7726--7726
 []    @texttt % a syn-tac-ti-cally cor-rect term, or if the term read is not a
 ground term,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7727--7727
 []    @texttt % or if the term is not a valid term of the ap-pro-pri-ate type,
 or if an[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7728--7728
 []    @texttt % I/O er-ror is en-coun-tered, then it re-turns `er-ror(Message,
 LineNumber)'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7738--7738
 []            @texttt % line num-ber, off-set of start of line, cur-rent off-s
et (the first[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7739--7739
 []            @texttt % two are used only for the pur-poses of com-put-ing ter
m_contexts,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7742--7742
 []    @texttt % io.read_from_string(FileName, String, Max-Pos, Re-sult, Posn0,
 Posn):[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7750--7750
 []    @texttt % end-of-stream -- this is the up-per bound for Posn. (In the us
ual case,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7752--7752
 []    @texttt % WARN-ING: if Max-Pos > length of String then the be-haviour is
 UNDEFINED.[] 
[165]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7774--7774
 []    @texttt % io.print/4 writes its sec-ond ar-gu-ment to the out-put stream
 specified[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7779--7779
 []    @texttt % If the ar-gu-ment is just a sin-gle string or char-ac-ter, it 
will be printed[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7780--7780
 []    @texttt % out ex-actly as is (un-quoted). If the ar-gu-ment is of type u
niv, then[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7783--7783
 []    @texttt % io.print/5 is the same as io.print/4 ex-cept that it al-lows t
he caller[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7784--7784
 []    @texttt % to spec-ify how non-canonical types should be han-dled. io.pri
nt/3 and[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7785--7785
 []    @texttt % io.print/4 im-plic-itly spec-ify `canon-i-cal-ize' as the meth
od for handling[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7786--7786
 []    @texttt % non-canonical types. This means that for higher-order types, o
r types[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7787--7787
 []    @texttt % with user-defined equal-ity ax-ioms, or types de-fined us-ing 
the foreign[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7788--7788
 []    @texttt % lan-guage in-ter-face (i.e. pragma for-eign_type), the text ou
t-put will[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7792--7792
 []    @texttt % `in-clude_details_cc' rather than `canon-i-cal-ize'. This mean
s that it will[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7793--7793
 []    @texttt % print the de-tails of non-canonical types. How-ever, it has de
terminism[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7796--7796
 []    @texttt % Note that even if `in-clude_details_cc' is spec-i-fied, some i
mplementations[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7797--7797
 []    @texttt % may not be able to print all the de-tails for higher-order typ
es or types[] 
[166]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 7804--7804
 []@texttt :- pred io.print(io.output_stream, de-con-struct.noncanon_handling, 
T, io, io).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7813--7813
 []    @texttt % io.write/4 writes its sec-ond ar-gu-ment to the out-put stream
 specified[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7815--7815
 []    @texttt % of any type. The ar-gu-ment is writ-ten in a for-mat that is i
n-tended to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7818--7818
 []    @texttt % Strings and char-ac-ters are al-ways printed out in quotes, us
-ing backslash[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7820--7820
 []    @texttt % us-ing the for-eign lan-guage in-ter-face (pragma for-eign_cod
e), the text[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7821--7821
 []    @texttt % out-put will only de-scribe the type that is be-ing printed, n
ot the value,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7823--7823
 []    @texttt % con-tain-ing ex-is-ten-tial quan-ti-fiers, the type `type_desc
' and closure[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7824--7824
 []    @texttt % types, the re-sult may not be parsable by `io.read', ei-ther. 
But in all[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7825--7825
 []    @texttt % other cases the for-mat used is stan-dard Mer-cury syn-tax, an
d if you append[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7826--7826
 []    @texttt % a pe-riod and new-line (".\n"), then the re-sults can be read 
in again[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7829--7829
 []    @texttt % io.write/5 is the same as io.write/4 ex-cept that it al-lows t
he caller[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7830--7830
 []    @texttt % to spec-ify how non-canonical types should be han-dled. io.wri
te_cc/3[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7831--7831
 []    @texttt % is the same as io.write/3 ex-cept that it spec-i-fies `include
_details_cc'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7838--7838
 []@texttt :- pred io.write(io.output_stream, de-con-struct.noncanon_handling, 
T, io, io).[] 
[167]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7860--7860
 []@texttt :- pred io.write_string(io.output_stream::in, string::in, io::di, io
::uo)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7878--7878
 []@texttt :- pred io.write_char(io.output_stream::in, char::in, io::di, io::uo
) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7886--7886
 []@texttt :- pred io.write_int(io.output_stream::in, int::in, io::di, io::uo) 
is det.[] 
[168]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7899--7899
 []    @texttt % out-put stream. (See the doc-u-men-ta-tion of string.format fo
r details.)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7901--7901
 []@texttt :- pred io.format(string::in, list(io.poly_type)::in, io::di, io::uo
) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7903--7903
 []    @texttt % For-mats the spec-i-fied ar-gu-ment list ac-cord-ing to the fo
r-mat string,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7905--7905
 []    @texttt % out-put stream. (See the doc-u-men-ta-tion of string.format fo
r details.)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7907--7907
 []@texttt :- pred io.format(io.output_stream::in, string::in, list(io.poly_typ
e)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7934--7934
 []@texttt :- mode io.write_list(in, in, in, pred(in, di, uo) is det, di, uo) i
s det.[] 
[169] [170]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7996--7996
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the cur-
rent input[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8002--8002
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the spec
-i-fied input[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8009--8009
 []    @texttt % Re-turn the line num-ber of the cur-rent in-put stream. Lines 
are normally[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8015--8015
 []    @texttt % Re-turn the line num-ber of the spec-i-fied in-put stream. Lin
es are normally[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8019--8019
 []@texttt :- pred io.get_line_number(io.input_stream::in, int::out, io::di, io
::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8036--8036
 []    @texttt % At-tempts to open a file for out-put, and if suc-cess-ful sets
 the current[] 
[171]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8042--8042
 []    @texttt % Closes the cur-rent out-put stream; the de-fault out-put strea
m reverts[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8073--8073
 []@texttt :- pred io.set_output_stream(io.output_stream::in, io.output_stream:
:out,[] 
[172]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 8102--8102
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the spec
-i-fied stream.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8110--8110
 []    @texttt % Re-turn the line num-ber of the cur-rent out-put stream. Lines
 are normally[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8116--8116
 []    @texttt % Re-turn the line num-ber of the spec-i-fied out-put stream. Li
nes are normally[] 
[173]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8142--8142
 []    @texttt % Reads a bi-nary rep-re-sen-ta-tion of a term of type T from th
e specified[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8147--8147
 []    @texttt % then the re-sults are not guar-an-teed to be mean-ing-ful. An-
other caveat[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8148--8148
 []    @texttt % is that higher-order types can-not be read. (If you try, you w
ill get[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8168--8168
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than th
e size[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8176--8176
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than th
e size[] 
[174]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8183--8183
 []    @texttt % io.read_bitmap(StartByte, Num-Bytes, !Bit-map, Bytes-Read, Re-
sult, !IO)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8188--8188
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than Nu
mBytes,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8201--8201
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than Nu
mBytes,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8214--8214
 []    @texttt % Reads all the bytes from the given bi-nary in-put stream into 
a bitmap[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8223--8223
 []@texttt :- pred io.read_binary_file(io.result(list(int))::out, io::di, io::u
o) is det.[] 
[175]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8231--8231
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8241--8241
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8251--8251
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8259--8259
 []    @texttt in(pred(in, in, out, di, uo) is cc_multi), in, out, di, uo) is c
c_multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8261--8261
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8262--8262
 []    @texttt % in-put stream in turn, un-til eof or er-ror, or the clo-sure r
e-turns `no'[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8270--8270
 []    @texttt (pred(in, out, in, out, di, uo) is cc_multi), in, out, di, uo) i
s cc_multi.[] 
[176]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 8279--8279
 []@texttt :- mode io.binary_input_stream_foldl(in, in(pred(in, in, out) is cc_
multi),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8289--8289
 []@texttt :- mode io.binary_input_stream_foldl_io(in, in(pred(in, di, uo) is c
c_multi),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8300--8300
 []    @texttt (pred(in, in, out, di, uo) is cc_multi), in, out, di, uo) is cc_
multi.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8306--8306
 []@texttt :- pred io.binary_input_stream_foldl2_io_maybe_stop(io.binary_input_
stream,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8311--8311
 []    @texttt (pred(in, out, in, out, di, uo) is cc_multi), in, out, di, uo) i
s cc_multi.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8319--8319
 []    @texttt % `io.putback_byte' will throw an io.error ex-cep-tion if ungetc
() fails.[] 
[177]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8321--8321
 []    @texttt % Push-ing back a byte decre-ments the file po-si-tion by one, e
x-cept when[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8322--8322
 []    @texttt % the file po-si-tion is al-ready zero, in which case the new fi
le position[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8333--8333
 []    @texttt % `io.putback_byte' will throw an io.error ex-cep-tion if ungetc
() fails.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8335--8335
 []    @texttt % Push-ing back a byte decre-ments the file po-si-tion by one, e
x-cept when[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8336--8336
 []    @texttt % the file po-si-tion is al-ready zero, in which case the new fi
le position[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8350--8350
 []    @texttt % Writes a bi-nary rep-re-sen-ta-tion of a term to the cur-rent 
bi-nary output[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8351--8351
 []    @texttt % stream, in a for-mat suit-able for read-ing in again with io.r
ead_binary.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8355--8355
 []    @texttt % Writes a bi-nary rep-re-sen-ta-tion of a term to the spec-i-fi
ed bi-nary output[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8356--8356
 []    @texttt % stream, in a for-mat suit-able for read-ing in again with io.r
ead_binary.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8361--8361
 []@texttt :- pred io.write_binary(io.binary_output_stream::in, T::in, io::di, 
io::uo)[] 
[178]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 8372--8372
 []@texttt :- pred io.write_byte(io.binary_output_stream::in, int::in, io::di, 
io::uo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8399--8399
 []@texttt :- pred io.write_bitmap(io.binary_output_stream, bit-map, int, int, 
io, io).[] 
[179]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 8416--8416
 []    @texttt % A suc-cess-ful seek un-does any ef-fects of io.putback_byte on
 the stream.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8425--8425
 []@texttt :- pred io.seek_binary_output(io.binary_output_stream::in, io.whence
::in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8428--8428
 []    @texttt % Re-turns the off-set (in bytes) into the spec-i-fied bi-nary i
n-put stream.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8430--8430
 []@texttt :- pred io.binary_input_stream_offset(io.binary_input_stream::in, in
t::out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8433--8433
 []    @texttt % Re-turns the off-set (in bytes) into the spec-i-fied bi-nary o
ut-put stream.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8435--8435
 []@texttt :- pred io.binary_output_stream_offset(io.binary_output_stream::in, 
int::out,[] 
[180]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8485--8485
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the cur-
rent binary[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8493--8493
 []@texttt :- pred io.binary_input_stream_name(io.binary_input_stream::in, stri
ng::out,[] 
[181]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8552--8552
 []@texttt :- pred io.binary_output_stream_name(string::out, io::di, io::uo) is
 det.[] 
[182]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8578--8578
 []@texttt :- pred io.progname_base(string::in, string::out, io::di, io::uo) is
 det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8581--8581
 []    @texttt % if avail-able, oth-er-wise an empty list. Does not mod-ify the
 I/O state.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8583--8583
 []@texttt :- pred io.command_line_arguments(list(string)::out, io::di, io::uo)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8585--8585
 []    @texttt % The I/O state con-tains an in-te-ger used to record the pro-gr
am's exit[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8587--8587
 []    @texttt % to the op-er-at-ing sys-tem. The fol-low-ing pred-i-cates can 
be used to get[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8594--8594
 []    @texttt % stan-dard li-brary, but can be used by the ap-pli-ca-tion. The
 glob-als field[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8595--8595
 []    @texttt % is of type `univ' so that the ap-pli-ca-tion can store any dat
a it wants[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8596--8596
 []    @texttt % there.  The fol-low-ing pred-i-cates can be used to ac-cess th
is global state.[] 
[183]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 8618--8618
 []    @texttt % The fol-low-ing pred-i-cates pro-vide an in-ter-face to the en
-vi-ron-ment list.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8619--8619
 []    @texttt % Do not at-tempt to put spa-ces or '=' signs in the names of en
vironment[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8629--8629
 []    @texttt % First ar-gu-ment is the name of the en-vi-ron-ment vari-able, 
sec-ond argument[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8630--8630
 []    @texttt % is the value to be as-signed to that vari-able. Will throw an 
exception[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8635--8635
 []@texttt :- pred io.set_environment_var(string::in, string::in, io::di, io::u
o) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8642--8642
 []    @texttt % io.make_temp(Name, !IO) cre-ates an empty file whose name is d
ifferent[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8643--8643
 []    @texttt % to the name of any ex-ist-ing file. Name is bound to the name 
of the file.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8644--8644
 []    @texttt % It is the re-spon-si-bil-ity of the pro-gram to delete the fil
e when it is[] 
[184]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8652--8652
 []    @texttt %      is not set, or in the di-rec-tory spec-i-fied by TMP if i
t is set.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8654--8654
 []    @texttt %      en-vi-ron-ment vari-able is not set, or in the di-rec-tor
y specified[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8665--8665
 []    @texttt % name is dif-fer-ent to the name of any ex-ist-ing file. The fi
le will reside[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8666--8666
 []    @texttt % in the di-rec-tory spec-i-fied by `Dir' and will have a pre-fi
x us-ing up to[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8667--8667
 []    @texttt % the first 5 char-ac-ters of `Pre-fix'. Name is bound to the na
me of the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8671--8671
 []@texttt :- pred io.make_temp(string::in, string::in, string::out, io::di, io
::uo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8675--8675
 []    @texttt % `File-Name', bind-ing Re-sult to ok/0 if it suc-ceeds, or er-r
or/1 if it[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8676--8676
 []    @texttt % fails. If `File-Name' names a file that is cur-rently open, th
e behaviour[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8681--8681
 []    @texttt % io.remove_file_recursively(FileName, Re-sult, !IO) at-tempts t
o remove[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8682--8682
 []    @texttt % the file `File-Name', bind-ing Re-sult to ok/0 if it suc-ceeds
, or error/1[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8683--8683
 []    @texttt % if it fails. If `File-Name' names a file that is cur-rently op
en, the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8686--8686
 []    @texttt % Un-like `io.remove_file', this pred-i-cate will at-tempt to re
-move non-

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8687--8687
 []    @texttt % di-rec-to-ries (re-cur-sively). If it fails, some of the di-re
c-tory elements[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8695--8695
 []    @texttt % At-tempts to re-name the file `Old-File-Name' as `New-File-Nam
e', binding[] 
[185]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 8696--8696
 []    @texttt % Re-sult to ok/0 if it suc-ceeds, or er-ror/1 if it fails. If `
OldFileName'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8698--8698
 []    @texttt % implementation-dependent. If `New-File-Name' names a file that
 already[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8699--8699
 []    @texttt % ex-ists the be-haviour is also implementation-dependent; on so
me systems,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8700--8700
 []    @texttt % the file pre-vi-ously named `New-File-Name' will be deleted an
d replaced[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8703--8703
 []@texttt :- pred io.rename_file(string::in, string::in, io.res::out, io::di, 
io::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8716--8716
 []@texttt :- pred io.make_symlink(string::in, string::in, io.res::out, io::di,
 io::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8722--8722
 []    @texttt % it should be in-ter-preted rel-a-tive the di-rec-tory con-tain
-ing `FileName',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8739--8739
 []    @texttt % XXX On the Er-lang back-end, or on Win-dows with some com-pil-
ers, `execute'[] 
[186] [187]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8808--8808
 []    @texttt % the com-mand, or `er-ror(ErrorCode)' if not. The Ex-it-Sta-tus
 will be 0[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8809--8809
 []    @texttt % if the com-mand com-pleted suc-cess-fully or the re-turn value
 of the system[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8810--8810
 []    @texttt % call. If a sig-nal kills the sys-tem call, then Re-sult will b
e an error[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8813--8813
 []@texttt :- pred io.call_system(string::in, io.res(int)::out, io::di, io::uo)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8823--8823
 []    @texttt % the com-mand or `er-ror(Error)' if the com-mand could not be e
xecuted.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8827--8827
 []    @texttt % If the com-mand ran to com-ple-tion then Ex-it-Code will be 0 
if the command[] 
[188]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8837--8837
 []    @texttt % Look up the er-ror mes-sage cor-re-spond-ing to a par-tic-u-la
r er-ror code.[] 
Chapter 37 [189]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8893--8893
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8905--8905
 []@texttt % A field within a data struc-ture can be made lazy by wrap-ping it 
within a lazy[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8925--8925
 []@texttt % uses one thunk for ev-ery el-e-ment, but the list's struc-ture is 
not lazy.[] 
[190]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8945--8945
 []    @texttt % Force the eval-u-a-tion of a lazy(T), and re-turn the re-sult 
as type T.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8946--8946
 []    @texttt % Note that if the type T may it-self con-tains sub-terms of typ
e lazy(T),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8947--8947
 []    @texttt % as is the case when T is a re-cur-sive type like the lazy_list
(T) type[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8949--8949
 []    @texttt % force/1 only forces eval-u-a-tion of the lazy/1 term at the to
p level.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8951--8951
 []    @texttt % A sec-ond call to force will not re-evaluate the lazy ex-pres-
sion, it will[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8956--8956
 []    @texttt % Get the value of a lazy ex-pres-sion if it has al-ready been m
ade available[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8966--8966
 []@texttt :- pred com-pare_values(comparison_result::uo, lazy(T)::in, lazy(T):
:in) is det.[] 
[191]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8983--8983
 []@texttt %   eval-u-ate the term, and then saves the re-sult com-puted by des
tructively[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8985--8985
 []@texttt %   will re-turn the same re-sult.  So the time to eval-u-ate force(
X), where[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8986--8986
 []@texttt %   X = de-lay(F), is O(the time to eval-u-ate ap-ply(F)) for the fi
rst call,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8990--8990
 []@texttt %   on both ar-gu-ments and com-par-ing the re-sults.  So if X and Y
 have type[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8991--8991
 []@texttt %   lazy(T), and both X and Y are ground, then the time to eval-u-at
e X = Y[] 
Chapter 38
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9007--9007
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[192]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9066--9066
 []    @texttt % This "fat list" rep-re-sen-ta-tion is more ef-fi-cient than a 
list of pairs.[] 
[193]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9085--9085
 []    @texttt % Scan a list of to-kens from a string, start-ing at the cur-ren
t offset[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9086--9086
 []    @texttt % spec-i-fied by Ini-tial-Pos. Keep scan-ning un-til ei-ther we 
en-counter either[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9087--9087
 []    @texttt % an `end' to-ken (i.e. a full stop fol-lowed by white-space) or
 un-til we[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9092--9092
 []@texttt :- pred string_get_token_list_max(string::in, off-set::in, token_lis
t::out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9097--9097
 []    @texttt % calls string_get_token_list_max above with Max-Pos = length of
 String.[] 
Chapter 39
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9117--9117
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[194] Chapter 40
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9143--9143
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[195] [196]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 9251--9251
 []@texttt :- pred list.remove_suffix(list(T)::in, list(T)::in, list(T)::out) i
s semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9255--9255
 []    @texttt % L is the re-sult of merg-ing the el-e-ments of L1 and L2, in a
s-cend-ing order.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9263--9263
 []    @texttt % L is the re-sult of merg-ing the el-e-ments of L1 and L2, in a
s-cend-ing order,[] 
[197]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9264--9264
 []    @texttt % and elim-i-nat-ing any du-pli-cates. L1 and L2 must be sorted 
and must each[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9267--9267
 []@texttt :- pred list.merge_and_remove_dups(list(T)::in, list(T)::in, list(T)
::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9273--9273
 []    @texttt % L is the re-sult of re-plac-ing ev-ery se-quence of du-pli-cat
e el-e-ments in L0[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9297--9297
 []    @texttt % True iff `List' con-tains `Elem', and `Sub-List' is a suf-fix 
of `List'[] 
[198]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9313--9313
 []    @texttt % Some-times you need the ar-gu-ments in this or-der, be-cause y
ou want to[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9346--9346
 []    @texttt % splits `List' into a pre-fix `Start' of length `Len', and a re
mainder[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9349--9349
 []@texttt :- pred list.split_list(int::in, list(T)::in, list(T)::out, list(T):
:out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9357--9357
 []@texttt :- pred list.det_split_list(int::in, list(T)::in, list(T)::out, list
(T)::out)[] 
[199]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 9362--9362
 []    @texttt % splits `List' into a pre-fix `Start' of length `min(Len, lengt
h(List))',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9363--9363
 []    @texttt % and a re-main-der `End'. See also: list.split_list, list.take,
 list.drop.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9365--9365
 []@texttt :- pred list.split_upto(int::in, list(T)::in, list(T)::out, list(T):
:out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9377--9377
 []    @texttt % `Start' is the first `Len' el-e-ments of `List'. If `List' has
 less than[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9385--9385
 []    @texttt % `End' is the re-main-der of `List' af-ter re-mov-ing the first
 `Len' elements.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9393--9393
 []    @texttt % `End' is the re-main-der of `List' af-ter re-mov-ing the first
 `Len' elements.[] 
[200]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 9423--9423
 []    @texttt % list.delete_first(List0, Elem, List) is true iff Elem oc-curs 
in List0[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9435--9435
 []    @texttt % list.delete_elems(List0, El-ems, List) is true iff List is Lis
t0 with[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9438--9438
 []@texttt :- pred list.delete_elems(list(T)::in, list(T)::in, list(T)::out) is
 det.[] 
[201]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9457--9457
 []@texttt :- pred list.replace_all(list(T)::in, T::in, T::in, list(T)::out) is
 det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9473--9473
 []@texttt :- pred list.det_replace_nth(list(T)::in, int::in, T::in, list(T)::o
ut) is det.[] 
[202]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 9531--9531
 []    @texttt % to be el-e-ment num-ber one. The `det_' preds call er-ror/1 if
 the index[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9532--9532
 []    @texttt % is out of range, whereas the semidet preds fail if the in-dex 
is out of[] 
[203]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 9568--9568
 []    @texttt % start-ing with the first el-e-ment of ListA (fol-lowed by the 
first element[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9569--9569
 []    @texttt % of ListB, then the sec-ond el-e-ment of listA, then the sec-on
d element[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9570--9570
 []    @texttt % of ListB, etc.). When there are no more el-e-ments re-main-ing
 in one of[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9584--9584
 []    @texttt % `List' is the re-sult of con-cate-nat-ing all the el-e-ments o
f `ListOfLists'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9592--9592
 []    @texttt % such that the length of each list in `Chunks' is at most `Chun
kSize.[] 
[204]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9593--9593
 []    @texttt % (More pre-cisely, the length of each list in `Chunks' other th
an the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9594--9594
 []    @texttt % last one is ex-actly `Chunk-Size', and the length of the last 
list in[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9605--9605
 []    @texttt % list.all_same(List) is true if all el-e-ments of the list are 
the same.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9623--9623
 []    @texttt % last el-e-ment of List and All-But-Last is the list of el-e-me
nts be-fore it.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9627--9627
 []    @texttt % A de-ter-min-is-tic ver-sion of list.split_last, which aborts 
in-stead of[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9637--9637
 []@texttt % sorts of op-er-a-tions pro-vided by stan-dard li-braries for func-
tional languages.[] 
[205]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9659--9659
 []@texttt :- mode list.map2(pred(in, out, out) is cc_multi, in, out, out) is c
c_multi.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9660--9660
 []@texttt :- mode list.map2(pred(in, out, out) is semidet, in, out, out) is se
midet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9669--9669
 []@texttt :- mode list.map3(pred(in, out, out, out) is det, in, out, out, out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9670--9670
 []@texttt :- mode list.map3(pred(in, out, out, out) is cc_multi, in, out, out,
 out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9678--9678
 []@texttt :- mode list.map3(pred(in, in, in, in) is semidet, in, in, in, in) i
s semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9681--9681
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3 and M4.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9683--9683
 []@texttt :- pred list.map4(pred(A, B, C, D, E), list(A), list(B), list(C), li
st(D),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9685--9685
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is det, in, out, out,
 out, out)[] 
[206]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 9687--9687
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is cc_multi, in, out,
 out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9689--9689
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is semidet, in, out, 
out, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9691--9691
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is multi, in, out, ou
t, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9693--9693
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is non-det, in, out, 
out, out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9695--9695
 []@texttt :- mode list.map4(pred(in, in, in, in, in) is semidet, in, in, in, i
n, in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9702--9702
 []@texttt :- pred list.map5(pred(A, B, C, D, E, F), list(A), list(B), list(C),
 list(D),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9704--9704
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is det, in, out,
 out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9706--9706
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is cc_multi, in,
 out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9708--9708
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is semidet, in, 
out, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9710--9710
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is multi, in, ou
t, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9712--9712
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is non-det, in, 
out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9714--9714
 []@texttt :- mode list.map5(pred(in, in, in, in, in, in) is semidet, in, in, i
n, in, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9718--9718
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3, M4,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9723--9723
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is det, in,
 out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9725--9725
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is cc_multi
, in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9727--9727
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is semidet,
 in, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9729--9729
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is multi, i
n, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9731--9731
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is non-det,
 in, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9733--9733
 []@texttt :- mode list.map6(pred(in, in, in, in, in, in, in) is semidet, in, i
n, in, in,[] 
[207]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9737--9737
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3, M4,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9740--9740
 []@texttt :- pred list.map7(pred(A, B, C, D, E, F, G, H), list(A), list(B), li
st(C),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9744--9744
 []@texttt :- mode list.map7(pred(in, out, out, out, out, out, out, out) is cc_
multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9746--9746
 []@texttt :- mode list.map7(pred(in, out, out, out, out, out, out, out) is sem
idet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9756--9756
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3, M4,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9759--9759
 []@texttt :- pred list.map8(pred(A, B, C, D, E, F, G, H, I), list(A), list(B),
 list(C),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9761--9761
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9763--9763
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s cc_multi,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9765--9765
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9767--9767
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s multi,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9769--9769
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s nondet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9779--9779
 []@texttt :- func list.map_corresponding(func(A, B) = C, list(A), list(B)) = l
ist(C).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9780--9780
 []@texttt :- pred list.map_corresponding(pred(A, B, C), list(A), list(B), list
(C)).[] 
[208]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9781--9781
 []@texttt :- mode list.map_corresponding(in(pred(in, in, out) is det), in, in,
 out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9783--9783
 []@texttt :- mode list.map_corresponding(in(pred(in, in, out) is semidet), in,
 in, out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9786--9786
 []    @texttt % list.map_corresponding3(F, [A1, .. An], [B1, .. Bn], [C1, .. C
n]) =[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9791--9791
 []@texttt :- func list.map_corresponding3(func(A, B, C) = D, list(A), list(B),
 list(C))[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9801--9801
 []@texttt :- mode list.filter_map_corresponding(func(in, in) = out is semidet,
 in, in)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9811--9811
 []@texttt :- mode list.filter_map_corresponding3(func(in, in, in) = out is sem
idet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9814--9814
 []    @texttt % list.map_corresponding_foldl/6 is like list.map_corresponding 
except[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9825--9825
 []@texttt :- mode list.map_corresponding_foldl(pred(in, in, out, in, out) is s
emidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9827--9827
 []@texttt :- mode list.map_corresponding_foldl(pred(in, in, out, mdi, muo) is 
semidet,[] 
[209]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 9829--9829
 []@texttt :- mode list.map_corresponding_foldl(pred(in, in, out, di, uo) is se
midet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9847--9847
 []    @texttt pred(in, in, out, in, out, in, out) is semidet, in, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9850--9850
 []    @texttt pred(in, in, out, in, out, mdi, muo) is semidet, in, in, out, in
, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9862--9862
 []    @texttt pred(in, in, out, in, out, in, out, in, out) is det, in, in, out
, in, out,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9865--9865
 []    @texttt pred(in, in, out, in, out, in, out, mdi, muo) is det, in, in, ou
t, in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9868--9868
 []    @texttt pred(in, in, out, in, out, in, out, di, uo) is det, in, in, out,
 in, out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9871--9871
 []    @texttt pred(in, in, out, in, out, in, out, in, out) is semidet, in, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9874--9874
 []    @texttt pred(in, in, out, in, out, in, out, mdi, muo) is semidet, in, in
, out,[] 
[210]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9880--9880
 []    @texttt % list.map_corresponding3_foldl/7 is like list.map_corresponding
3 except[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9885--9885
 []@texttt :- mode list.map_corresponding3_foldl(pred(in, in, in, out, in, out)
 is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9887--9887
 []@texttt :- mode list.map_corresponding3_foldl(pred(in, in, in, out, mdi, muo
) is det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9889--9889
 []@texttt :- mode list.map_corresponding3_foldl(pred(in, in, in, out, di, uo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9910--9910
 []@texttt :- mode list.foldl(pred(in, in, out) is semidet, in, in, out) is sem
idet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9911--9911
 []@texttt :- mode list.foldl(pred(in, mdi, muo) is semidet, in, mdi, muo) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9915--9915
 []@texttt :- mode list.foldl(pred(in, mdi, muo) is non-det, in, mdi, muo) is n
ondet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9916--9916
 []@texttt :- mode list.foldl(pred(in, in, out) is cc_multi, in, in, out) is cc
_multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9917--9917
 []@texttt :- mode list.foldl(pred(in, di, uo) is cc_multi, in, di, uo) is cc_m
ulti.[] 
[211]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9930--9930
 []@texttt :- mode list.foldr(pred(in, in, out) is semidet, in, in, out) is sem
idet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9931--9931
 []@texttt :- mode list.foldr(pred(in, mdi, muo) is semidet, in, mdi, muo) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9935--9935
 []@texttt :- mode list.foldr(pred(in, mdi, muo) is non-det, in, mdi, muo) is n
ondet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9936--9936
 []@texttt :- mode list.foldr(pred(in, di, uo) is cc_multi, in, di, uo) is cc_m
ulti.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9937--9937
 []@texttt :- mode list.foldr(pred(in, in, out) is cc_multi, in, in, out) is cc
_multi.[] 
[212]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10011--10011
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) is
 det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10015--10015
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, in, out) is 
cc_multi,[] 
[213]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 10017--10017
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, di, uo) is c
c_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10019--10019
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, in, out) is 
semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10021--10021
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) is
 semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10023--10023
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, di, uo) is s
emidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10025--10025
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, in, out) is 
nondet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10027--10027
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) is
 nondet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10037--10037
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10040--10040
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, mdi
, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10046--10046
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10049--10049
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, mdi
, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10055--10055
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10058--10058
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, mdi
, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10061--10061
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 
[214]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10073--10073
 []@texttt :- pred list.foldl6(pred(L, A, A, B, B, C, C, D, D, E, E, F, F), lis
t(L),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10075--10075
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10078--10078
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10081--10081
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10084--10084
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10086--10086
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is cc_
multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10087--10087
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10089--10089
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, di, uo) is cc_m
ulti.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10090--10090
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10092--10092
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10093--10093
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10095--10095
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10096--10096
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10099--10099
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10108--10108
 []@texttt :- pred list.foldl_corresponding(pred(A, B, C, C), list(A), list(B),
 C, C).[] 
[215]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 10134--10134
 []@texttt :- pred list.foldl2_corresponding(pred(A, B, C, C, D, D), list(A), l
ist(B),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10138--10138
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, mdi, muo) is
 det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10142--10142
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, in, out) is 
semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10144--10144
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, mdi, muo) is
 semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10146--10146
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, di, uo) is s
emidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10148--10148
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, in, out) is 
nondet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10150--10150
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, mdi, muo) is
 nondet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10152--10152
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, in, out) is 
cc_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10154--10154
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, di, uo) is c
c_multi,[] 
[216]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10176--10176
 []    @texttt pred(in, in, in, out, in, out, mdi, muo) is semidet, in, in, in,
 out,[] 
[217]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 10206--10206
 []@texttt :- mode list.foldl2_corresponding3(pred(in, in, in, in, out, in, out
) is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10208--10208
 []@texttt :- mode list.foldl2_corresponding3(pred(in, in, in, in, out, di, uo)
 is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10229--10229
 []    @texttt % list.foldl4_corresponding3(P, As, Bs, Cs, !Acc1, !Acc2, !Acc3,
 !Acc4):[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10232--10232
 []@texttt :- pred list.foldl4_corresponding3(pred(A, B, C, D, D, E, E, F, F, G
, G),[] 
[218]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10255--10255
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is det, in, out, mdi,
 muo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10257--10257
 []@texttt :- mode list.map_foldl(pred(in, out, in, out) is semidet, in, out, i
n, out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10259--10259
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is semidet, in, out, 
mdi, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10261--10261
 []@texttt :- mode list.map_foldl(pred(in, out, di, uo) is semidet, in, out, di
, uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10265--10265
 []@texttt :- mode list.map_foldl(pred(in, out, in, out) is non-det, in, out, i
n, out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10267--10267
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is non-det, in, out, 
mdi, muo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10269--10269
 []@texttt :- mode list.map_foldl(pred(in, out, in, out) is cc_multi, in, out, 
in, out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10271--10271
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is cc_multi, in, out,
 mdi, muo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10273--10273
 []@texttt :- mode list.map_foldl(pred(in, out, di, uo) is cc_multi, in, out, d
i, uo)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10278--10278
 []@texttt :- pred list.map_foldl2(pred(L, M, A, A, B, B), list(L), list(M), A,
 A, B, B).[] 
[219]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 10310--10310
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, di, uo) is c
c_multi,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10312--10312
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, in, out) is 
cc_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10314--10314
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, in, out) is 
semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10316--10316
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, in, out) is 
nondet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10321--10321
 []@texttt :- pred list.map_foldl4(pred(L, M, A, A, B, B, C, C, D, D), list(L),
 list(M),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10326--10326
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10332--10332
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10335--10335
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10338--10338
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 
[220]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10346--10346
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10349--10349
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10352--10352
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10355--10355
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10358--10358
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10361--10361
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10369--10369
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10371--10371
 []    @texttt in, out, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10372--10372
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10374--10374
 []    @texttt in, out, in, out, in, out, in, out, in, out, in, out, in, out) i
s det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10375--10375
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10379--10379
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10383--10383
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10387--10387
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 
[221]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10396--10396
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is det, in, out,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10398--10398
 []@texttt :- mode list.map2_foldl(pred(in, out, out, mdi, muo) is det, in, out
, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10402--10402
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is semidet, in, 
out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10404--10404
 []@texttt :- mode list.map2_foldl(pred(in, out, out, mdi, muo) is semidet, in,
 out, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10406--10406
 []@texttt :- mode list.map2_foldl(pred(in, out, out, di, uo) is semidet, in, o
ut, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10408--10408
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is non-det, in, 
out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10410--10410
 []@texttt :- mode list.map2_foldl(pred(in, out, out, mdi, muo) is non-det, in,
 out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10412--10412
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is cc_multi, in,
 out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10414--10414
 []@texttt :- mode list.map2_foldl(pred(in, out, out, di, uo) is cc_multi, in, 
out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10420--10420
 []@texttt :- pred list.map2_foldl2(pred(L, M, N, A, A, B, B), list(L), list(M)
, list(N),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10426--10426
 []@texttt :- mode list.map2_foldl2(pred(in, out, out, in, out, di, uo) is cc_m
ulti,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10428--10428
 []@texttt :- mode list.map2_foldl2(pred(in, out, out, in, out, in, out) is cc_
multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10430--10430
 []@texttt :- mode list.map2_foldl2(pred(in, out, out, in, out, in, out) is sem
idet,[] 
[222]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 10485--10485
 []@texttt :- pred list.map3_foldl(pred(L, M, N, O, A, A), list(L), list(M), li
st(N),[] 
[223]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 10487--10487
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is det, in,
 out, out,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 10489--10489
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, mdi, muo) is det, in
, out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10491--10491
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, di, uo) is det, in, 
out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10493--10493
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is semidet,
 in, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10495--10495
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, mdi, muo) is semidet
, in, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10497--10497
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, di, uo) is semidet, 
in, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10499--10499
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is non-det,
 in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10501--10501
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, mdi, muo) is non-det
, in, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10503--10503
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is cc_multi
, in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10505--10505
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, di, uo) is cc_multi,
 in, out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10513--10513
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10515--10515
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10517--10517
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, di, uo) is
 cc_multi,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 10519--10519
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s cc_multi,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10521--10521
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10523--10523
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s nondet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10528--10528
 []@texttt :- pred list.map4_foldl(pred(L, M, N, O, P, A, A), list(L), list(M),
 list(N),[] 
[224]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10536--10536
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, in, out) is sem
idet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10538--10538
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, mdi, muo) is se
midet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10544--10544
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, mdi, muo) is no
ndet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10546--10546
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, in, out) is cc_
multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10548--10548
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, di, uo) is cc_m
ulti,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10552--10552
 []    @texttt % Takes a pred-i-cate with one in-put ar-gu-ment, one out-put ar
-gu-ment and an[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10553--10553
 []    @texttt % ac-cu-mu-la-tor. It is called with each el-e-ment of List. If 
a call succeeds,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10554--10554
 []    @texttt % then the out-put is in-cluded in Tru-eList and the ac-cu-mu-la
-tor is updated.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10556--10556
 []@texttt :- pred list.filter_map_foldl(pred(X, Y, A, A)::in(pred(in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10566--10566
 []    @texttt % list.all_false(Pred, List) takes a clo-sure with one in-put ar
gument.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10573--10573
 []    @texttt % list.find_first_match(Pred, List, First-Match) takes a clo-sur
e with one[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10574--10574
 []    @texttt % in-put ar-gu-ment. It re-turns the el-e-ment X of the list (if
 any) for which[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10577--10577
 []@texttt :- pred list.find_first_match(pred(X)::in(pred(in) is semidet), list
(X)::in,[] 
[225]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10589--10589
 []    @texttt % list.negated_filter(Pred, List, FalseList) takes a clo-sure wi
th one[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10593--10593
 []@texttt :- pred list.negated_filter(pred(X)::in(pred(in) is semidet), list(X
)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10595--10595
 []@texttt :- func list.negated_filter(pred(X)::in(pred(in) is semidet), list(X
)::in)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10598--10598
 []    @texttt % list.filter(Pred, List, Tru-eList, FalseList) takes a clo-sure
 with one[] 
[226]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 10635--10635
 []@texttt :- pred list.find_first_map2(pred(X, A, B)::in(pred(in, out, out) is
 semidet),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10646--10646
 []    @texttt % Find the in-dex of an item in the list for which Match is true
 where the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10650--10650
 []@texttt :- mode list.find_index_of_match(pred(in) is semidet, in, in, out) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10653--10653
 []    @texttt % clo-sure with one in-put ar-gu-ment, and calls it on suc-ces-s
ive members[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10667--10667
 []    @texttt % term Com-pare, and the el-e-ments that are equiv-a-lent in thi
s ordering[] 
[227]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 10682--10682
 []@texttt :- pred list.sort_and_remove_dups(comparison_pred(X)::in(comparison_
pred),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10690--10690
 []@texttt :- pred list.remove_adjacent_dups(comparison_pred(X)::in(comparison_
pred),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10706--10706
 []    @texttt % list.merge_and_remove_dups(P, As, Bs, Sorted) is true iff, ass
uming[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10711--10711
 []    @texttt % Bs (that is, they are equiv-a-lent in the or-der-ing), then th
e element[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10714--10714
 []@texttt :- pred list.merge_and_remove_dups(comparison_pred(X)::in(comparison
_pred),[] 
[228]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10730--10730
 []@texttt :- mode list.series(in, pred(in) is semidet, func(in) = out is det) 
= out[] 
Chapter 41 [229]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10774--10774
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10783--10783
 []@texttt % A map (also known as a dic-tio-nary or an as-so-cia-tive ar-ray) i
s a collection[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10784--10784
 []@texttt % of (Key, Data) pairs which al-lows you to look up any Data item gi
ven the[] 
[230]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10837--10837
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10844--10844
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10847--10847
 []@texttt :- pred map.lower_bound_lookup(map(K, V)::in, K::in, K::out, V::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10850--10850
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10857--10857
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10860--10860
 []@texttt :- pred map.upper_bound_lookup(map(K, V)::in, K::in, K::out, V::out)
 is det.[] 
[231]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 10878--10878
 []@texttt :- pred map.insert(K::in, V::in, map(K, V)::in, map(K, V)::out) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10884--10884
 []@texttt :- pred map.det_insert(K::in, V::in, map(K, V)::in, map(K, V)::out) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10886--10886
 []    @texttt % Ap-ply map.det_insert to key - value pairs from cor-re-spond-i
ng lists.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10888--10888
 []@texttt :- func map.det_insert_from_corresponding_lists(map(K, V), list(K), 
list(V))[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10907--10907
 []@texttt :- func map.set_from_assoc_list(map(K, V), as-soc_list(K, V)) = map(
K, V).[] 
[232]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 10915--10915
 []@texttt :- pred map.update(K::in, V::in, map(K, V)::in, map(K, V)::out) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10921--10921
 []@texttt :- pred map.det_update(K::in, V::in, map(K, V)::in, map(K, V)::out) 
is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10924--10924
 []    @texttt % trans-for-ma-tion to it.  Fails if the key is not found.  This
 is faster[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10934--10934
 []@texttt :- pred map.det_transform_value(pred(V, V)::in(pred(in, out) is det)
, K::in,[] 
[233]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 10967--10967
 []@texttt :- pred map.to_sorted_assoc_list(map(K, V)::in, as-soc_list(K, V)::o
ut) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10972--10972
 []@texttt :- pred map.from_assoc_list(assoc_list(K, V)::in, map(K, V)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10974--10974
 []    @texttt % Con-vert a sorted as-so-ci-a-tion list with no du-pli-cated ke
ys to a map.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10984--10984
 []@texttt :- pred map.from_rev_sorted_assoc_list(assoc_list(K, V)::in, map(K, 
V)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10996--10996
 []@texttt :- pred map.delete_list(list(K)::in, map(K, V)::in, map(K, V)::out) 
is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11001--11001
 []@texttt :- pred map.remove(K::in, V::out, map(K, V)::in, map(K, V)::out) is 
semidet.[] 
[234]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 11006--11006
 []@texttt :- pred map.det_remove(K::in, V::out, map(K, V)::in, map(K, V)::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11013--11013
 []    @texttt % Con-vert a pair of lists (which must be of the same length) to
 a map.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11016--11016
 []@texttt :- pred map.from_corresponding_lists(list(K)::in, list(V)::in, map(K
, V)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11022--11022
 []    @texttt % The cost of this pred-i-cate is pro-por-tional to the num-ber 
of elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11023--11023
 []    @texttt % in the sec-ond map, so for ef-fi-ciency, you want to put the b
ig-ger map[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11029--11029
 []    @texttt % For map.overlay(MapA, MapB, Map), if MapA and MapB both con-ta
in the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11034--11034
 []@texttt :- pred map.overlay(map(K, V)::in, map(K, V)::in, map(K, V)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11037--11037
 []    @texttt % map.overlay(MapA, MapB, Map). How-ever, while map.overlay take
s time[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11039--11039
 []    @texttt % pro-por-tional to the size of MapA. In other words, it prefer-
able when[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11043--11043
 []@texttt :- pred map.overlay_large_map(map(K, V)::in, map(K, V)::in, map(K, V
)::out)[] 
[235]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 11052--11052
 []    @texttt % map.select_sorted_list takes a map and a sorted list of keys, 
and returns[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11053--11053
 []    @texttt % a map con-tain-ing the keys in the list and their cor-re-spond
-ing values.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11056--11056
 []@texttt :- pred map.select_sorted_list(map(K, V)::in, list(K)::in, map(K, V)
::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11063--11063
 []@texttt :- pred map.apply_to_list(list(K)::in, map(K, V)::in, list(V)::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11075--11075
 []@texttt :- pred map.remove_smallest(K::out, V::out, map(K, V)::in, map(K, V)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11086--11086
 []@texttt :- mode map.foldl(pred(in, in, in, out) is semidet, in, in, out) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11087--11087
 []@texttt :- mode map.foldl(pred(in, in, mdi, muo) is semidet, in, mdi, muo) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11088--11088
 []@texttt :- mode map.foldl(pred(in, in, di, uo) is semidet, in, di, uo) is se
midet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11089--11089
 []@texttt :- mode map.foldl(pred(in, in, in, out) is cc_multi, in, in, out) is
 cc_multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11090--11090
 []@texttt :- mode map.foldl(pred(in, in, di, uo) is cc_multi, in, di, uo) is c
c_multi.[] 
[236]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11128--11128
 []@texttt :- pred map.foldl3(pred(K, V, A, A, B, B, C, C), map(K, V), A, A, B,
 B, C, C).[] 
[237]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 11153--11153
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, in, out, in, out) 
is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11155--11155
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, in, out, in, out) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11157--11157
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, in, out, di, uo) i
s det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11159--11159
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, di, uo, di, uo) is
 det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11171--11171
 []@texttt :- mode map.foldl_values(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11173--11173
 []@texttt :- mode map.foldl_values(pred(in, in, out) is semidet, in, in, out) 
is semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11176--11176
 []@texttt :- mode map.foldl_values(pred(in, di, uo) is semidet, in, di, uo) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11179--11179
 []@texttt :- mode map.foldl_values(pred(in, di, uo) is cc_multi, in, di, uo) i
s cc_multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11188--11188
 []@texttt :- mode map.foldr(pred(in, in, in, out) is semidet, in, in, out) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11189--11189
 []@texttt :- mode map.foldr(pred(in, in, mdi, muo) is semidet, in, mdi, muo) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11190--11190
 []@texttt :- mode map.foldr(pred(in, in, di, uo) is semidet, in, di, uo) is se
midet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11191--11191
 []@texttt :- mode map.foldr(pred(in, in, in, out) is cc_multi, in, in, out) is
 cc_multi.[] 
[238]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 11192--11192
 []@texttt :- mode map.foldr(pred(in, in, di, uo) is cc_multi, in, di, uo) is c
c_multi.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11206--11206
 []@texttt :- pred map.foldr3(pred(K, V, A, A, B, B, C, C), map(K, V), A, A, B,
 B, C, C).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11220--11220
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, in, out, in, out) 
is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11222--11222
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, in, out, in, out) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11224--11224
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, in, out, di, uo) i
s det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11226--11226
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, di, uo, di, uo) is
 det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11238--11238
 []@texttt :- mode map.map_values(pred(in, in, out) is semidet, in, out) is sem
idet.[] 
[239]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 11240--11240
 []    @texttt % Same as map.map_values, but do not pass the key to the given p
redicate.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11245--11245
 []@texttt :- mode map.map_values_only(pred(in, out) is semidet, in, out) is se
midet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11253--11253
 []@texttt :- mode map.map_foldl(pred(in, in, out, in, out) is det, in, out, in
, out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11255--11255
 []@texttt :- mode map.map_foldl(pred(in, in, out, in, out) is semidet, in, out
, in, out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11273--11273
 []@texttt :- pred map.map_foldl3(pred(K, V, W, A, A, B, B, C, C), map(K, V), m
ap(K, W),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11277--11277
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, di, uo, di, uo) is
 det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11279--11279
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, in, out, di, uo) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11281--11281
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, in, out, in, out) 
is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11283--11283
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, in, out, in, out) 
is semidet,[] 
[240]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 11288--11288
 []@texttt :- pred map.map_values_foldl(pred(V, W, A, A), map(K, V), map(K, W),
 A, A).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11298--11298
 []@texttt :- pred map.map_values_foldl2(pred(V, W, A, A, B, B), map(K, V), map
(K, W),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11306--11306
 []@texttt :- mode map.map_values_foldl2(pred(in, out, in, out, in, out) is sem
idet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11313--11313
 []@texttt :- mode map.map_values_foldl3(pred(in, out, di, uo, di, uo, di, uo) 
is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11315--11315
 []@texttt :- mode map.map_values_foldl3(pred(in, out, in, out, di, uo, di, uo)
 is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11317--11317
 []@texttt :- mode map.map_values_foldl3(pred(in, out, in, out, in, out, di, uo
) is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11319--11319
 []@texttt :- mode map.map_values_foldl3(pred(in, out, in, out, in, out, in, ou
t) is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11327--11327
 []    @texttt % and M2, com-pute the value in the fi-nal map by ap-ply-ing the
 supplied[] 
[241]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 11333--11333
 []@texttt :- mode map.intersect(pred(in, in, out) is semidet, in, in, out) is 
semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11340--11340
 []@texttt :- pred map.det_intersect(pred(V, V, V), map(K, V), map(K, V), map(K
, V)).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11341--11341
 []@texttt :- mode map.det_intersect(pred(in, in, out) is semidet, in, in, out)
 is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11343--11343
 []@texttt :- func map.det_intersect(func(V, V) = V, map(K, V), map(K, V)) = ma
p(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11344--11344
 []@texttt :- mode map.det_intersect(func(in, in) = out is semidet, in, in) = o
ut is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11349--11349
 []    @texttt % in-clude the key/value pair in M3. If they dif-fer, do not in-
clude the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11356--11356
 []    @texttt % map.common_subset is very sim-i-lar to map.intersect, but can 
succeed[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11364--11364
 []    @texttt % and M2, com-pute the value in the fi-nal map by ap-ply-ing the
 supplied[] 
[242]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 11380--11380
 []@texttt :- mode map.det_union(func(in, in) = out is semidet, in, in) = out i
s det.[] 
Chapter 42
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11420--11420
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[243]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 11430--11430
 []@texttt % By de-fault, do-main er-rors are cur-rently han-dled by throw-ing 
an exception.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11433--11433
 []@texttt % check-ing by com-pil-ing with `--intermodule-optimization' and the
 C macro[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11438--11438
 []@texttt % `mmc --intermodule-optimization --cflags -DML_OMIT_MATH_DOMAIN_CHE
CKS'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11440--11440
 []@texttt % For max-i-mum per-for-mance, all Mer-cury do-main check-ing can be
 dis-abled by[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11441--11441
 []@texttt % re-com-pil-ing this mod-ule us-ing `MGNUCFLAGS=-DML_OMIT_MATH_DOMA
IN_CHECKS'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11452--11452
 []@texttt % that is en-abled; with the checks dis-abled you only have the info
rmation[] 
[244]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11499--11499
 []    @texttt % math.round(X) = Round is true if Round is the in-te-ger clos-e
st to X.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11504--11504
 []    @texttt % math.truncate(X) = Trunc is true if Trunc is the in-te-ger clo
s-est to X[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11514--11514
 []    @texttt % math.sqrt(X) = Sqrt is true if Sqrt is the pos-i-tive square r
oot of X.[] 
[245]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 11558--11558
 []    @texttt % math.log10(X) = Log is true if Log is the log-a-rithm to base 
10 of X.[] 
[246]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 11570--11570
 []    @texttt % math.log(B, X) = Log is true if Log is the log-a-rithm to base
 B of X.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11612--11612
 []    @texttt % math.atan2(Y, X) = ATan is true if ATan is the in-verse tan-ge
nt of Y/X,[] 
[247]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11630--11630
 []    @texttt % math.tanh(X) = Tanh is true if Tanh is the hy-per-bolic tan-ge
nt of X.[] 
Chapter 43
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11646--11646
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[248] [249]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11711--11711
 []@texttt :- mode fold_maybe(pred(in, in, out) is semidet, in, in, out) is sem
idet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11712--11712
 []@texttt :- mode fold_maybe(pred(in, mdi, muo) is semidet, in, mdi, muo) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11724--11724
 []@texttt :- pred map_fold_maybe(pred(T, U, Acc, Acc), maybe(T), maybe(U), Acc
, Acc).[] 
[250]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11761--11761
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, mdi, muo) is
 det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11765--11765
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, in, out) is 
semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11767--11767
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, mdi, muo) is
 semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11769--11769
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, di, uo) is s
emidet,[] 
Chapter 44
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11789--11789
 []@texttt % Copy-right (C) 1995, 1997, 2000, 2002-2006, 2011 The Uni-ver-sity 
of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11790--11790
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11799--11799
 []@texttt % A map (also known as a dic-tio-nary or an as-so-cia-tive ar-ray) i
s a collection[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11800--11800
 []@texttt % of (Key, Data) pairs which al-lows you to look up any Data item gi
ven the[] 
[251]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11840--11840
 []@texttt :- pred multi_map.search(multi_map(K, V)::in, K::in, list(V)::out) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11844--11844
 []@texttt :- pred multi_map.nondet_search(multi_map(K, V)::in, K::in, V::out) 
is nondet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11849--11849
 []@texttt :- pred multi_map.lookup(multi_map(K, V)::in, K::in, list(V)::out) i
s det.[] 
[252]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11853--11853
 []@texttt :- pred multi_map.nondet_lookup(multi_map(K, V)::in, K::in, V::out) 
is nondet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11857--11857
 []@texttt :- pred multi_map.inverse_search(multi_map(K, V)::in, V::in, K::out)
 is nondet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11894--11894
 []@texttt :- func multi_map.det_replace(multi_map(K, V), K, list(V)) = multi_m
ap(K, V).[] 
[253]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11922--11922
 []@texttt :- func multi_map.to_flat_assoc_list(multi_map(K, V)) = as-soc_list(
K, V).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11928--11928
 []@texttt :- func multi_map.from_flat_assoc_list(assoc_list(K, V)) = multi_map
(K, V).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11935--11935
 []@texttt :- func multi_map.to_assoc_list(multi_map(K, V)) = as-soc_list(K, li
st(V)).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11942--11942
 []@texttt :- func multi_map.from_assoc_list(assoc_list(K, list(V))) = multi_ma
p(K, V).[] 
[254] [255]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 12002--12002
 []@texttt :- pred multi_map.from_corresponding_list_lists(list(K)::in, list(li
st(V))::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12038--12038
 []@texttt :- pred multi_map.optimize(multi_map(K, V)::in, multi_map(K, V)::out
) is det.[] 
[256] Chapter 45
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12058--12058
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12071--12071
 []@texttt % Mer-cury op-er-a-tor ta-ble de-fined in the Mer-cury Lan-guage Ref
-er-ence Manual.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12088--12088
 []    @texttt % An ops.class de-scribes what struc-ture terms con-structed wit
h an operator[] 
[257]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12135--12135
 []        @texttt % Check whether a string is the name of a bi-nary pre-fix op
erator,[] 
[258]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12151--12151
 []        @texttt % Check whether a string is the name of an op-er-a-tor, and 
if it is,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12152--12152
 []        @texttt % re-turn the op_info de-scrib-ing that op-er-a-tor in the t
hird argument.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12160--12160
 []        @texttt % a vari-able or a name and `X' and `Y' are terms. If op-er-
a-tor terms[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12161--12161
 []        @texttt % are in-cluded in `Ta-ble', re-turn their prece-dence and a
ssociativity.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12174--12174
 []        @texttt % If `,/2' does not ap-pear in the op_table, `ops.max_priori
ty' plus one[] 
[259] Chapter 46
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12203--12203
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[260] Chapter 47
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12251--12251
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[261]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12302--12302
 []    @texttt % Reads a term from the cur-rent in-put stream, us-ing the given
 op_table[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12305--12305
 []@texttt :- pred read_term_with_op_table(Ops::in, read_term(T)::out, io::di, 
io::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12310--12310
 []    @texttt % Reads a term from the cur-rent in-put stream. The string is th
e filename[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12311--12311
 []    @texttt % to use for the cur-rent in-put stream; this is used in con-str
uct-ing the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12315--12315
 []@texttt :- pred read_term_filename(string::in, read_term(T)::out, io::di, io
::uo)[] 
[262]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 12328--12328
 []    @texttt % pred-i-cates, ex-cept that the term is read from a string rath
er than from[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12329--12329
 []    @texttt % the cur-rent in-put stream. The re-turned value `End-Pos' is t
he position[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12330--12330
 []    @texttt % one char-ac-ter past the end of the term read. The ar-gu-ments
 `MaxOffset'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12331--12331
 []    @texttt % and `Start-Pos' in the six-argument ver-sion spec-ify the leng
th of the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12332--12332
 []    @texttt % string and the po-si-tion within the string at which to start 
parsing.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12362--12362
 []@texttt :- pred parse_tokens(string::in, to-ken_list::in, read_term(T)::out)
 is det.[] 
Chapter 48 [263]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12381--12381
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12390--12390
 []@texttt % ar-gu-ments: a source (src) con-tain-ing the in-put string and a p
arser state (ps)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12393--12393
 []@texttt % Call parse(InputString, SkipWS, Parser, Re-sult) to parse an in-pu
t string[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12396--12396
 []@texttt % fol-low-ing white-space (pro-vid-ing a skip-ping pred-i-cate al-lo
ws users to define[] 
[264]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 12440--12440
 []    @texttt % The fol-low-ing are for parsers that also trans-form a sep-a-r
ate state value.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12443--12443
 []@texttt :- inst parser_with_state == ( pred(in, out, in, out, in, out) is se
midet ).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12445--12445
 []    @texttt % Pred-i-cates of this type are used to skip white-space in the 
primitive[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12461--12461
 []    @texttt % oth-er-wise re-turn er-ror.  If there were any calls to fail_w
ith_message[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12463--12463
 []    @texttt % passed to the last call to fail_with_message will be re-turned
 in the[] 
[265]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 12475--12475
 []    @texttt % Con-struct a new parser source and state from a string, also s
pecifying[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12476--12476
 []    @texttt % a pred-i-cate for skip-ping over white-space (sev-eral prim-i-
tive parsers[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12477--12477
 []    @texttt % use this pred-i-cate to con-sume white-space af-ter a to-ken; 
this argument[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12478--12478
 []    @texttt % al-lows the user to spec-ify a pred-i-cate for, say, skip-ping
 over comments[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12514--12514
 []@texttt :- pred in-put_substring(src::in, int::in, int::in, string::out) is 
semidet.[] 
[266]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12527--12527
 []@texttt :- pred punct(string::in, src::in, unit::out, ps::in, ps::out) is se
midet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12529--12529
 []    @texttt % key-word(IdChars, Key-word, Src, _, !PS) matches Key-word ex-a
ctly (i.e., it[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12530--12530
 []    @texttt % must not be fol-lowed by any char-ac-ter in Id-Chars) and any 
subsequent[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12538--12538
 []    @texttt % Only up-per and low-er-case un-ac-cented Latin let-ters are tr
eated specially.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12543--12543
 []    @texttt % iden-ti-fier(InitIdChars, Id-Chars, Src, Iden-ti-fier, !PS) ma
tches the next[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12544--12544
 []    @texttt % iden-ti-fier (re-sult in Iden-ti-fier) com-pris-ing a char fro
m InitIdChars[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12545--12545
 []    @texttt % fol-lowed by zero or more chars from Id-Chars.  Any sub-se-que
nt whitespace[] 
[267]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 12568--12568
 []    @texttt % fol-lowed by any white-space.  The float_literal_as_string ver
-sion simply[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12570--12570
 []    @texttt % string.to_float to con-vert the out-put of float_literal_as_st
ring; this[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12571--12571
 []    @texttt % may re-turn an ap-prox-i-mate an-swer since not all float-ing 
point numbers[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12579--12579
 []    @texttt % Parse an int lit-eral match-ing [-][0-9]+, not fol-lowed by [.
][0-9]+,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12580--12580
 []    @texttt % fol-lowed by any white-space.  The int_literal_as_string ver-s
ion simply[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12581--12581
 []    @texttt % re-turns the matched string.  The int_literal ver-sion uses st
ring.to_int[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12582--12582
 []    @texttt % to con-vert the out-put of int_literal_as_string; this may fai
l if the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12590--12590
 []    @texttt % Parse an string lit-eral.  The string ar-gu-ment is the quote 
character.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12593--12593
 []    @texttt % are in-cluded as-is in the re-sult, along with the pre-ced-ing
 backslash.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12599--12599
 []    @texttt % op-tional(P, Src, Re-sult, !PS) re-turns Re-sult = yes(X), if 
P(Src, X, !PS),[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12605--12605
 []    @texttt % zero_or_more(P, Src, Xs, !PS) re-turns the list of re-sults Xs
 obtained[] 
[268]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12612--12612
 []    @texttt % one_or_more(P, Src, Xs, !PS) re-turns the list of re-sults Xs 
obtained[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12627--12627
 []    @texttt % zero_or_more(P, Src, Xs, !PS) ex-cept that suc-ces-sive ap-pli
-ca-tions of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12636--12636
 []@texttt :- pred comma_separated_list(parser(T)::in(parser), src::in, list(T)
::out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12639--12639
 []    @texttt % Declar-a-tively this pred-i-cate is equiv-a-lent to false.  Op
erationally[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12651--12651
 []@texttt % The fol-low-ing parser com-bi-na-tors are equiv-a-lent to the abov
e, ex-cept that[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12652--12652
 []@texttt % a sep-a-rate state ar-gu-ment is threaded through the com-pu-ta-ti
on (e.g., for[] 
[269]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12658--12658
 []@texttt :- pred op-tional(parser_with_state(T, S)::in(parser_with_state), sr
c::in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12661--12661
 []    @texttt % zero_or_more(P, Src, Xs, !S, !PS) re-turns the list of re-sult
s Xs obtained[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12665--12665
 []@texttt :- pred zero_or_more(parser_with_state(T, S)::in(parser_with_state),
 src::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12668--12668
 []    @texttt % one_or_more(P, Src, Xs, !S, !PS) re-turns the list of re-sults
 Xs obtained[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12673--12673
 []@texttt :- pred one_or_more(parser_with_state(T, S)::in(parser_with_state), 
src::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12677--12677
 []    @texttt %   punct(L, Src, _, !PS), P(Src, X, !S, !PS), punct(R, Src, _, 
!PS).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12694--12694
 []@texttt :- pred comma_separated_list(parser_with_state(T, S)::in(parser_with
_state),[] 
Chapter 49 [270]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12709--12709
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12719--12719
 []@texttt % the amount of out-put pro-duced, and sup-ports user-specifiable fo
rmatting[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12725--12725
 []@texttt % This started off as pretty much a di-rect translit-er-a-tion of Ph
ilip Wadler's[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12729--12729
 []@texttt % Sev-eral changes have been made to the al-go-rithm to pre-serve li
n-ear running[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12730--12730
 []@texttt % time un-der a strict lan-guage and to en-sure scal-a-bil-ity to ex
-tremely large[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12734--12734
 []@texttt % 1. the lay-out al-ge-bra is small and quite in-tu-itive (more so t
han Hughes');[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12735--12735
 []@texttt % 2. the pretty printer is op-ti-mal in the sense that it will never
 generate[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12736--12736
 []@texttt %    out-put that over-runs the spec-i-fied width un-less that is un
-avoid-able; and[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12737--12737
 []@texttt % 3. the pretty printer is bounded in that it never needs to look mo
re than[] 
[271]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 12786--12786
 []@texttt % 2. call pprint.write/[4,5] or pprint.to_string/2 pass-ing the dis-
play width[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12793--12793
 []@texttt % The doc/1 type class has types string, char, int, float and doc as
 instances.[] 
[272]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12798--12798
 []@texttt % Be-low are some docs fol-lowed by the ways they might be dis-playe
d by the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12828--12828
 []@texttt % 5. group("Goodbye " ++ nest(3, line ++ group("cruel " ++ line ++ "
world")))[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 12841--12841
 []@texttt %                          nest(3, line ++ group("cruel " ++ line ++
 "world"))))[] 
[273] [274]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12924--12924
 []    @texttt % The new-line doc-u-ment. In a group doc (see be-low) the prett
y printer[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12925--12925
 []    @texttt % may choose to in-stead `flat-ten' all line docs into nil docs 
in order[] 
[275]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 12941--12941
 []    @texttt % A group doc gives the pretty printer a choice: if the doc can 
be printed[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12942--12942
 []    @texttt % with-out line wrap-ping then it does so (all line, la-bel, nes
t and group[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12943--12943
 []    @texttt % di-rec-tives within the group are ig-nored); oth-er-wise the p
retty printer[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12944--12944
 []    @texttt % treats the group body lit-er-ally, al-though nested group docs
 re-main as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12949--12949
 []    @texttt % This func-tion can be used to con-vert strings, chars, ints an
d floats[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12977--12977
 []    @texttt % For the sin-gle-ton list case, packed(Sep, [X]) = group(line `
<>` X).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12979--12979
 []    @texttt % The re-sult-ing doc tries to pack as many items on a line as p
ossible.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12983--12983
 []    @texttt % A vari-ant of the above whereby only the first N el-e-ments of
 the list[] 
[276]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12996--12996
 []    @texttt % A vari-ant of the above whereby only the first N el-e-ments of
 the list[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13001--13001
 []    @texttt % This is like a depth-limited ver-sion of packed_cs/1 that firs
t calls[] 
[277]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 13035--13035
 []    @texttt % Per-forms word wrap-ping at the end of line, tak-ing white-spa
ce sequences[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13040--13040
 []    @texttt % Con-vert ar-bi-trary terms to docs. This re-quires std_util.fu
nctor/3 to work[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13041--13041
 []    @texttt % on all com-po-nents of the ob-ject be-ing con-verted. The sec-
ond version[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13042--13042
 []    @texttt % places a max-i-mum depth on terms which are oth-er-wise trun-c
ated in the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13043--13043
 []    @texttt % man-ner de-scribed in the doc-u-men-ta-tion for the doc/2 meth
od of the doc/1[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13057--13057
 []    @texttt % Write docs out in pretty printed for-mat. The int ar-gu-ment s
pecifies[] 
Chapter 50 [278]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13082--13082
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[279]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 13128--13128
 []@texttt :- pred pqueue.remove(pqueue(K, V)::in, K::out, V::out, pqueue(K, V)
::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13133--13133
 []@texttt :- pred pqueue.det_remove(K::out, V::out, pqueue(K, V)::in, pqueue(K
, V)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13140--13140
 []@texttt :- pred pqueue.to_assoc_list(pqueue(K, V)::in, as-soc_list(K, V)::ou
t) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13146--13146
 []@texttt :- pred pqueue.assoc_list_to_pqueue(assoc_list(K, V)::in, pqueue(K, 
V)::out)[] 
Chapter 51
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13171--13171
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[280]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13182--13182
 []@texttt % The doc type in-cludes data con-struc-tors for out-putting strings
, newlines,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13186--13186
 []@texttt % the group can fit on the re-main-der of the cur-rent line.  [The a
l-go-rithm is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13193--13193
 []@texttt % The pretty printer in-cludes spe-cial sup-port for for-mat-ting Me
r-cury style[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13203--13203
 []@texttt % The amount of out-put pro-duced is con-trolled via limit pa-ram-e-
ters.  Three[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13205--13205
 []@texttt % lines to be out-put, and a limit on the depth for for-mat-ting ar-
bi-trary terms.[] 
[281]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 13224--13224
 []            @texttt % Out-put a lit-eral string. Strings con-tain-ing new-li
nes, hard tabs,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13228--13228
 []            @texttt % Out-put a new-line, fol-lowed by in-den-ta-tion, iff t
he enclosing[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13229--13229
 []            @texttt % group does not fit on the cur-rent line and start-ing 
a new line[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13239--13239
 []            @texttt % Use a spe-cialised for-mat-ter if avail-able, oth-er-w
ise use the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13243--13243
 []            @texttt % Pretty print a list of items us-ing the given doc as a
 separator[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13247--13247
 []            @texttt % Pretty print a term with zero or more ar-gu-ments. If 
the term[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13249--13249
 []            @texttt % ap-pro-pri-ate fix-ity and, if nec-es-sary, in paren-t
he-ses. The term[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13253--13253
 []            @texttt % The ar-gu-ment is a sus-pended com-pu-ta-tion used to 
lazily pro-

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13254--13254
 []            @texttt % doc. If the for-mat-ting limit has been reached then j
ust "..." is[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13255--13255
 []            @texttt % out-put, oth-er-wise the sus-pen-sion is eval-u-ated a
nd the resulting[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13256--13256
 []            @texttt % doc is used. This is use-ful for for-mat-ting large st
ructures[] 
[282]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13266--13266
 []    @texttt % This type is pri-vate to the im-ple-men-ta-tion. It can-not be
 ex-ploited by[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13273--13273
 []    @texttt % Ap-pend In-dentString to the cur-rent in-den-ta-tion while pri
nt-ing Docs.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13285--13285
 []    @texttt % If Docs can be out-put on the re-main-der of the cur-rent line
 by ignoring[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13287--13287
 []    @texttt % (fol-lowed by any in-den-ta-tion). The for-mat-ting test is ap
-plied recursively[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13297--13297
 []    @texttt % for-mat_arg(Doc) has the ef-fect of for-mat-ting any term in D
oc as though[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13306--13306
 []    @texttt % A limit of lin-ear(N) for-mats the first N func-tors be-fore t
runcating[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13309--13309
 []    @texttt % A limit of tri-an-gu-lar(N) for-mats a term t(X1, ..., Xn) by 
ap-ply-ing a[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13310--13310
 []    @texttt % limit of tri-an-gu-lar(N - 1) when for-mat-ting X1, tri-an-gu-
lar(N - 2) when[] 
[283]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 13312--13312
 []    @texttt % The cost of for-mat-ting the term t(X1, ..., Xn) as a whole is
 just one,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13329--13329
 []    @texttt % A for-mat-ter_map maps types to pps.  Types are iden-ti-fied b
y mod-ule name,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13354--13354
 []@texttt :- pred write_doc_to_stream(Stream, non-canon_handling, for-mat-ter_
map, int, int,[] 
[284]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13359--13359
 []@texttt :- mode write_doc_to_stream(in, in(include_details_cc), in, in, in, 
in, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13363--13363
 []    @texttt % for-mat-ters and for-mat-ting pa-ram-e-ters are at-tached to t
he I/O state.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13368--13368
 []                @texttt pp_line_width   :: int,             % Line width in 
characters.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13369--13369
 []                @texttt pp_max_lines    :: int,             % Max lines to o
utput.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13370--13370
 []                @texttt pp_limit        :: for-mat-ting_limit % Term for-mat
-ting limit.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13380--13380
 []    @texttt % These de-faults are thread lo-cal (i.e., changes made by one t
hread to[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13383--13383
 []@texttt :- pred get_default_formatter_map(formatter_map::out, io::di, io::uo
) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13384--13384
 []@texttt :- pred set_default_formatter_map(formatter_map::in, io::di, io::uo)
 is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13385--13385
 []@texttt :- pred set_default_formatter(string::in, string::in, int::in, forma
tter::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13388--13388
 []    @texttt % The ini-tial de-fault pp_params are pp_params(78, 100, triangu
lar(100)).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13389--13389
 []    @texttt % These de-faults are thread lo-cal (i.e., changes made by one t
hread to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13399--13399
 []    @texttt % write_doc_to stream, with in-clude_details_cc, the de-fault fo
rmatter_map,[] 
[285] Chapter 52
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13417--13417
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[286] Chapter 53 [287]
Overfull \hbox (66.67995pt too wide) in paragraph at lines 13506--13506
 []@texttt % Copy-right (C) 1994-1995, 1997-1999, 2003-2006, 2011 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13507--13507
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13517--13517
 []@texttt % to in-sert val-ues at the end of the queue (queue.put) and re-move
 them from[] 
[288]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 13549--13549
 []    @texttt % `queue.is_full(Queue)' is in-tended to be true iff `Queue' is 
a queue[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13561--13561
 []    @texttt % `queue.put_list(Elems, Queue0, Queue)' is true iff `Queue' is 
the queue[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13562--13562
 []    @texttt % which re-sults from in-sert-ing the items in the list `El-ems'
 into `Queue0'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13567--13567
 []    @texttt % `queue.first(Queue, Elem)' is true iff `Queue' is a non-empty 
queue[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13572--13572
 []    @texttt % `queue.get(Elem, Queue0, Queue)' is true iff `Queue0' is a non
-empty[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13573--13573
 []    @texttt % queue whose first el-e-ment is `Elem', and `Queue' the queue w
hich results[] 
[289]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 13599--13599
 []    @texttt % `queue.delete_all(Elem, Queue0, Queue)' is true iff `Queue' is
 the same[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13616--13616
 []@texttt :- pred queue.put_list_on_front(list(T)::in, queue(T)::in, queue(T):
:out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13622--13622
 []@texttt :- pred queue.get_from_back(T::out, queue(T)::in, queue(T)::out) is 
semidet.[] 
Chapter 54
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13636--13636
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[290]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13644--13644
 []@texttt % De-fine a set of ran-dom num-ber gen-er-a-tor pred-i-cates. This i
mplementation[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13652--13652
 []@texttt % co-ef-fi-cients are de-scribed as pro-duc-ing a "Quick and Dirty" 
ran-dom number[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13653--13653
 []@texttt % gen-er-a-tor, which gen-er-ates the num-bers very quickly but not 
necessarily[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13656--13656
 []@texttt % their re-quire-ments in terms of "ran-dom-ness".  For ap-pli-ca-ti
ons which have[] 
[291] [292]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13737--13737
 []@texttt :- pred ran-dom.permutation(list(T), list(T), ran-dom.supply, random
.supply).[] 
Chapter 55
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13753--13753
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[293] Chapter 56
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13830--13830
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[294]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13846--13846
 []@texttt %   looks up an ex-ist-ing value in the tree, ap-plies a trans-for-m
a-tion to the[] 
[295]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13904--13904
 []    @texttt % trans-for-ma-tion to it.  Fails if the key is not found.  This
 is faster[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13907--13907
 []@texttt :- pred rb-tree.transform_value(pred(V, V)::in(pred(in, out) is det)
, K::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13913--13913
 []@texttt :- pred rb-tree.set(K::in, V::in, rb-tree(K, V)::in, rb-tree(K, V)::
out) is det.[] 
[296]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13935--13935
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13938--13938
 []@texttt :- pred rb-tree.lower_bound_search(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13942--13942
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13943--13943
 []    @texttt % Throws an ex-cep-tion if there is no key with the given or low
er value.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13945--13945
 []@texttt :- pred rb-tree.lower_bound_lookup(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13949--13949
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13952--13952
 []@texttt :- pred rb-tree.upper_bound_search(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13956--13956
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13957--13957
 []    @texttt % Throws an ex-cep-tion if there is no key with the given or hig
her value.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13959--13959
 []@texttt :- pred rb-tree.upper_bound_lookup(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13966--13966
 []@texttt :- pred rb-tree.delete(K::in, rb-tree(K, V)::in, rb-tree(K, V)::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13971--13971
 []@texttt :- pred rb-tree.remove(K::in, V::out, rb-tree(K, V)::in, rb-tree(K, 
V)::out)[] 
[297]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 14003--14003
 []@texttt :- pred rb-tree.assoc_list_to_rbtree(assoc_list(K, V)::in, rb-tree(K
, V)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14009--14009
 []@texttt :- pred rb-tree.rbtree_to_assoc_list(rbtree(K, V)::in, as-soc_list(K
, V)::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14017--14017
 []@texttt :- mode rb-tree.foldl(pred(in, in, mdi, muo) is det, in, mdi, muo) i
s det.[] 
[298]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14046--14046
 []@texttt :- mode rb-tree.foldl3(pred(in, in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14058--14058
 []@texttt :- mode rb-tree.map_values(pred(in, in, out) is semidet, in, out) is
 semidet.[] 
Chapter 57 [299] Chapter 58
Overfull \hbox (66.67995pt too wide) in paragraph at lines 14079--14079
 []@texttt % Copy-right (C) 1993-1999, 2003, 2005-2006, 2010-2011 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14080--14080
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[300]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 14117--14117
 []    @texttt % Use this for fea-tures that should be im-ple-mented (or at lea
st could be[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14139--14139
 []    @texttt % Use this to han-dle cases which are not ex-pected to arise (i.
e. bugs).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14149--14149
 []    @texttt % Use this to han-dle cases which are not ex-pected to arise (i.
e. bugs).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14160--14160
 []    @texttt % that the goal not pro-duce any out-put vari-ables. In most cir
cumstances,[] 
[301]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14170--14170
 []@texttt :- pred ex-pect((pred)::((pred) is semidet), string::in, string::in)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14174--14174
 []    @texttt % Call Goal, and call un-ex-pected(Module, Proc, Mes-sage) if Go
al fails.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14183--14183
 []@texttt :- pred ex-pect_not((pred)::((pred) is semidet), string::in, string:
:in) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14187--14187
 []    @texttt % Call Goal, and call un-ex-pected(Module, Proc, Mes-sage) if Go
al succeeds.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14205--14205
 []    @texttt % the fail-ure of a lookup op-er-a-tion in-volv-ing the spec-i-f
ied Key and Value.[] 
[302] Chapter 59
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14223--14223
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14231--14231
 []@texttt % This mod-ule pro-vides a re-gion tree (R-tree) ADT.  A re-gion tre
e associates[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14233--14233
 []@texttt % bound-ing spheres in 3D space.  Re-gion trees ac-cept spa-tial que
ries, e.g. a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14236--14236
 []@texttt % This mod-ule also pro-vides the type-class re-gion(K) which al-low
s the user to[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14237--14237
 []@texttt % de-fine new re-gions and spa-ces.  Three "builtin" in-stances for 
region(K)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14239--14239
 []@texttt % cor-re-spond-ing to "square" re-gions in one, two and three di-men
-sional spaces[] 
[303] [304] [305]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14359--14359
 []@texttt :- pred rtree.search_first(pred(K, L), pred(V, L), rtree(K, V), L, V
, L).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14366--14366
 []    @texttt % KTest(K).  The same as-sump-tions for KTest from search_genera
l apply[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14369--14369
 []@texttt :- pred rtree.search_general_fold(pred(K), pred(K, V, A, A), rtree(K
, V),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14376--14376
 []    @texttt % Per-form a traver-sal of the rtree, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 
[306] Chapter 60
Overfull \hbox (32.18782pt too wide) in paragraph at lines 14428--14428
 []@texttt % Copy-right (C) 1995-1997, 1999-2006, 2010-2011 The Uni-ver-sity of
 Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14429--14429
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[307]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 14467--14467
 []    @texttt % `set_bbbtree.count(Set, Count)' is true iff `Set' has `Count' 
elements.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14480--14480
 []    @texttt % `set_bbbtree.is_member(X, Set, Re-sult)' is true iff `X' is a 
member[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14483--14483
 []@texttt :- pred set_bbbtree.is_member(T::in, set_bbbtree(T)::in, bool::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14485--14485
 []    @texttt % `set_bbbtree.contains(Set, X)' is true iff `X' is a mem-ber of
 `Set'.[] 
[308]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 14518--14518
 []@texttt :- pred set_bbbtree.equal(set_bbbtree(T)::in, set_bbbtree(T)::in) is
 semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14520--14520
 []    @texttt % `set_bbbtree.insert(X, Set0, Set)' is true iff `Set' is the un
ion of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14530--14530
 []    @texttt % the union of `Set0' and the set con-tain-ing only the mem-bers
 of `Xs'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14535--14535
 []@texttt :- func set_bbbtree.insert_list(set_bbbtree(T), list(T)) = set_bbbtr
ee(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14537--14537
 []    @texttt % `set_bbbtree.delete(X, Set0, Set)' is true iff `Set' is the re
lative[] 
[309]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14549--14549
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14555--14555
 []@texttt :- func set_bbbtree.delete_list(set_bbbtree(T), list(T)) = set_bbbtr
ee(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14557--14557
 []    @texttt % `set_bbbtree.remove(X, Set0, Set)' is true iff `Set0' con-tain
s `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14562--14562
 []@texttt :- pred set_bbbtree.remove(T::in, set_bbbtree(T)::in, set_bbbtree(T)
::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14574--14574
 []    @texttt % `X' and `Set' is `Set0' and `X' is smaller than all the el-e-m
ents of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14580--14580
 []    @texttt % `set_bbbtree.remove_largest(X, Set0, Set)' is true iff the uni
on if[] 
[310]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14590--14590
 []@texttt :- pred set_bbbtree.list_to_set(list(T)::in, set_bbbtree(T)::out) is
 det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14598--14598
 []    @texttt % `set_bbbtree.sorted_list_to_set(List, Set)' is true iff `Set' 
is the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14613--14613
 []    @texttt % is the length of the list. If the length of the list is al-rea
dy known[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14619--14619
 []@texttt :- pred set_bbbtree.sorted_list_to_set_len(list(T)::in, set_bbbtree(
T)::out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14631--14631
 []    @texttt % `set_bbbtree.union(SetA, SetB, Set)' is true iff `Set' is the 
union[] 
[311]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14637--14637
 []@texttt :- func set_bbbtree.union(set_bbbtree(T), set_bbbtree(T)) = set_bbbt
ree(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14639--14639
 []    @texttt % `set_bbbtree.union_list(Sets) = Set' is true iff `Set' is the 
union[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14644--14644
 []    @texttt % `set_bbbtree.power_union(Sets, Set)' is true iff `Set' is the 
union[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14650--14650
 []@texttt :- func set_bbbtree.power_union(set_bbbtree(set_bbbtree(T))) = set_b
bbtree(T).[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14658--14658
 []@texttt :- func set_bbbtree.intersect(set_bbbtree(T), set_bbbtree(T)) = set_
bbbtree(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14672--14672
 []@texttt :- func set_bbbtree.intersect_list(list(set_bbbtree(T))) = set_bbbtr
ee(T).[] 
[312]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 14687--14687
 []@texttt :- pred set_bbbtree.subset(set_bbbtree(T)::in, set_bbbtree(T)::in) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14698--14698
 []@texttt :- mode set_bbbtree.fold(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14724--14724
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, in, out) is det
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14726--14726
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, mdi, muo) is de
t, in,[] 
[313]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 14730--14730
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, in, out) is sem
idet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14732--14732
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, mdi, muo) is se
midet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14734--14734
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, di, uo) is semi
det, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14771--14771
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out) is semidet
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14774--14774
 []    @texttt pred(in, in, out, in, out, in, out, in, out, mdi, muo) is semide
t, in,[] 
[314]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 14784--14784
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14787--14787
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14790--14790
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14793--14793
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14794--14794
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14796--14796
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14797--14797
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14799--14799
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14802--14802
 []@texttt :- func set_bbbtree.map(func(T1) = T2, set_bbbtree(T1)) = set_bbbtre
e(T2).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14806--14806
 []@texttt :- mode set_bbbtree.filter_map(func(in) = out is semidet, in) = out 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14819--14819
 []    @texttt set_bbbtree(T)::in, set_bbbtree(T)::out, set_bbbtree(T)::out) is
 det.[] 
[315] Chapter 61
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14833--14833
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14841--14841
 []@texttt % This mod-ule im-ple-ments sets us-ing 2-3-4 trees ex-tended with e
l-e-ment counts.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14842--14842
 []@texttt % This rep-re-sen-ta-tion has higher con-stant fac-tors for most op-
er-a-tions than[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14843--14843
 []@texttt % or-dered lists, but it has much bet-ter worst-case com-plex-ity, a
nd is likely[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14846--14846
 []@texttt % - the cost of lookups is only log-a-rith-mic in the size of the se
t, not linear;[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14848--14848
 []@texttt % - for op-er-a-tions that are in-trin-si-cally lin-ear in the size 
of one input[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14849--14849
 []@texttt %   operand or the other, the counts al-low us to choose to be lin-e
ar in the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14869--14869
 []    @texttt % `set_ctree234.singleton_set(Elem, Set)' is true iff `Set' is t
he set[] 
[316]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14886--14886
 []    @texttt % `set_ctree234.member(X, Set)' is true iff `X' is a mem-ber of 
`Set'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14892--14892
 []    @texttt % `set_ctree234.one_member(Set, X)' is true iff `X' is a mem-ber
 of `Set'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14900--14900
 []@texttt :- pred set_ctree234.is_member(set_ctree234(T)::in, T::in, bool::out
) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14902--14902
 []    @texttt % `set_ctree234.contains(Set, X)' is true iff `X' is a mem-ber o
f `Set'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14906--14906
 []    @texttt % `set_ctree234.list_to_set(List) = Set' is true iff `Set' is th
e set[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14914--14914
 []    @texttt % the set con-tain-ing only the mem-bers of `List'. `List' must 
be sorted.[] 
[317]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14918--14918
 []    @texttt % `set_ctree234.to_sorted_list(Set) = List' is true iff `List' i
s the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14929--14929
 []    @texttt % `set_ctree234.subset(SetA, SetB)' is true iff `SetA' is a sub-
set of[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14945--14945
 []@texttt :- pred set_ctree234.insert(T::in, set_ctree234(T)::in, set_ctree234
(T)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14951--14951
 []@texttt :- func set_ctree234.insert_list(list(T), set_ctree234(T)) = set_ctr
ee234(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14956--14956
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14961--14961
 []@texttt :- pred set_ctree234.delete(T::in, set_ctree234(T)::in, set_ctree234
(T)::out)[] 
[318]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14965--14965
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14968--14968
 []@texttt :- func set_ctree234.delete_list(list(T), set_ctree234(T)) = set_ctr
ee234(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14972--14972
 []    @texttt % `set_ctree234.remove(X, Set0, Set)' is true iff `Set0' con-tai
ns `X',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14977--14977
 []@texttt :- pred set_ctree234.remove(T::in, set_ctree234(T)::in, set_ctree234
(T)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14989--14989
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14995--14995
 []    @texttt % `set_ctree234.union(SetA, SetB) = Set' is true iff `Set' is th
e union[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14998--14998
 []@texttt :- func set_ctree234.union(set_ctree234(T), set_ctree234(T)) = set_c
tree234(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15005--15005
 []@texttt :- func set_ctree234.union_list(list(set_ctree234(T))) = set_ctree23
4(T).[] 
[319]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15017--15017
 []    @texttt % `set_ctree234.intersect(SetA, SetB) = Set' is true iff `Set' i
s the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15034--15034
 []@texttt :- func set_ctree234.intersect_list(list(set_ctree234(T))) = set_ctr
ee234(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15036--15036
 []    @texttt % `set_ctree234.difference(SetA, SetB, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15042--15042
 []@texttt :- pred set_ctree234.difference(set_ctree234(T)::in, set_ctree234(T)
::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15050--15050
 []@texttt :- func set_ctree234.map(func(T1) = T2, set_ctree234(T1)) = set_ctre
e234(T2).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15054--15054
 []@texttt :- pred set_ctree234.filter_map(pred(T1, T2)::in(pred(in, out) is se
midet),[] 
[320]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 15059--15059
 []@texttt :- mode set_ctree234.filter_map(func(in) = out is semidet, in) = out
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15064--15064
 []@texttt :- mode set_ctree234.fold(pred(in, mdi, muo) is det, in, mdi, muo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15091--15091
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, in, out) is de
t, in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15093--15093
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, mdi, muo) is d
et, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15095--15095
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, di, uo) is det
, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15097--15097
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, in, out) is se
midet, in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15099--15099
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, mdi, muo) is s
emidet, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15101--15101
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, di, uo) is sem
idet, in,[] 
[321]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 15107--15107
 []@texttt :- mode set_ctree234.fold4(pred(in, in, out, in, out, in, out, in, o
ut) is det,[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 15109--15109
 []@texttt :- mode set_ctree234.fold4(pred(in, in, out, in, out, in, out, mdi, 
muo) is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15111--15111
 []@texttt :- mode set_ctree234.fold4(pred(in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15149--15149
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15152--15152
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 
[322]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15155--15155
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15158--15158
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15159--15159
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15161--15161
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15162--15162
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15164--15164
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15176--15176
 []    @texttt set_ctree234(T)::in, set_ctree234(T)::out, set_ctree234(T)::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15179--15179
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15184--15184
 []    @texttt set_ctree234(T)::in, set_ctree234(T)::out, set_ctree234(T)::out)
 is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15191--15191
 []@texttt :- pred set_ctree234.divide_by_set(set_ctree234(T)::in, set_ctree234
(T)::in,[] 
Chapter 62 [323]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15208--15208
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[324] [325] [326]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15352--15352
 []@texttt :- pred set.remove_list(list(T)::in, set(T)::in, set(T)::out) is sem
idet.[] 
[327] [328]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 15441--15441
 []@texttt :- mode set.map_fold(pred(in, out, in, out) is det, in, out, in, out
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15442--15442
 []@texttt :- mode set.map_fold(pred(in, out, mdi, muo) is det, in, out, mdi, m
uo) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15443--15443
 []@texttt :- mode set.map_fold(pred(in, out, di, uo) is det, in, out, di, uo) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15484--15484
 []@texttt :- mode set.fold(pred(in, mdi, muo) is semidet, in, mdi, muo) is sem
idet.[] 
[329]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15517--15517
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, in, out) is de
t, in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15519--15519
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, mdi, muo) is d
et, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15521--15521
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, di, uo) is det
, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15523--15523
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, in, out) is se
midet, in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15525--15525
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, mdi, muo) is s
emidet, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15527--15527
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, di, uo) is sem
idet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15530--15530
 []@texttt :- pred set.fold5(pred(T, A, A, B, B, C, C, D, D, E, E), set(T), A, 
A, B, B,[] 
[330]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15554--15554
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15557--15557
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15560--15560
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15563--15563
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15564--15564
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15566--15566
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15567--15567
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15569--15569
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15573--15573
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 
[331]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 15580--15580
 []    @texttt % In-Part con-sists of those el-e-ments of Set which are also in
 DivideBySet;[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15581--15581
 []    @texttt % Out-Part con-sists of those el-e-ments of which are not in Div
ideBySet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15583--15583
 []@texttt :- pred set.divide_by_set(set(T)::in, set(T)::in, set(T)::out, set(T
)::out)[] 
Chapter 63
Overfull \hbox (89.6747pt too wide) in paragraph at lines 15597--15597
 []@texttt % Copy-right (C) 1996-1997,1999-2002, 2004-2006, 2008-2011 The Uni-v
er-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15598--15598
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[332]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15630--15630
 []@texttt :- pred set_ordlist.list_to_set(list(T)::in, set_ordlist(T)::out) is
 det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15638--15638
 []    @texttt % the set con-tain-ing only the mem-bers of `List'.  `List' must
 be sorted.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15651--15651
 []@texttt :- pred set_ordlist.to_sorted_list(set_ordlist(T)::in, list(T)::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15654--15654
 []    @texttt % `set_ordlist.singleton_set(Set, Elem)' is true iff `Set' is th
e set[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15667--15667
 []@texttt :- pred set_ordlist.equal(set_ordlist(T)::in, set_ordlist(T)::in) is
 semidet.[] 
[333]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 15680--15680
 []@texttt :- pred set_ordlist.subset(set_ordlist(T)::in, set_ordlist(T)::in) i
s semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15697--15697
 []@texttt :- pred set_ordlist.is_member(T::in, set_ordlist(T)::in, bool::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15699--15699
 []    @texttt % `set_ordlist.contains(Set, X)' is true iff `X' is a mem-ber of
 `Set'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15706--15706
 []@texttt :- pred set_ordlist.insert(T::in, set_ordlist(T)::in, set_ordlist(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15716--15716
 []@texttt :- func set_ordlist.insert_list(set_ordlist(T), list(T)) = set_ordli
st(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15719--15719
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 
[334]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15723--15723
 []@texttt :- pred set_ordlist.delete(T::in, set_ordlist(T)::in, set_ordlist(T)
::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15728--15728
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15733--15733
 []@texttt :- func set_ordlist.delete_list(set_ordlist(T), list(T)) = set_ordli
st(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15735--15735
 []    @texttt % `set_ordlist.remove(X, Set0, Set)' is true iff `Set0' con-tain
s `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15740--15740
 []@texttt :- pred set_ordlist.remove(T::in, set_ordlist(T)::in, set_ordlist(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15752--15752
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15758--15758
 []    @texttt % `set_ordlist.union(SetA, SetB, Set)' is true iff `Set' is the 
union[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15765--15765
 []@texttt :- func set_ordlist.union(set_ordlist(T), set_ordlist(T)) = set_ordl
ist(T).[] 
[335]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 15770--15770
 []@texttt :- pred set_ordlist.union_list(list(set_ordlist(T))::in, set_ordlist
(T)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15779--15779
 []@texttt :- func set_ordlist.power_union(set_ordlist(set_ordlist(T))) = set_o
rdlist(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15782--15782
 []    @texttt % in-ter-sec-tion of `SetA' and `SetB'. The ef-fi-ciency of the 
intersection[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15785--15785
 []@texttt :- pred set_ordlist.intersect(set_ordlist(T), set_ordlist(T), set_or
dlist(T)).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15802--15802
 []@texttt :- func set_ordlist.intersect_list(list(set_ordlist(T))) = set_ordli
st(T).[] 
[336]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15835--15835
 []@texttt :- func set_ordlist.map(func(T1) = T2, set_ordlist(T1)) = set_ordlis
t(T2).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15839--15839
 []@texttt :- mode set_ordlist.filter_map(func(in) = out is semidet, in) = out 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15843--15843
 []@texttt :- mode set_ordlist.filter_map(pred(in, out) is semidet, in, out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15848--15848
 []@texttt :- mode set_ordlist.fold(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 
[337]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15874--15874
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, in, out) is det
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15876--15876
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, mdi, muo) is de
t, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15880--15880
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, in, out) is sem
idet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15882--15882
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, mdi, muo) is se
midet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15884--15884
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, di, uo) is semi
det, in,[] 
[338]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15921--15921
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out) is semidet
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15924--15924
 []    @texttt pred(in, in, out, in, out, in, out, in, out, mdi, muo) is semide
t, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15933--15933
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15936--15936
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15939--15939
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15942--15942
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15943--15943
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15945--15945
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15946--15946
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15948--15948
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15952--15952
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 
[339]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15956--15956
 []    @texttt set_ordlist(T)::in, set_ordlist(T)::out, set_ordlist(T)::out) is
 det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15959--15959
 []    @texttt % In-Part con-sists of those el-e-ments of Set which are also in
 DivideBySet;[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15960--15960
 []    @texttt % Out-Part con-sists of those el-e-ments of Set which are not in
 DivideBySet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15962--15962
 []@texttt :- pred set_ordlist.divide_by_set(set_ordlist(T)::in, set_ordlist(T)
::in,[] 
Chapter 64
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15977--15977
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[340]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16004--16004
 []    @texttt % `set_tree234.singleton_set(Elem, Set)' is true iff `Set' is th
e set[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16033--16033
 []@texttt :- pred set_tree234.is_member(set_tree234(T)::in, T::in, bool::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16035--16035
 []    @texttt % `set_tree234.contains(Set, X)' is true iff `X' is a mem-ber of
 `Set'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16047--16047
 []    @texttt % the set con-tain-ing only the mem-bers of `List'. `List' must 
be sorted.[] 
[341]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16059--16059
 []@texttt :- pred set_tree234.equal(set_tree234(T)::in, set_tree234(T)::in) is
 semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16064--16064
 []@texttt :- pred set_tree234.subset(set_tree234(T)::in, set_tree234(T)::in) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16076--16076
 []@texttt :- pred set_tree234.insert(T::in, set_tree234(T)::in, set_tree234(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16082--16082
 []@texttt :- func set_tree234.insert_list(list(T), set_tree234(T)) = set_tree2
34(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16087--16087
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16092--16092
 []@texttt :- pred set_tree234.delete(T::in, set_tree234(T)::in, set_tree234(T)
::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16096--16096
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 
[342]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 16099--16099
 []@texttt :- func set_tree234.delete_list(list(T), set_tree234(T)) = set_tree2
34(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16103--16103
 []    @texttt % `set_tree234.remove(X, Set0, Set)' is true iff `Set0' con-tain
s `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16108--16108
 []@texttt :- pred set_tree234.remove(T::in, set_tree234(T)::in, set_tree234(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16120--16120
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16126--16126
 []    @texttt % `set_tree234.union(SetA, SetB) = Set' is true iff `Set' is the
 union[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16129--16129
 []@texttt :- func set_tree234.union(set_tree234(T), set_tree234(T)) = set_tree
234(T).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16137--16137
 []@texttt :- pred set_tree234.union_list(list(set_tree234(T))::in, set_tree234
(T)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16143--16143
 []@texttt :- func set_tree234.power_union(set_tree234(set_tree234(T))) = set_t
ree234(T).[] 
[343]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 16150--16150
 []@texttt :- func set_tree234.intersect(set_tree234(T), set_tree234(T)) = set_
tree234(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16163--16163
 []@texttt :- func set_tree234.intersect_list(list(set_tree234(T))) = set_tree2
34(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16179--16179
 []@texttt :- func set_tree234.map(func(T1) = T2, set_tree234(T1)) = set_tree23
4(T2).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16183--16183
 []@texttt :- pred set_tree234.filter_map(pred(T1, T2)::in(pred(in, out) is sem
idet),[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16188--16188
 []@texttt :- mode set_tree234.filter_map(func(in) = out is semidet, in) = out 
is det.[] 
[344]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16193--16193
 []@texttt :- mode set_tree234.fold(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16220--16220
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, in, out) is det
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16222--16222
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, mdi, muo) is de
t, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16226--16226
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, in, out) is sem
idet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16228--16228
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, mdi, muo) is se
midet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16230--16230
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, di, uo) is semi
det, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16236--16236
 []@texttt :- mode set_tree234.fold4(pred(in, in, out, in, out, in, out, in, ou
t) is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16238--16238
 []@texttt :- mode set_tree234.fold4(pred(in, in, out, in, out, in, out, mdi, m
uo) is det,[] 
[345]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16240--16240
 []@texttt :- mode set_tree234.fold4(pred(in, in, out, in, out, in, out, di, uo
) is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16278--16278
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16281--16281
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16284--16284
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 
[346]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 16287--16287
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16288--16288
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16290--16290
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16291--16291
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16293--16293
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16305--16305
 []    @texttt set_tree234(T)::in, set_tree234(T)::out, set_tree234(T)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16308--16308
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16312--16312
 []    @texttt set_tree234(T)::in, set_tree234(T)::out, set_tree234(T)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16319--16319
 []@texttt :- pred set_tree234.divide_by_set(set_tree234(T)::in, set_tree234(T)
::in,[] 
Chapter 65
Overfull \hbox (89.6747pt too wide) in paragraph at lines 16333--16333
 []@texttt % Copy-right (C) 1995-1997,1999-2002, 2004-2006, 2010-2011 The Uni-v
er-sity of Melbourne.[] 
[347]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16334--16334
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16343--16343
 []@texttt % Sets are im-ple-mented here as un-sorted lists, which may con-tain
 duplicates.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16363--16363
 []    @texttt % `set_unordlist.list_to_set(List, Set)' is true iff `Set' is th
e set[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16367--16367
 []@texttt :- pred set_unordlist.list_to_set(list(T)::in, set_unordlist(T)::out
) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16374--16374
 []    @texttt % the set con-tain-ing only the mem-bers of `List'.  `List' must
 be sorted.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16376--16376
 []@texttt :- pred set_unordlist.sorted_list_to_set(list(T)::in, set_unordlist(
T)::out)[] 
[348]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16384--16384
 []    @texttt % `set_unordlist.to_sorted_list(Set, List)' is true iff `List' i
s the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16391--16391
 []    @texttt % `set_unordlist.singleton_set(Set, Elem)' is true iff `Set' is 
the set[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16414--16414
 []    @texttt % `set_unordlist.subset(SetA, SetB)' is true iff `SetA' is a sub
-set of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16423--16423
 []@texttt :- pred set_unordlist.superset(set_unordlist(T)::in, set_unordlist(T
)::in)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16426--16426
 []    @texttt % `set_unordlist.member(X, Set)' is true iff `X' is a mem-ber of
 `Set'.[] 
[349]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16443--16443
 []    @texttt % `set_unordlist.insert(X, Set0, Set)' is true iff `Set' is the 
union[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16452--16452
 []    @texttt % `set_unordlist.insert_list(Xs, Set0, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16462--16462
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16472--16472
 []    @texttt % `set_unordlist.delete_list(Xs, Set0, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16473--16473
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 
[350]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 16482--16482
 []    @texttt % `set_unordlist.remove(X, Set0, Set)' is true iff `Set0' con-ta
ins `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16499--16499
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16505--16505
 []    @texttt % `set_unordlist.union(SetA, SetB, Set)' is true iff `Set' is th
e union[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16518--16518
 []@texttt :- func set_unordlist.union_list(list(set_unordlist(T))) = set_unord
list(T).[] 
[351]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16529--16529
 []    @texttt % `set_unordlist.intersect(SetA, SetB, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16532--16532
 []@texttt :- pred set_unordlist.intersect(set_unordlist(T)::in, set_unordlist(
T)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16541--16541
 []@texttt :- pred set_unordlist.power_intersect(set_unordlist(set_unordlist(T)
)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16553--16553
 []    @texttt % `set_unordlist.difference(SetA, SetB, Set)' is true iff `Set' 
is the[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16557--16557
 []@texttt :- pred set_unordlist.difference(set_unordlist(T)::in, set_unordlist
(T)::in,[] 
[352]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16571--16571
 []@texttt :- mode set_unordlist.filter_map(func(in) = out is semidet, in) = ou
t is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16573--16573
 []@texttt :- func set_unordlist.fold(func(T1, T2) = T2, set_unordlist(T1), T2)
 = T2.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16575--16575
 []@texttt :- mode set_unordlist.fold(pred(in, in, out) is det, in, in, out) is
 det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16576--16576
 []@texttt :- mode set_unordlist.fold(pred(in, mdi, muo) is det, in, mdi, muo) 
is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16602--16602
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, in, out) is d
et, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16604--16604
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, mdi, muo) is 
det, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16606--16606
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, di, uo) is de
t, in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16608--16608
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, in, out) is s
emidet, in,[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 16610--16610
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, mdi, muo) is 
semidet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16612--16612
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, di, uo) is se
midet, in,[] 
[353]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16649--16649
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out) is semidet
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16652--16652
 []    @texttt pred(in, in, out, in, out, in, out, in, out, mdi, muo) is semide
t, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16662--16662
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 
[354]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 16665--16665
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16668--16668
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16671--16671
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16672--16672
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16674--16674
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16675--16675
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16677--16677
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16689--16689
 []    @texttt set_unordlist(T)::in, set_unordlist(T)::out, set_unordlist(T)::o
ut) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16692--16692
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16697--16697
 []    @texttt set_unordlist(T)::in, set_unordlist(T)::out, set_unordlist(T)::o
ut) is det.[] 
Chapter 66 [355]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16711--16711
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16733--16733
 []    @texttt % so-lu-tions_set/2 re-turns them as a set.  un-sorted_solutions
/2 returns[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16735--16735
 []    @texttt % an in-fi-nite num-ber of such lists, this must be called from 
a context[] 
[356]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16792--16792
 []@texttt :- mode ag-gre-gate2(pred(out) is multi, pred(in, in, out, in, out) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16796--16796
 []@texttt :- mode ag-gre-gate2(pred(out) is non-det, pred(in, in, out, di, uo)
 is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16798--16798
 []@texttt :- mode ag-gre-gate2(pred(out) is non-det, pred(in, in, out, in, out
) is det,[] 
[357]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16816--16816
 []@texttt :- mode un-sorted_aggregate(pred(out) is multi, pred(in, in, out) is
 cc_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16820--16820
 []@texttt :- mode un-sorted_aggregate(pred(out) is multi, pred(in, di, uo) is 
cc_multi,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16826--16826
 []@texttt :- mode un-sorted_aggregate(pred(out) is non-det, pred(in, di, uo) i
s cc_multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16828--16828
 []@texttt :- mode un-sorted_aggregate(pred(out) is non-det, pred(in, in, out) 
is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16830--16830
 []@texttt :- mode un-sorted_aggregate(pred(out) is non-det, pred(in, in, out) 
is cc_multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16832--16832
 []@texttt :- mode un-sorted_aggregate(pred(muo) is non-det, pred(mdi, di, uo) 
is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16851--16851
 []    @texttt pred(in, in, out, in, out) is cc_multi, in, out, in, out) is cc_
multi.[] 
[358]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 16859--16859
 []    @texttt pred(in, in, out, in, out) is cc_multi, in, out, in, out) is cc_
multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16887--16887
 []@texttt :- mode do_while(pred(out) is multi, pred(in, out, in, out) is det, 
in, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16889--16889
 []@texttt :- mode do_while(pred(out) is multi, pred(in, out, di, uo) is det, d
i, uo)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16891--16891
 []@texttt :- mode do_while(pred(out) is multi, pred(in, out, di, uo) is cc_mul
ti, di, uo)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16893--16893
 []@texttt :- mode do_while(pred(out) is non-det, pred(in, out, in, out) is det
, in, out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16895--16895
 []@texttt :- mode do_while(pred(out) is non-det, pred(in, out, di, uo) is det,
 di, uo)[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 16897--16897
 []@texttt :- mode do_while(pred(out) is non-det, pred(in, out, di, uo) is cc_m
ulti, di, uo)[] 
[359] Chapter 67
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16912--16912
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16928--16928
 []@texttt % For a pair `Off-set - Bits', `Off-set' is a mul-ti-ple of `int.bit
s_per_int'.[] 
[360]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 16979--16979
 []    @texttt % `list_to_set(List)' re-turns a set con-tain-ing only the mem-b
ers of `List'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16985--16985
 []@texttt :- pred list_to_set(list(T)::in, sparse_bitset(T)::out) is det <= en
um(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16987--16987
 []    @texttt % `sorted_list_to_set(List)' re-turns a set con-tain-ing only th
e members[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16988--16988
 []    @texttt % of `List'. `List' must be sorted. Takes O(length(List)) time a
nd space.[] 
[361]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 16994--16994
 []    @texttt % `from_set(Set)' re-turns a bit-set con-tain-ing only the mem-b
ers of `Set'.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16999--16999
 []    @texttt % `to_sorted_list(Set)' re-turns a list con-tain-ing all the mem
-bers of `Set',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17003--17003
 []@texttt :- pred to_sorted_list(sparse_bitset(T)::in, list(T)::out) is det <=
 enum(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17010--17010
 []    @texttt % `make_singleton_set(Elem)' re-turns a set con-tain-ing just th
e single[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17022--17022
 []    @texttt % Same as `in-ter-sect(Set, Sub-set, Sub-set)', but may be more 
efficient.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17026--17026
 []    @texttt % `su-per-set(Superset, Set)' is true iff `Su-per-set' is a su-p
er-set of `Set'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17027--17027
 []    @texttt % Same as `in-ter-sect(Superset, Set, Set)', but may be more eff
icient.[] 
[362]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 17050--17050
 []    @texttt % `in-sert_list(Set, X)' re-turns the union of `Set' and the set
 containing[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 17051--17051
 []    @texttt % only the mem-bers of `X'. Same as `union(Set, list_to_set(X))'
, but may be[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17054--17054
 []@texttt :- func in-sert_list(sparse_bitset(T), list(T)) = sparse_bitset(T) <
= enum(T).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17055--17055
 []@texttt :- pred in-sert_list(list(T)::in, sparse_bitset(T)::in, sparse_bitse
t(T)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17058--17058
 []    @texttt % `delete(Set, X)' re-turns the dif-fer-ence of `Set' and the se
t containing[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17069--17069
 []@texttt :- func delete_list(sparse_bitset(T), list(T)) = sparse_bitset(T) <=
 enum(T).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17070--17070
 []@texttt :- pred delete_list(list(T)::in, sparse_bitset(T)::in, sparse_bitset
(T)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17074--17074
 []    @texttt % and the set con-tain-ing only `X', fail-ing if `Set0' does not
 con-tain `X'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17080--17080
 []    @texttt % `re-move_list(X, Set0, Set)' re-turns in `Set' the dif-fer-enc
e of `Set0'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17081--17081
 []    @texttt % and the set con-tain-ing all the el-e-ments of `X', fail-ing i
f any element[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17085--17085
 []@texttt :- pred re-move_list(list(T)::in, sparse_bitset(T)::in, sparse_bitse
t(T)::out)[] 
[363]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 17088--17088
 []    @texttt % `re-move_leq(Set, X)' re-turns `Set' with all el-e-ments less 
than or equal[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17089--17089
 []    @texttt % to `X' re-moved. In other words, it re-turns the set con-tain-
ing all the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17096--17096
 []    @texttt % `re-move_gt(Set, X)' re-turns `Set' with all el-e-ments greate
r than `X'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17097--17097
 []    @texttt % re-moved. In other words, it re-turns the set con-tain-ing all
 the elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17104--17104
 []    @texttt % `re-move_least(Set0, X, Set)' is true iff `X' is the least el-
e-ment in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17105--17105
 []    @texttt % `Set0', and `Set' is the set which con-tains all the el-e-ment
s of `Set0'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17108--17108
 []@texttt :- pred re-move_least(T::out, sparse_bitset(T)::in, sparse_bitset(T)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17119--17119
 []    @texttt % `in-ter-sect(SetA, SetB)' re-turns the in-ter-sec-tion of `Set
A' and `SetB'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17120--17120
 []    @texttt % The ef-fi-ciency of the in-ter-sec-tion op-er-a-tion is not se
n-si-tive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17121--17121
 []    @texttt % ar-gu-ment or-der-ing. Takes O(rep_size(SetA) + rep_size(SetB)
) time and[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17124--17124
 []@texttt :- func in-ter-sect(sparse_bitset(T), sparse_bitset(T)) = sparse_bit
set(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17128--17128
 []    @texttt % `dif-fer-ence(SetA, SetB)' re-turns the set con-tain-ing all t
he elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17130--17130
 []    @texttt % O(rep_size(SetA) + rep_size(SetB)) time and O(rep_size(SetA)) 
space.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17132--17132
 []@texttt :- func dif-fer-ence(sparse_bitset(T), sparse_bitset(T)) = sparse_bi
tset(T).[] 
[364]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 17142--17142
 []    @texttt % (in sorted or-der) and an ac-cu-mu-la-tor (with the ini-tial v
alue of `Start'),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17155--17155
 []@texttt :- pred foldl2(pred(T, U, U, V, V), sparse_bitset(T), U, U, V, V) <=
 enum(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17156--17156
 []@texttt :- mode foldl2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17157--17157
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 17158--17158
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17159--17159
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17161--17161
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17165--17165
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17167--17167
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17171--17171
 []    @texttt % (in re-verse sorted or-der) and an ac-cu-mu-la-tor (with the i
ni-tial value[] 
[365]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 17184--17184
 []@texttt :- pred foldr2(pred(T, U, U, V, V), sparse_bitset(T), U, U, V, V) <=
 enum(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17185--17185
 []@texttt :- mode foldr2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17186--17186
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 17187--17187
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17188--17188
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17190--17190
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17194--17194
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17196--17196
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17199--17199
 []    @texttt % `fil-ter(Pred, Set) = True-Set' re-turns the el-e-ments of Set
 for which[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17208--17208
 []@texttt :- pred fil-ter(pred(T), sparse_bitset(T), sparse_bitset(T), sparse_
bitset(T))[] 
Chapter 68
Overfull \hbox (66.67995pt too wide) in paragraph at lines 17223--17223
 []@texttt % Copy-right (C) 1994-1995, 1997-1999, 2005-2006, 2011 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17224--17224
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[366]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17271--17271
 []@texttt :- pred stack.push_list(stack(T)::in, list(T)::in, stack(T)::out) is
 det.[] 
[367] Chapter 69
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17323--17323
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[368] [369] Chapter 70
Overfull \hbox (32.18782pt too wide) in paragraph at lines 17409--17409
 []@texttt % Copy-right (C) 1994-1997, 2000-2008, 2010-2011 The Uni-ver-sity of
 Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17410--17410
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17419--17419
 []@texttt % A store can be con-sid-ered a map-ping from ab-stract keys to thei
r values.[] 
[370]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17423--17423
 []@texttt % Stores may be used to im-ple-ment cyclic data struc-tures such as 
circular[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17428--17428
 []@texttt % The dif-fer-ence be-tween mut-vars and refs is that mut-vars can o
nly be updated[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17430--17430
 []@texttt % ref-er-ence one at a time (pre-sum-ing the ref-er-ence refers to a
 structured[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17446--17446
 []    @texttt % type sys-tem to en-sure at com-pile time that you never at-tem
pt to use[] 
[371]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 17476--17476
 []    @texttt % Cre-ate a new mu-ta-ble vari-able, ini-tial-ized with the spec
-i-fied value.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17481--17481
 []    @texttt % copy_mutvar(OldMutvar, New-Mut-var, S0, S) is equiv-a-lent to 
the sequence[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17485--17485
 []@texttt :- pred store.copy_mutvar(generic_mutvar(T, S)::in, generic_mutvar(T
, S)::out,[] 
[372] [373] [374]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 17620--17620
 []@texttt % Use them only as a last re-sort, only if per-for-mance is crit-i-c
al, and only if[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17639--17639
 []@texttt :- pred store.unsafe_new_arg_ref(T::di, int::in, generic_ref(ArgT, S
)::out,[] 
Chapter 71
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17654--17654
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[375] [376]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 17738--17738
 []        @texttt pred name(Stream::in, stream.name::out, State::di, State::uo
) is det[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17748--17748
 []@texttt :- type-class stream.input(Stream, State) <= stream(Stream, State) w
here [].[] 
[377]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17766--17766
 []    @texttt % that stream re-turn an er-ror, al-though not nec-es-sar-ily th
e same one.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17775--17775
 []    @texttt % A bulk_reader stream is a sub-class of spe-cific in-put stream
 that can[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17776--17776
 []    @texttt % be used to read mul-ti-ple items of data of a spe-cific type f
rom that[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17777--17777
 []    @texttt % in-put stream into a spec-i-fied con-tainer.  For ex-am-ple, b
i-nary input[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17785--17785
 []    @texttt % bulk_get(Stream, In-dex, Nu-mItems, !Store, Nu-mItem-sRead, Re
-sult, !State).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17790--17790
 []    @texttt % If the read suc-ceeds, Re-sult is `ok' and Nu-mItem-sRead equa
ls NumItems.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17792--17792
 []    @texttt % On end-of-stream, bulk_get/9 puts as many items as it can into
 !Store.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17795--17795
 []    @texttt % If an er-ror is de-tected, bulk_get/9 puts as many items as it
 can into[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17796--17796
 []    @texttt % !Store.  Nu-mItem-sRead is less than Nu-mItems, and Re-sult is
 `error(Err)'.[] 
[378]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 17801--17801
 []    @texttt % Throws an ex-cep-tion if In-dex given is out of range or Nu-mI
tems units[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17804--17804
 []    @texttt % If a call to bulk_get/4 re-turns less than Nu-mItems items, al
l further[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17805--17805
 []    @texttt % calls to get/4 or bulk_get/4 for that stream re-turn no items.
  If a[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17806--17806
 []    @texttt % call to bulk_get/9 re-turns `er-ror(...)', all fur-ther calls 
to get/4[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17807--17807
 []    @texttt % or bulk_get/9 for that stream re-turn an er-ror, al-though not
 necessarily[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17815--17815
 []    @texttt % XXX These should be di and uo, but with the cur-rent state of 
the mode[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17816--17816
 []    @texttt % sys-tem an un-safe_promise_unique call would be re-quired at e
ach call[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17840--17840
 []    @texttt % A writer stream is a sub-class of spe-cific out-put stream tha
t can be[] 
[379]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17848--17848
 []    @texttt % Blocks if the whole unit can't be writ-ten to the stream at th
e time[] 
[380]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 17913--17913
 []    @texttt pred seek(Stream::in, stream.whence::in, int::in, State::di, Sta
te::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17922--17922
 []    @texttt % A line ori-ented stream is a stream that keeps track of line n
umbers.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17924--17924
 []@texttt :- type-class stream.line_oriented(Stream, State) <= stream(Stream, 
State)[] 
[381]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 17960--17960
 []@texttt :- mode stream.input_stream_fold_state(in, in(pred(in, di, uo) is cc
_multi),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17967--17967
 []    @texttt pred(Unit, T, T, State, State), T, stream.maybe_partial_res(T, E
rror),[] 
[382]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18013--18013
 []@texttt :- mode put_list(in, pred(in, in, di, uo) is det, pred(in, di, uo) i
s det,[] 
Chapter 72
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18032--18032
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[383]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18068--18068
 []    @texttt State::di, State::uo) is det <= stream.writer(Stream, string, St
ate).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18079--18079
 []    @texttt % If the ar-gu-ment is just a sin-gle string or char-ac-ter, it 
will be printed[] 
[384]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18080--18080
 []    @texttt % out ex-actly as is (un-quoted). If the ar-gu-ment is of type u
niv, then[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18085--18085
 []    @texttt % print/4 im-plic-itly spec-ify `canon-i-cal-ize' as the method 
for handling[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18086--18086
 []    @texttt % non-canonical types. This means that for higher-order types, o
r types[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18087--18087
 []    @texttt % with user-defined equal-ity ax-ioms, or types de-fined us-ing 
the foreign[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18088--18088
 []    @texttt % lan-guage in-ter-face (i.e. pragma for-eign_type), the text ou
t-put will[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18092--18092
 []    @texttt % `in-clude_details_cc' rather than `canon-i-cal-ize'. This mean
s that it will[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18093--18093
 []    @texttt % print the de-tails of non-canonical types. How-ever, it has de
terminism[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18096--18096
 []    @texttt % Note that even if `in-clude_details_cc' is spec-i-fied, some i
mplementations[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18097--18097
 []    @texttt % may not be able to print all the de-tails for higher-order typ
es or types[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18118--18118
 []    @texttt % of any type. The ar-gu-ment is writ-ten in a for-mat that is i
n-tended to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18121--18121
 []    @texttt % Strings and char-ac-ters are al-ways printed out in quotes, us
-ing backslash[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18123--18123
 []    @texttt % us-ing the for-eign lan-guage in-ter-face (pragma for-eign_cod
e), the text[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18124--18124
 []    @texttt % out-put will only de-scribe the type that is be-ing printed, n
ot the value,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18126--18126
 []    @texttt % con-tain-ing ex-is-ten-tial quan-ti-fiers, the type `type_desc
' and closure[] 
[385]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18127--18127
 []    @texttt % types, the re-sult may not be parsable by `read', ei-ther. But
 in all[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18128--18128
 []    @texttt % other cases the for-mat used is stan-dard Mer-cury syn-tax, an
d if you append[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18129--18129
 []    @texttt % a pe-riod and new-line (".\n"), then the re-sults can be read 
in again[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18134--18134
 []    @texttt % is the same as write/4 ex-cept that it spec-i-fies `include_de
tails_cc'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18141--18141
 []@texttt :- pred write(Stream, de-con-struct.noncanon_handling, T, State, Sta
te) is det[] 
Chapter 73
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18165--18165
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[386]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18178--18178
 []@texttt % string builder state, us-ing string.builder.handle as the stream a
rgument.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18179--18179
 []@texttt % Once you've fin-ished writ-ing to the string builder you can get t
he final[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18185--18185
 []@texttt %     stream.string_writer.put_int(string.builder.handle, 5, State0,
 State),[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18209--18209
 []@texttt :- in-stance stream.writer(string.builder.handle, string, string.bui
lder.state).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18210--18210
 []@texttt :- in-stance stream.writer(string.builder.handle, char, string.build
er.state).[] 
Chapter 74 [387]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18226--18226
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18236--18236
 []@texttt % Un-ex-pected null char-ac-ters em-bed-ded in the mid-dle of string
s can be a source[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18237--18237
 []@texttt % of se-cu-rity vul-ner-a-bil-i-ties, so the Mer-cury li-brary pred-
i-cates and functions[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18238--18238
 []@texttt % which cre-ate strings from (lists of) char-ac-ters throw an ex-cep
-tion if a null[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18243--18243
 []@texttt % char-ac-ter as the string ter-mi-na-tor.  A sin-gle code point re-
quires one to four[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18246--18246
 []@texttt % When Mer-cury is com-piled to Java, strings are rep-re-sented as J
ava `String's.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18254--18254
 []@texttt % The builtin com-par-i-son op-er-a-tion on strings is also im-ple-m
en-ta-tion dependent.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18258--18258
 []@texttt % String.compareTo() method.  When Mer-cury is com-piled to C#, stri
ng comparison[] 
[388]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 18279--18279
 []    @texttt % This type is used for defin-ing stream type-class in-stances w
here the raw[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18282--18282
 []    @texttt % - a pos-si-bly empty se-quence of non-newline char-ac-ters ter
-mi-nated by a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18284--18284
 []    @texttt % - a non-empty se-quence of non-newline char-ac-ters ter-mi-nat
ed by the end[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18290--18290
 []    @texttt % This type is used for defin-ing stream type-class in-stances w
here the raw[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18291--18291
 []    @texttt % string type would be am-bigu-ous. A text file is a pos-si-bly 
empty sequence[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18300--18300
 []    @texttt % NOTE: code points (char-ac-ters) are en-coded us-ing one or mo
re code units,[] 
[389]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18327--18327
 []@texttt :- pred string.codepoint_offset(string::in, int::in, int::out) is se
midet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18332--18332
 []    @texttt % Re-turn the off-set into `String' where, start-ing from `Start
Offset',[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18333--18333
 []    @texttt % `Code-Point-Count' code points are skipped.  Fails if ei-ther 
`StartOffset'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18348--18348
 []@texttt % The fol-low-ing mode is semidet in the sense that it doesn't suc-c
eed more[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18349--18349
 []@texttt % than once - but it does cre-ate a choice-point, which means it's i
nefficient[] 
[390]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 18364--18364
 []@texttt :- pred string.remove_suffix(string::in, string::in, string::out) is
 semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18377--18377
 []    @texttt % string.remove_suffix_if_present(Suffix, String) re-turns `Stri
ng' minus[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18383--18383
 []    @texttt % This is a syn-onym for string.append(Prefix, Suf-fix, String) 
but with[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18384--18384
 []    @texttt % the ar-gu-ments in a more con-ve-nient or-der for use with hig
her-order code.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18386--18386
 []@texttt :- pred string.remove_prefix(string::in, string::in, string::out) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18388--18388
 []    @texttt % string.remove_prefix_if_present(Prefix, String) = Suf-fix re-t
urns `String'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18389--18389
 []    @texttt % mi-nus `Pre-fix' if `String' be-gins with `Pre-fix', `String' 
otherwise.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18393--18393
 []    @texttt % string.prefix(String, Pre-fix) is true iff Pre-fix is a pre-fi
x of String.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18400--18400
 []    @texttt % string.suffix(String, Suf-fix) is true iff Suf-fix is a suf-fi
x of String.[] 
[391]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 18422--18422
 []    @texttt % - `do_not_allow' will throw an ex-cep-tion if (any sub-term of
) the argument[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18426--18426
 []    @texttt % - `in-clude_details_cc' will show the struc-ture of any non-ca
nonical[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18427--18427
 []    @texttt %   sub-terms, but can only be called from a com-mit-ted choice 
context.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18429--18429
 []@texttt :- pred string.string_ops_noncanon(noncanon_handling, ops.table, T, 
string).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18430--18430
 []@texttt :- mode string.string_ops_noncanon(in(do_not_allow), in, in, out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18431--18431
 []@texttt :- mode string.string_ops_noncanon(in(canonicalize), in, in, out) is
 det.[] 
[392]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18465--18465
 []@texttt :- func string.int_to_base_string(int::in, int::in) = (string::uo) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18472--18472
 []    @texttt % If Grou-pLength is less than one then no sep-a-ra-tors will ap
-pear in the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18480--18480
 []    @texttt % In the cur-rent im-ple-men-ta-tion the re-sult-ing float will 
be in the form[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18484--18484
 []    @texttt % The pre-ci-sion cho-sen from this range will be such to al-low
 a successful[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18494--18494
 []    @texttt % Con-vert a c_pointer to a string.  The for-mat is "c_pointer(0
xXXXX)"[] 
[393]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18504--18504
 []    @texttt % string.first_char(String, Char, Rest) is true iff Char is the 
first[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18507--18507
 []    @texttt % WARN-ING: string.first_char makes a copy of Rest be-cause the 
garbage[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18532--18532
 []@texttt :- func string.replace_all(string::in, string::in, string::in) = (st
ring::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18534--18534
 []@texttt :- pred string.replace_all(string::in, string::in, string::in, strin
g::uo)[] 
[394]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 18566--18566
 []    @texttt % Throws an ex-cep-tion if the list of char-ac-ters con-tains a 
null character.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18568--18568
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18576--18576
 []    @texttt % Throws an ex-cep-tion if the list of char-ac-ters con-tains a 
null character.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18578--18578
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18588--18588
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18590--18590
 []@texttt :- pred string.semidet_from_char_list(list(char)::in, string::uo) is
 semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18594--18594
 []    @texttt % Throws an ex-cep-tion if the list of char-ac-ters con-tains a 
null character.[] 
[395]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 18596--18596
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18604--18604
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18617--18617
 []@texttt :- pred string.from_code_unit_list(list(int)::in, string::uo) is sem
idet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18625--18625
 []    @texttt % Con-vert a string to an int. The string must con-tain only dig
-its [0-

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18632--18632
 []    @texttt % Con-vert a string in the spec-i-fied base (2-36) to an int. Th
e string[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18635--18635
 []    @texttt % are rep-re-sented by the let-ters A-Z or a-z. If the string do
es not match[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18639--18639
 []@texttt :- pred string.base_string_to_int(int::in, string::in, int::out) is 
semidet.[] 
[396]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18642--18642
 []    @texttt % if the string ar-gu-ment is not pre-cisely an op-tional sign f
ol-lowed by[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18643--18643
 []    @texttt % a non-empty string of base N dig-its and, if the base is 10, t
he number[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18648--18648
 []    @texttt % Con-vert a string to a float. Throws an ex-cep-tion if the str
ing is not[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18653--18653
 []    @texttt % Con-vert a string to a float. If the string is not a syn-tac-t
i-cally correct[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18678--18678
 []    @texttt % True if Test-Pred is true when ap-plied to each char-ac-ter (c
ode point) in[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18681--18681
 []@texttt :- pred string.all_match(pred(char)::in(pred(in) is semidet), string
::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18685--18685
 []    @texttt % In-sert `Pad-Char's at the left of `String0' un-til it is at l
east as long[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18686--18686
 []    @texttt % as `Width', giv-ing `String'.  Width is cur-rently mea-sured a
s the number[] 
[397]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18690--18690
 []@texttt :- pred string.pad_left(string::in, char::in, int::in, string::out) 
is det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18693--18693
 []    @texttt % In-sert `Pad-Char's at the right of `String0' un-til it is at 
least as long[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18694--18694
 []    @texttt % as `Width', giv-ing `String'.  Width is cur-rently mea-sured a
s the number[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18698--18698
 []@texttt :- pred string.pad_right(string::in, char::in, int::in, string::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18724--18724
 []    @texttt % Calls er-ror/1 if `In-dex' is out of range (neg-a-tive, or gre
ater than[] 
[398]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18758--18758
 []    @texttt % Like `string.index'/3 but also re-turns the po-si-tion of the 
code unit[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18762--18762
 []@texttt :- pred string.index_next(string::in, int::in, int::out, char::uo) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18766--18766
 []    @texttt % code unit `In-dex'. `Nex-tIn-dex' is the off-set fol-low-ing t
he encoding[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18771--18771
 []@texttt :- pred string.unsafe_index_next(string::in, int::in, int::out, char
::uo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18775--18775
 []    @texttt % `Char' is the char-ac-ter (code point) in `String' im-me-di-at
ely _before_[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18776--18776
 []    @texttt % the code unit `In-dex'.  Fails if `In-dex' is out of range (no
n-positive,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18779--18779
 []@texttt :- pred string.prev_index(string::in, int::in, int::out, char::uo) i
s semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18782--18782
 []    @texttt % `Char' is the char-ac-ter (code point) in `String' im-me-di-at
ely _before_[] 
[399]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18783--18783
 []    @texttt % the code unit `In-dex'. `CharIndex' is the off-set of the be-g
in-ning of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18788--18788
 []@texttt :- pred string.unsafe_prev_index(string::in, int::in, int::out, char
::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18796--18796
 []@texttt :- pred string.unsafe_index_code_unit(string::in, int::in, int::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18804--18804
 []    @texttt % `String' mi-nus any ini-tial white-space char-ac-ters in the A
SCII range.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18809--18809
 []    @texttt % `String' mi-nus any trail-ing white-space char-ac-ters in the 
ASCII range.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18814--18814
 []    @texttt % `String' mi-nus any ini-tial and trail-ing white-space char-ac
-ters in the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18820--18820
 []    @texttt % `String' mi-nus the max-i-mal pre-fix con-sist-ing en-tirely o
f characters[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18823--18823
 []@texttt :- func string.lstrip_pred(pred(char)::in(pred(in) is semidet), stri
ng::in)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18827--18827
 []    @texttt % `String' mi-nus the max-i-mal suf-fix con-sist-ing en-tirely o
f characters[] 
[400]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18830--18830
 []@texttt :- func string.rstrip_pred(pred(char)::in(pred(in) is semidet), stri
ng::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18834--18834
 []    @texttt % The length (in code units) of the max-i-mal pre-fix of `String
' consisting[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18837--18837
 []@texttt :- func string.prefix_length(pred(char)::in(pred(in) is semidet), st
ring::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18841--18841
 []    @texttt % The length (in code units) of the max-i-mal suf-fix of `String
' consisting[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18844--18844
 []@texttt :- func string.suffix_length(pred(char)::in(pred(in) is semidet), st
ring::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18850--18850
 []    @texttt % Fails if `In-dex' is out of range (neg-a-tive, or greater than
 or equal to[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18862--18862
 []    @texttt % Calls er-ror/1 if `In-dex' is out of range (neg-a-tive, or gre
ater than[] 
[401]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18900--18900
 []    @texttt % `Clo-sure' is an ac-cu-mu-la-tor pred-i-cate which is to be ca
lled for each[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18902--18902
 []    @texttt % value of the ac-cu-mu-la-tor is `!.Acc' and the fi-nal value i
s `!:Acc'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18912--18912
 []@texttt :- mode string.foldl(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18913--18913
 []@texttt :- mode string.foldl(pred(in, in, out) is non-det, in, in, out) is n
ondet.[] 
[402]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18939--18939
 []@texttt :- func string.foldl_between(func(char, A) = A, string, int, int, A)
 = A.[] 
[403]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18979--18979
 []@texttt :- mode string.foldr(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18980--18980
 []@texttt :- mode string.foldr(pred(in, in, out) is non-det, in, in, out) is n
ondet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18989--18989
 []@texttt :- func string.foldr_between(func(char, T) = T, string, int, int, T)
 = T.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19007--19007
 []@texttt :- func string.foldl_substring(func(char, A) = A, string, int, int, 
A) = A.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19008--19008
 []@texttt :- pred string.foldl_substring(pred(char, A, A), string, int, int, A
, A).[] 
[404]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 19020--19020
 []    @texttt % string.foldl2_substring(Closure, String, Start, Count, !Acc1, 
!Acc2)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19044--19044
 []@texttt :- func string.foldr_substring(func(char, T) = T, string, int, int, 
T) = T.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19045--19045
 []@texttt :- pred string.foldr_substring(pred(char, T, T), string, int, int, T
, T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19059--19059
 []    @texttt % by non-empty se-quences of char-ac-ters (code points) matched 
by SepP.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19062--19062
 []    @texttt % string.words_separator(char.is_whitespace, " the cat  sat on t
he  mat") =[] 
[405]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 19079--19079
 []    @texttt % string.split_at_separator(char.is_whitespace, " a cat  sat on 
the  mat")[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19092--19092
 []    @texttt % string.split_at_string(Separator, String) re-turns the list of
 substrings[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19095--19095
 []    @texttt % string.split_at_string("|||", "|||fld2|||fld3") = ["", "fld2",
 [fld3"][] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19097--19097
 []    @texttt % Al-ways the first match of Sep-a-ra-tor is used to break the S
tring, for[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19098--19098
 []    @texttt % ex-am-ple: string.split_at_string("aa", "xaaayaaaz") = ["x", "
ay", "az"][] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19104--19104
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19107--19107
 []@texttt :- pred string.split(string::in, int::in, string::uo, string::uo) is
 det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19109--19109
 []    @texttt % string.split_by_codepoint(String, Count, Left-Sub-string, Righ
tSubstring):[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19110--19110
 []    @texttt % `Left-Sub-string' is the left-most `Count' char-ac-ters (code 
points) of[] 
[406]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 19112--19112
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19115--19115
 []@texttt :- pred string.split_by_codepoint(string::in, int::in, string::uo, s
tring::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19120--19120
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19127--19127
 []    @texttt % `Left-Sub-string' is the left-most `Count' char-ac-ters (code 
points) of[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19129--19129
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19132--19132
 []@texttt :- func string.left_by_codepoint(string::in, int::in) = (string::uo)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19133--19133
 []@texttt :- pred string.left_by_codepoint(string::in, int::in, string::uo) is
 det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19136--19136
 []    @texttt % `Right-Sub-string' is the right-most `Count' code _units_ of `
String'.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19137--19137
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19144--19144
 []    @texttt % `Right-Sub-string' is the right-most `Count' char-ac-ters (cod
e points) of[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19146--19146
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19149--19149
 []@texttt :- func string.right_by_codepoint(string::in, int::in) = (string::uo
) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19150--19150
 []@texttt :- pred string.right_by_codepoint(string::in, int::in, string::uo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19153--19153
 []    @texttt % `Sub-string' con-sists of the seg-ment of `String' within the 
half-open[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19154--19154
 []    @texttt % in-ter-val [Start, End), where `Start' and `End' are code unit
 offsets.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19155--19155
 []    @texttt % (If `Start' is out of the range [0, length of `String'], it is
 treated[] 
[407]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 19160--19160
 []@texttt :- func string.between(string::in, int::in, int::in) = (string::uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19168--19168
 []@texttt :- func string.substring(string::in, int::in, int::in) = (string::uo
) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19169--19169
 []@texttt :- pred string.substring(string::in, int::in, int::in, string::uo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19172--19172
 []    @texttt % `Sub-string' is the part of `String' be-tween the code point p
ositions[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19174--19174
 []    @texttt % (If `Start' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19181--19181
 []@texttt :- pred string.between_codepoints(string::in, int::in, int::in, stri
ng::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19185--19185
 []    @texttt % `Sub-string' con-sists of the seg-ment of `String' within the 
half-open[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19186--19186
 []    @texttt % in-ter-val [Start, End), where `Start' and `End' are code unit
 offsets.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19190--19190
 []    @texttt % This ver-sion takes time pro-por-tional to the length of the s
ubstring,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19194--19194
 []@texttt :- func string.unsafe_between(string::in, int::in, int::in) = (strin
g::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19204--19204
 []@texttt :- func string.unsafe_substring(string::in, int::in, int::in) = (str
ing::uo)[] 
[408]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19206--19206
 []@texttt :- pred string.unsafe_substring(string::in, int::in, int::in, string
::uo)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19216--19216
 []    @texttt % ad-ja-cent strings. If Strings is the empty list, re-turns the
 empty string.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19218--19218
 []@texttt :- func string.join_list(string::in, list(string)::in) = (string::uo
) is det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19234--19234
 []@texttt :- pred string.sub_string_search(string::in, string::in, int::out) i
s semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19238--19238
 []    @texttt % oc-cur-rence of `Sub-String' oc-curs such that 'In-dex' is gre
ater than or[] 
[409]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 19274--19274
 []    @texttt % An op-tion of zero will cause any padding to be ze-ros rather 
than spaces.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19278--19278
 []    @texttt % and char-ac-ter out-put. A ' ' causes a space to be printed be
-fore a thing[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19279--19279
 []    @texttt % if there is no sign there. The other op-tion is the '#', which
 modifies[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19280--19280
 []    @texttt % the out-put string's for-mat. These op-tions are nor-mally put
 directly[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19290--19290
 []    @texttt % Num-bers are now rounded by pre-ci-sion value, not trun-cated 
as previously.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19292--19292
 []    @texttt % The im-ple-men-ta-tion uses the sprintf() func-tion in C grade
s, so the actual[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19296--19296
 []@texttt :- pred string.format(string::in, list(string.poly_type)::in, string
::out)[] 
[410]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 19306--19306
 []    @texttt % for-mat_table/2 takes a list of columns and a col-umn sep-a-ra
-tor and returns[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19307--19307
 []    @texttt % a for-mat-ted ta-ble, where each field in each col-umn has bee
n aligned[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19308--19308
 []    @texttt % and fields are sep-a-rated with Sep-a-ra-tor. A new-line char-
ac-ter is inserted[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19310--19310
 []    @texttt % an ex-cep-tion is thrown. Lengths are cur-rently mea-sured in 
terms of code[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19315--19315
 []    @texttt % for-mat_table([right(["a", "bb", "ccc"]), left(["1", "22", "33
3"])],[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19324--19324
 []    @texttt % for-mat_table_max(Columns, Sep-a-ra-tor) does the same job as 
format_table,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19325--19325
 []    @texttt % but al-lows the caller to as-so-ciate an max-i-mum width with 
each column.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19327--19327
 []@texttt :- func string.format_table_max(assoc_list(justified_column, maybe(i
nt)),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19335--19335
 []    @texttt % Wrapped is Str with new-lines in-serted be-tween words (sep-a-
rated by ASCII[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19336--19336
 []    @texttt % space char-ac-ters) so that at most N code points ap-pear on a
 line and each[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19338--19338
 []    @texttt % code point in length then it will be bro-ken over two (or more
) lines.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19345--19345
 []    @texttt % need to be bro-ken up over mul-ti-ple lines have Word-Sep-a-ra
-tor inserted[] 
[411] Chapter 75
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19367--19367
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19373--19373
 []@texttt % This file pro-vides an in-ter-face to the 'ar-ray' ADT that is con
-ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19374--19374
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19375--19375
 []@texttt % their coun-ter-parts in the ar-ray mod-ule; the only dif-fer-ence 
is the order[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19393--19393
 []@texttt :- pred svar-ray.set(int::in, T::in, ar-ray(T)::array_di, array(T)::
array_uo)[] 
[412]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19406--19406
 []    @texttt % re-quired to be unique, so the im-ple-men-ta-tion may not be a
ble to use[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19417--19417
 []    @texttt % re-quired to be unique, so the im-ple-men-ta-tion may not be a
ble to use[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19423--19423
 []@texttt %:- mode svar-ray.semidet_slow_set(in, in, ar-ray_ui, ar-ray_uo) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19432--19432
 []@texttt :- pred svar-ray.resize(int::in, T::in, ar-ray(T)::array_di, array(T
)::array_uo)[] 
[413] Chapter 76
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19455--19455
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19461--19461
 []@texttt % This file pro-vides an in-ter-face to the 'bag' ADT that is con-du
cive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19462--19462
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19463--19463
 []@texttt % their coun-ter-parts in the bag mod-ule; the only dif-fer-ence is 
the or-der of the[] 
[414]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 19517--19517
 []@texttt :- pred svbag.remove_list(list(T)::in, bag(T)::in, bag(T)::out) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19524--19524
 []@texttt :- pred svbag.det_remove_list(list(T)::in, bag(T)::in, bag(T)::out) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19530--19530
 []@texttt :- pred svbag.remove_set(set(T)::in, bag(T)::in, bag(T)::out) is sem
idet.[] 
[415]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19536--19536
 []@texttt :- pred svbag.det_remove_set(set(T)::in, bag(T)::in, bag(T)::out) is
 det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19569--19569
 []@texttt :- pred svbag.remove_smallest(T::out, bag(T)::in, bag(T)::out) is se
midet.[] 
Chapter 77
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19583--19583
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[416]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 19589--19589
 []@texttt % This file pro-vides an in-ter-face to the 'bimap' ADT that is con-
ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19590--19590
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19591--19591
 []@texttt % their coun-ter-parts in the bimap mod-ule; the only dif-fer-ence i
s the order[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19609--19609
 []@texttt :- pred svbimap.det_insert(K::in, V::in, bimap(K, V)::in, bimap(K, V
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19613--19613
 []@texttt :- pred svbimap.set(K::in, V::in, bimap(K, V)::in, bimap(K, V)::out)
 is det.[] 
Chapter 78
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19627--19627
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[417]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19635--19635
 []@texttt % This file pro-vides an in-ter-face to the 'eqv-class' ADT that is 
conducive[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19636--19636
 []@texttt % to the use of state vari-able no-ta-tion. The pred-i-cates here do
 the same thing[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19637--19637
 []@texttt % as their coun-ter-parts in the eqv-class mod-ule; the only dif-fer
-ence is the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19655--19655
 []@texttt :- pred sve-qv-class.ensure_element(T::in, eqv-class(T)::in, eqvclas
s(T)::out)[] 
[418] Chapter 79
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19700--19700
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19708--19708
 []@texttt % This file pro-vides an in-ter-face to the 'list' ADT that is con-d
ucive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19709--19709
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19710--19710
 []@texttt % their coun-ter-parts in the pqueue mod-ule; the only dif-fer-ence 
is the order[] 
[419]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 19734--19734
 []    @texttt % svlist.delete_first(Elem, List0, List) is true iff Elem oc-cur
s in List0[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19737--19737
 []@texttt :- pred svlist.delete_first(T::in, list(T)::in, list(T)::out) is sem
idet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19739--19739
 []    @texttt % svlist.delete_elems(Elems, List0, List) is true iff List is Li
st0 with[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19742--19742
 []@texttt :- pred svlist.delete_elems(list(T)::in, list(T)::in, list(T)::out) 
is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19760--19760
 []@texttt :- pred svlist.replace_all(T::in, T::in, list(T)::in, list(T)::out) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19762--19762
 []    @texttt % svlist.det_replace_nth(N, R, List0, List) is true iff List is 
List0[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19767--19767
 []@texttt :- pred svlist.det_replace_nth(int::in, T::in, list(T)::in, list(T):
:out)[] 
Chapter 80 [420]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19782--19782
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19790--19790
 []@texttt % This file pro-vides an in-ter-face to the 'map' ADT that is con-du
cive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19791--19791
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19792--19792
 []@texttt % their coun-ter-parts in the map mod-ule; the only dif-fer-ence is 
the or-der of the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19811--19811
 []@texttt :- pred svmap.insert(K::in, V::in, map(K, V)::in, map(K, V)::out) is
 semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19817--19817
 []@texttt :- pred svmap.det_insert(K::in, V::in, map(K, V)::in, map(K, V)::out
) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19819--19819
 []    @texttt % Ap-ply map.det_insert to key - value pairs from cor-re-spond-i
ng lists.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19822--19822
 []@texttt :- pred svmap.det_insert_from_corresponding_lists(list(K)::in, list(
V)::in,[] 
[421]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 19845--19845
 []@texttt :- pred svmap.update(K::in, V::in, map(K, V)::in, map(K, V)::out) is
 semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19851--19851
 []@texttt :- pred svmap.det_update(K::in, V::in, map(K, V)::in, map(K, V)::out
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19868--19868
 []@texttt :- pred svmap.delete_list(list(K)::in, map(K, V)::in, map(K, V)::out
) is det.[] 
[422]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 19874--19874
 []@texttt :- pred svmap.remove(K::in, V::out, map(K, V)::in, map(K, V)::out) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19880--19880
 []@texttt :- pred svmap.det_remove(K::in, V::out, map(K, V)::in, map(K, V)::ou
t) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19886--19886
 []@texttt :- pred svmap.remove_smallest(K::out, V::out, map(K, V)::in, map(K, 
V)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19891--19891
 []@texttt % Ev-ery-thing be-low here is not in-tended to be part of the pub-li
c interface,[] 
Chapter 81 [423]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19922--19922
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19930--19930
 []@texttt % This file pro-vides an in-ter-face to the 'multi_map' ADT that is 
con-ducive to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19931--19931
 []@texttt % the use of state vari-able no-ta-tion. The pred-i-cates here do th
e same thing as[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19932--19932
 []@texttt % their coun-ter-parts in the multi_map mod-ule; the only dif-fer-en
ce is the order[] 
[424]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 19996--19996
 []@texttt :- pred sv-multi_map.delete(K::in, multi_map(K, V)::in, multi_map(K,
 V)::out)[] 
[425] Chapter 82
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20040--20040
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20048--20048
 []@texttt % This file pro-vides an in-ter-face to the 'pqueue' ADT that is con
-ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20049--20049
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20050--20050
 []@texttt % their coun-ter-parts in the pqueue mod-ule; the only dif-fer-ence 
is the order[] 
[426]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20066--20066
 []@texttt :- pred svpqueue.insert(K::in, V::in, pqueue(K, V)::in, pqueue(K, V)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20072--20072
 []@texttt :- pred svpqueue.remove(K::out, V::out, pqueue(K, V)::in, pqueue(K, 
V)::out)[] 
Chapter 83
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20087--20087
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20095--20095
 []@texttt % This file pro-vides an in-ter-face to the 'queue' ADT that is con-
ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20096--20096
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20097--20097
 []@texttt % their coun-ter-parts in the queue mod-ule; the only dif-fer-ence i
s the order[] 
[427]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20123--20123
 []@texttt :- pred svqueue.put_list(list(T)::in, queue(T)::in, queue(T)::out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20151--20151
 []@texttt :- pred svqueue.put_list_on_front(list(T)::in, queue(T)::in, queue(T
)::out)[] 
[428]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 20158--20158
 []@texttt :- pred svqueue.get_from_back(T::out, queue(T)::in, queue(T)::out) i
s semidet.[] 
Chapter 84 Chapter 85
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20180--20180
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20188--20188
 []@texttt % This file pro-vides an in-ter-face to the 'set' ADT that is con-du
cive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20189--20189
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20190--20190
 []@texttt % their coun-ter-parts in the set mod-ule; the only dif-fer-ence is 
the or-der of[] 
[429]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20208--20208
 []    @texttt % `svset.insert_list(Xs, Set0, Set)' is true iff `Set' is the un
ion of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20222--20222
 []    @texttt % `svset.delete_list(Xs, Set0, Set)' is true iff `Set' is the re
lative[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20243--20243
 []@texttt :- pred svset.remove_list(list(T)::in, set(T)::in, set(T)::out) is s
emidet.[] 
[430] Chapter 86
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20266--20266
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20274--20274
 []@texttt % This file pro-vides an in-ter-face to the 'stack' ADT that is con-
ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20275--20275
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 
[431]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 20299--20299
 []@texttt :- pred svs-tack.push_list(list(T)::in, stack(T)::in, stack(T)::out)
 is det.[] 
Chapter 87
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20324--20324
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20332--20332
 []@texttt % This file pro-vides an in-ter-face to the 'varset' ADT that is con
-ducive to the[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20333--20333
 []@texttt % user of state vari-able no-ta-tion.  The pred-i-cates here do the 
same thing as[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20334--20334
 []@texttt % their coun-ter-parts in the varset mod-ule; the only dif-fer-ence 
is the or-
[432]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 20354--20354
 []@texttt :- pred sv-varset.new_var(var(T)::out, varset(T)::in, varset(T)::out
) is det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20384--20384
 []@texttt :- pred sv-varset.delete_var(var(T)::in, varset(T)::in, varset(T)::o
ut) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20389--20389
 []@texttt :- pred sv-varset.delete_vars(list(var(T))::in, varset(T)::in, varse
t(T)::out)[] 
[433]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 20408--20408
 []@texttt :- pred sv-varset.bind_vars(substitution(T)::in, varset(T)::in, vars
et(T)::out)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 20415--20415
 []@texttt :- pred sv-varset.select(set(var(T))::in, varset(T)::in, varset(T)::
out) is det.[] 
Chapter 88
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20429--20429
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20437--20437
 []@texttt % This file is au-to-mat-i-cally im-ported, as if via `use_module', 
into every[] 
[434]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20440--20440
 []@texttt % the data struc-ture that this pred-i-cate will re-turn, and some o
perations[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20456--20456
 []                @texttt maybe_answer_table_stats    :: maybe(table_stats_cur
r_prev)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20472--20472
 []    @texttt % The def-i-ni-tion of this type be an enum whose im-ple-men-ta-
tion matches[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20473--20473
 []    @texttt % the type MR_TableTrieStep in run-time/mercury_tabling.h. It sh
ould also[] 
[435]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 20497--20497
 []                @texttt ta-ble_step_detail                   :: table_step_s
tat_details[] 
[436] Chapter 89
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20575--20575
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[437]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20606--20606
 []@texttt % :- type op_type ---> fx; fy; xf; yf; xfx; xfy; yfx; fxx; fxy; fyx;
 fyy.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20611--20611
 []@texttt % :- pred term_io.op(int::in, op_type::in, string::in, io::di, io::u
o) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20617--20617
 []@texttt % :- pred term_io.current_ops(list(op_details)::out, io::di, io::uo)
 is det.[] 
[438]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20641--20641
 []    @texttt % Writes a term to stan-dard out-put. Uses the vari-able names s
pecified[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20644--20644
 []@texttt :- pred term_io.write_term(varset(T)::in, term(T)::in, io::di, io::u
o) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20649--20649
 []@texttt :- pred term_io.write_term_with_op_table(Ops::in, varset(T)::in, ter
m(T)::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20654--20654
 []@texttt :- pred term_io.write_term_nl(varset(T)::in, term(T)::in, io::di, io
::uo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20672--20672
 []@texttt :- pred term_io.write_variable(var(T)::in, varset(T)::in, io::di, io
::uo)[] 
[439]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 20695--20695
 []    @texttt % Given an atom-name A, write A, en-closed in single-quotes if n
ecessary,[] 
[440]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20733--20733
 []    @texttt % Like term_io.write_escaped_char, but re-turn the re-sult in a 
string.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20753--20753
 []    @texttt % Like term_io.write_escaped_char, but re-turn the re-sult in a 
string.[] 
Chapter 90
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20769--20769
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[441] [442]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 20855--20855
 []@texttt :- pred try_term_to_type(term(U)::in, term_to_type_result(T, U)::out
) is det.[] 
[443]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 20892--20892
 []    @texttt % Con-vert the value stored in the univ (as dis-tinct from the u
niv itself)[] 
[444]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20916--20916
 []    @texttt % ob-tained by travers-ing the list of terms depth-first, left-t
o-right.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20923--20923
 []    @texttt % True if Term con-tains Var. On back-track-ing re-turns all the
 variables[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20932--20932
 []    @texttt % True if TermList con-tains Var. On back-track-ing re-turns all
 the variables[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20944--20944
 []    @texttt % Unify (with oc-cur check) two terms with re-spect to a set of 
bindings[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20950--20950
 []    @texttt % As above, but unify the cor-re-spond-ing el-e-ments of two lis
ts of terms.[] 
[445]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20958--20958
 []    @texttt % Unify (with oc-cur check) two terms with re-spect to a set of 
bindings[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20959--20959
 []    @texttt % and pos-si-bly up-date the set of bind-ings. Fails if any of t
he variables[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20965--20965
 []    @texttt % As above, but unify the cor-re-spond-ing el-e-ments of two lis
ts of terms.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20969--20969
 []    @texttt list(var(T))::in, sub-sti-tu-tion(T)::in, sub-sti-tu-tion(T)::ou
t) is semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20972--20972
 []    @texttt % Terms1 sub-sumes (is more gen-eral than) Terms2, pro-duc-ing a
 substitution[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20995--20995
 []    @texttt % Re-place all oc-cur-rences of vari-ables in Vars with the corr
esponding[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20997--20997
 []    @texttt % du-pli-cates, or if Vars is not the same length as Re-pls, the
 behaviour[] 
[446]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21005--21005
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21014--21014
 []    @texttt % Re-cur-sively ap-ply sub-sti-tu-tion to Term0 un-til no more s
ubstitutions[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21021--21021
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21036--21036
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21044--21044
 []    @texttt % True iff Var oc-curs in the term re-sult-ing af-ter ap-ply-ing
 Substitution[] 
[447]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 21056--21056
 []    @texttt % Re-place all oc-cur-rences of Old-Var in Term0 with New-Var an
d put the result[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21060--21060
 []@texttt :- pred re-la-bel_variable(term(T)::in, var(T)::in, var(T)::in, term
(T)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21063--21063
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21066--21066
 []@texttt :- func re-la-bel_variables(list(term(T)), var(T), var(T)) = list(te
rm(T)).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21098--21098
 []    @texttt % is_ground_in_bindings(Term, Bind-ings) is true iff no vari-abl
es contained[] 
[448]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21101--21101
 []@texttt :- pred is_ground_in_bindings(term(T)::in, sub-sti-tu-tion(T)::in) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21124--21124
 []@texttt :- pred cre-ate_var(var(T)::out, var_supply(T)::in, var_supply(T)::o
ut) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21134--21134
 []    @texttt % from_int/1 should only be ap-plied to in-te-gers re-turned by 
to_int/1.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21135--21135
 []    @texttt % This in-stance dec-la-ra-tion is needed to al-low sets of vari
-ables to be[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21139--21139
 []    @texttt % Con-vert a vari-able to an int. Dif-fer-ent vari-ables map to 
dif-fer-ent ints.[] 
[449]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 21172--21172
 []@texttt :- pred term_list_to_var_list(list(term(T))::in, list(var(T))::out) 
is semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21178--21178
 []@texttt :- pred var_list_to_term_list(list(var(T))::in, list(term(T))::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21184--21184
 []    @texttt % it doesn't mat-ter what the type of a term is, and pass-ing it
 to this[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21185--21185
 []    @texttt % pred-i-cate will ground the type avoid-ing un-bound type vari-
able warnings.[] 
[450] Chapter 91
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21216--21216
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21229--21229
 []@texttt % The first method re-quires a type to be an in-stance of the xm-lab
le typeclass[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21237--21237
 []@texttt % The sec-ond method is less flex-i-ble than the first, but it al-lo
ws for the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21239--21239
 []@texttt % Each func-tor in a term is given a cor-re-spond-ing well-formed el
-e-ment name in[] 
[451]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21246--21246
 []@texttt % Method 1 al-lows val-ues of a spe-cific type to be mapped to ar-bi
-trary XML[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21248--21248
 []@texttt % In method 2 each func-tor in a term can be mapped to only one XML 
element.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21250--21250
 []@texttt % In method 2 a DTD can be au-to-mat-i-cally gen-er-ated. In method 
1 DTDs cannot[] 
[452] [453]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21339--21339
 []    @texttt --->    pub-lic(string)                  % For-mal Pub-lic Iden-
ti-fier (FPI)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21361--21361
 []    @texttt % Val-ues of this type in-di-cate whether a stylesheet ref-er-en
ce should be[] 
[454]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21409--21409
 []    @texttt % If May-beEn-cod-ing is yes(Encoding), then in-clude `encoding=
"Encoding"'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21413--21413
 []    @texttt State::di, State::uo) is det <= stream.writer(Stream, string, St
ate).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21420--21420
 []    @texttt % Val-ues of this type spec-ify which map-ping from func-tors to
 elements[] 
[455]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 21457--21457
 []    @texttt % A cus-tom map-ping can be pro-vided us-ing the `cus-tom' func-
tor. See the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21458--21458
 []    @texttt % doc-u-men-ta-tion for the el-e-ment_pred type be-low for more 
information.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21470--21470
 []    @texttt % De-ter-min-is-tic pro-ce-dures with the fol-low-ing sig-na-tur
e can be used as[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21471--21471
 []    @texttt % cus-tom func-tor to el-e-ment map-pings. The in-puts to the pr
o-ce-dure are[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21474--21474
 []    @texttt % formed XML el-e-ment name and a list of at-tributes that shoul
d be set[] 
[456] [457]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 21529--21529
 []    @texttt % To sup-port third par-ties gen-er-at-ing XML which is com-pat-
i-ble with the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21531--21531
 []    @texttt % gen-er-ated. A DTD for a given type and functor-to-element map
-ping may[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21547--21547
 []    @texttt % The gen-er-ated DTD is also a good ref-er-ence when cre-at-ing
 a stylesheet[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21551--21551
 []    @texttt % Val-ues of the fol-low-ing type in-di-cate whether a DTD was s
uccessfully[] 
[458]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21573--21573
 []            @texttt % char-ac-ters and floats. If a type is not sup-ported, 
then it is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21577--21577
 []            @texttt % If one of the ar-gu-ments of a func-tor is ex-is-ten-t
ially typed,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21580--21580
 []            @texttt % Since the val-ues of ex-is-ten-tially typed ar-gu-ment
s can be of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21581--21581
 []            @texttt % any type (pro-vided any type-class con-straints are sa
tisfied)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21582--21582
 []            @texttt % it is not gen-er-ally pos-si-ble to gen-er-ate DTD rul
es for functors[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21593--21593
 []    @texttt % not pos-si-ble to gen-er-ate a DTD for Term us-ing El-e-mentMa
p-ping, then a[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21594--21594
 []    @texttt % value other than `ok' is re-turned in DT-DResult and noth-ing 
is written[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21600--21600
 []    @texttt maybe_dtd::in, dtd_generation_result::out, State::di, State::uo)
 is det[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21603--21603
 []    @texttt % write_xml_doc_general_cc(Stream, Term, El-e-mentMap-ping, Mayb
eStyleSheet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21606--21606
 []    @texttt % Write Term to the cur-rent file out-put stream as an XML doc-u
-ment using[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21611--21611
 []    @texttt % it is not pos-si-ble to gen-er-ate a DTD for Term us-ing Eleme
ntMapping,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21612--21612
 []    @texttt % then a value other than `ok' is re-turned in DT-DResult and no
th-ing is[] 
[459]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21624--21624
 []    @texttt % functor-to-element map-ping scheme El-e-mentMap-ping. Re-turn 
`ok' if it[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21626--21626
 []    @texttt % dtd_generation_result type for the mean-ing of the re-turn val
ue when[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21634--21634
 []    @texttt % Write a DTD for the given term to the cur-rent file out-put st
ream using[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21646--21646
 []    @texttt % write_dtd_for_type(Stream, Type, El-e-mentMap-ping, DT-DResult
, !State):[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21656--21656
 []    @texttt State::di, State::uo) is det <= stream.writer(Stream, string, St
ate).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21658--21658
 []    @texttt % write_xml_element_general(Stream, Non-Canon, Ma-keEle-ment, In
dentLevel,[] 
[460]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21667--21667
 []    @texttt % mod-ule in the stan-dard li-brary for more in-for-ma-tion on t
his argument.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21672--21672
 []@texttt :- mode write_xml_element_general(in, in(do_not_allow), in(element_m
apping),[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21674--21674
 []@texttt :- mode write_xml_element_general(in, in(canonicalize), in(element_m
apping),[] 
Chapter 92
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21693--21693
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21701--21701
 []@texttt % A mvar can only con-tain a sin-gle value, a chan-nel on the other 
hand provides[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21704--21704
 []@texttt % For ex-am-ple a pro-gram could con-sist of 2 worker threads and on
e logging[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21705--21705
 []@texttt % thread.  The worker threads can place mes-sages into the chan-nel,
 and they[] 
[461]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 21737--21737
 []@texttt :- pred chan-nel.try_take(channel(T)::in, maybe(T)::out, io::di, io:
:uo) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21742--21742
 []@texttt :- pred chan-nel.duplicate(channel(T)::in, chan-nel(T)::out, io::di,
 io::uo)[] 
Chapter 93 [462]
Overfull \hbox (89.6747pt too wide) in paragraph at lines 21760--21760
 []@texttt % Copy-right (C) 2000-2001,2003-2004, 2006-2008, 2010-2011 The Uni-v
er-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21761--21761
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21771--21771
 []@texttt % The term `con-cur-rency' here refers to threads, not nec-es-sar-il
y to parallel[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21772--21772
 []@texttt % ex-e-cu-tion.  (The lat-ter is also pos-si-ble if you are us-ing o
ne of the .par[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21794--21794
 []    @texttt % trans-ac-tions that is an in-ter-leav-ing of those per-formed 
by `Closure'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21795--21795
 []    @texttt % and those con-tained in `IO' - the list of trans-ac-tions per-
formed by[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21805--21805
 []    @texttt % NOTE: this is not yet im-ple-mented in the hl*.par.gc grades; 
currently[] 
[463] Chapter 94
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21822--21822
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21830--21830
 []@texttt % This mod-ule pro-vides a Mer-cury ver-sion of Haskell mu-ta-ble va
ri-ables.  A[] 
[464]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21868--21868
 []@texttt :- pred mvar.try_take(mvar(T)::in, maybe(T)::out, io::di, io::uo) is
 det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21875--21875
 []    @texttt % Place the value of type T into an empty mvar, re-turn-ing yes 
on success.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21878--21878
 []@texttt :- pred mvar.try_put(mvar(T)::in, T::in, bool::out, io::di, io::uo) 
is det.[] 
Chapter 95
Overfull \hbox (89.6747pt too wide) in paragraph at lines 21897--21897
 []@texttt % Copy-right (C) 2000-2001,2003-2004, 2006-2007, 2009-2011 The Uni-v
er-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21898--21898
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[465]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 21934--21934
 []    @texttt % Re-turns a new semaphore `Sem' with its counter ini-tial-ized 
to Count.[] 
[466]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21953--21953
 []@texttt :- pred semaphore.try_wait(semaphore::in, bool::out, io::di, io::uo)
 is det.[] 
Chapter 96
Overfull \hbox (66.67995pt too wide) in paragraph at lines 21976--21976
 []@texttt % Some por-tions are Copy-right (C) 1999-2007,2009-2011 The Uni-ver-
sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21977--21977
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[467]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21999--21999
 []    @texttt % NOTE: the unit used for a value of this type de-pends on wheth
er it was[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22000--22000
 []    @texttt % re-turned by `time.clock' or `time.times'.  See the com-ments 
on these[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22030--22030
 []                @texttt tm_mon  :: int,         % Month (num-ber since Jan-u
ary, 0-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22035--22035
 []                                        @texttt % (60 and 61 are for leap se
conds)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22036--22036
 []                @texttt tm_yday :: int,         % Year-Day (num-ber since Ja
n 1st, 0-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22037--22037
 []                @texttt tm_wday :: int,         % Week-Day (num-ber since Su
n-day, 0-
[468]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 22055--22055
 []    @texttt % Re-turns the elapsed pro-ces-sor time (num-ber of clock ticks)
. The base time[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22056--22056
 []    @texttt % is ar-bi-trary but doesn't change within a sin-gle pro-cess. I
f the time[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22057--22057
 []    @texttt % can-not be ob-tained, this pro-ce-dure will throw a time_error
 exception.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22058--22058
 []    @texttt % To ob-tain a time in sec-onds, di-vide Re-sult by `time.clocks
_per_sec'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22066--22066
 []    @texttt % Re-turns the num-ber of "clocks" per sec-ond as de-fined by CL
OCKS_PER_SEC.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22067--22067
 []    @texttt % A `clock_t' value re-turned by `time.clock' can be di-vided by
 this value[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22068--22068
 []    @texttt % to ob-tain a time in sec-onds. Note that the value of this fun
c-tion does[] 
[469]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 22090--22090
 []    @texttt % elapsed real time rel-a-tive to an ar-bi-trary base in the `cl
ock_t' value.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22092--22092
 []    @texttt % If the time can-not be ob-tained, this pro-ce-dure will throw 
a time_error[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22118--22118
 []    @texttt % Com-putes the num-ber of sec-onds elapsed be-tween `Time1' and
 `Time0'.[] 
[470]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22139--22139
 []    @texttt % It also nor-malises the value by fill-ing in day of week and d
ay of year[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22155--22155
 []    @texttt % Con-verts the cal-en-dar time value `Time' to a string in a st
an-dard format[] 
Chapter 97
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22171--22171
 []@texttt % Copy-right (C) 1994-1997,1999-2000,2002-2011 The Uni-ver-sity of M
elbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22172--22172
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[471]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22213--22213
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22216--22216
 []@texttt :- pred tree234.lower_bound_search(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22220--22220
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22223--22223
 []@texttt :- pred tree234.lower_bound_lookup(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22227--22227
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 
[472]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22230--22230
 []@texttt :- pred tree234.upper_bound_search(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22234--22234
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22237--22237
 []@texttt :- pred tree234.upper_bound_lookup(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22244--22244
 []@texttt :- pred tree234.insert(K::in, V::in, tree234(K, V)::in, tree234(K, V
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22252--22252
 []@texttt :- pred tree234.delete(K::in, tree234(K, V)::in, tree234(K, V)::out)
 is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22269--22269
 []@texttt :- pred tree234.update(K::in, V::in, tree234(K, V)::in, tree234(K, V
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22276--22276
 []@texttt :- pred tree234.transform_value(pred(V, V)::in(pred(in, out) is det)
, K::in,[] 
[473]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22300--22300
 []@texttt :- mode tree234.foldl(pred(in, in, mdi, muo) is det, in, mdi, muo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22315--22315
 []@texttt :- pred tree234.foldl2(pred(K, V, A, A, B, B), tree234(K, V), A, A, 
B, B).[] 
[474]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22351--22351
 []@texttt :- mode tree234.foldl3(pred(in, in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22353--22353
 []@texttt :- mode tree234.foldl3(pred(in, in, in, out, in, out, mdi, muo) is s
emidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22355--22355
 []@texttt :- mode tree234.foldl3(pred(in, in, in, out, in, out, di, uo) is sem
idet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22358--22358
 []@texttt :- pred tree234.foldl4(pred(K, V, A, A, B, B, C, C, D, D), tree234(K
, V),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22366--22366
 []@texttt :- mode tree234.foldl4(pred(in, in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22368--22368
 []@texttt :- mode tree234.foldl4(pred(in, in, in, out, in, out, di, uo, di, uo
) is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22370--22370
 []@texttt :- mode tree234.foldl4(pred(in, in, in, out, di, uo, di, uo, di, uo)
 is det,[] 
[475]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 22372--22372
 []@texttt :- mode tree234.foldl4(pred(in, in, di, uo, di, uo, di, uo, di, uo) 
is det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22376--22376
 []@texttt :- mode tree234.foldl_values(pred(in, in, out) is det, in, in, out) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22377--22377
 []@texttt :- mode tree234.foldl_values(pred(in, mdi, muo) is det, in, mdi, muo
) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22378--22378
 []@texttt :- mode tree234.foldl_values(pred(in, di, uo) is det, in, di, uo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22381--22381
 []@texttt :- mode tree234.foldl_values(pred(in, mdi, muo) is semidet, in, mdi,
 muo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22389--22389
 []@texttt :- mode tree234.foldl_values(pred(in, mdi, muo) is cc_multi, in, mdi
, muo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22396--22396
 []@texttt :- mode tree234.foldr(pred(in, in, mdi, muo) is det, in, mdi, muo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22411--22411
 []@texttt :- pred tree234.foldr2(pred(K, V, A, A, B, B), tree234(K, V), A, A, 
B, B).[] 
[476]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22425--22425
 []@texttt :- mode tree234.foldr3(pred(in, in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22434--22434
 []@texttt :- pred tree234.foldr4(pred(K, V, A, A, B, B, C, C, D, D), tree234(K
, V),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22442--22442
 []@texttt :- mode tree234.foldr4(pred(in, in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22444--22444
 []@texttt :- mode tree234.foldr4(pred(in, in, in, out, in, out, di, uo, di, uo
) is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22446--22446
 []@texttt :- mode tree234.foldr4(pred(in, in, in, out, di, uo, di, uo, di, uo)
 is det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22448--22448
 []@texttt :- mode tree234.foldr4(pred(in, in, di, uo, di, uo, di, uo, di, uo) 
is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22451--22451
 []@texttt :- func tree234.map_values(func(K, V) = W, tree234(K, V)) = tree234(
K, W).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22455--22455
 []@texttt :- mode tree234.map_values(pred(in, in, out) is semidet, in, out) is
 semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22457--22457
 []@texttt :- func tree234.map_values_only(func(V) = W, tree234(K, V)) = tree23
4(K, W).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22459--22459
 []@texttt :- pred tree234.map_values_only(pred(V, W), tree234(K, V), tree234(K
, W)).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22461--22461
 []@texttt :- mode tree234.map_values_only(pred(in, out) is semidet, in, out) i
s semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22463--22463
 []@texttt :- pred tree234.map_foldl(pred(K, V, W, A, A), tree234(K, V), tree23
4(K, W),[] 
[477]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22480--22480
 []@texttt :- mode tree234.map_foldl2(pred(in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22485--22485
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, di, uo, di, uo, di, uo)
 is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22487--22487
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, in, out, di, uo, di, uo
) is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22489--22489
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22491--22491
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, in, out, in, out, in, o
ut) is det,[] 
[478]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22512--22512
 []@texttt :- mode tree234.map_values_foldl2(pred(in, out, in, out, in, out) is
 det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22514--22514
 []@texttt :- mode tree234.map_values_foldl2(pred(in, out, in, out, in, out) is
 semidet,[] 
Chapter 98 [479]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22568--22568
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22577--22577
 []@texttt % If the in-te-gers stored are closely grouped, a tree_bitset is mor
e compact[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22578--22578
 []@texttt % than the rep-re-sen-ta-tion pro-vided by set.m, and the op-er-a-ti
ons will be much[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22579--22579
 []@texttt % faster. Com-pared to sparse_bitset.m, the op-er-a-tions pro-vided 
by this module[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22580--22580
 []@texttt % for con-tains, union, in-ter-sec-tion and dif-fer-ence can be ex-p
ected to have[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22581--22581
 []@texttt % lower asymp-totic com-plex-ity (of-ten log-a-rith-mic in the num-b
er of el-e-ments in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22582--22582
 []@texttt % the sets, rather than lin-ear). The price for this is a rep-re-sen
-ta-tion that[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22583--22583
 []@texttt % re-quires more mem-ory, higher con-stant fac-tors, and an ad-di-ti
onal factor[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22584--22584
 []@texttt % rep-re-sent-ing the tree in the com-plex-ity of the op-er-a-tions 
that construct[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22585--22585
 []@texttt % tree_bitsets. How-ever, since the depth of the tree has a small up
-per bound,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22586--22586
 []@texttt % we will fold this into the "higher con-stant fac-tors" in the de-s
crip-tions of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22589--22589
 []@texttt % All this means that us-ing a tree_bitset in pref-er-ence to a spar
se_bitset[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22590--22590
 []@texttt % is likely to be a good idea only when the sizes of the sets to be 
manipulated[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22593--22593
 []@texttt % For the time be-ing, this mod-ule can only han-dle items that map 
to nonnegative[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22594--22594
 []@texttt % in-te-gers. This may change once un-signed in-te-ger op-er-a-tions
 are available.[] 
[480]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22627--22627
 []@texttt :- pred equal(tree_bitset(T)::in, tree_bitset(T)::in) is semidet <= 
enum(T).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22629--22629
 []    @texttt % `list_to_set(List)' re-turns a set con-tain-ing only the mem-b
ers of `List'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22634--22634
 []    @texttt % `sorted_list_to_set(List)' re-turns a set con-tain-ing only th
e members[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22635--22635
 []    @texttt % of `List'. `List' must be sorted. Takes O(length(List)) time a
nd space.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22639--22639
 []    @texttt % `from_set(Set)' re-turns a bit-set con-tain-ing only the mem-b
ers of `Set'.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22644--22644
 []    @texttt % `to_sorted_list(Set)' re-turns a list con-tain-ing all the mem
-bers of `Set',[] 
[481]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22654--22654
 []    @texttt % `make_singleton_set(Elem)' re-turns a set con-tain-ing just th
e single[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22664--22664
 []    @texttt % Same as `in-ter-sect(Set, Sub-set, Sub-set)', but may be more 
efficient.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22668--22668
 []    @texttt % `su-per-set(Superset, Set)' is true iff `Su-per-set' is a su-p
er-set of `Set'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22669--22669
 []    @texttt % Same as `in-ter-sect(Superset, Set, Set)', but may be more eff
icient.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22692--22692
 []    @texttt % `in-sert_list(Set, X)' re-turns the union of `Set' and the set
 containing[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22693--22693
 []    @texttt % only the mem-bers of `X'. Same as `union(Set, list_to_set(X))'
, but may be[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22696--22696
 []@texttt :- func in-sert_list(tree_bitset(T), list(T)) = tree_bitset(T) <= en
um(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22697--22697
 []@texttt :- pred in-sert_list(list(T)::in, tree_bitset(T)::in, tree_bitset(T)
::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22700--22700
 []    @texttt % `delete(Set, X)' re-turns the dif-fer-ence of `Set' and the se
t containing[] 
[482]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22711--22711
 []@texttt :- func delete_list(tree_bitset(T), list(T)) = tree_bitset(T) <= enu
m(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22712--22712
 []@texttt :- pred delete_list(list(T)::in, tree_bitset(T)::in, tree_bitset(T):
:out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22716--22716
 []    @texttt % and the set con-tain-ing only `X', fail-ing if `Set0' does not
 con-tain `X'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22722--22722
 []    @texttt % `re-move_list(X, Set0, Set)' re-turns in `Set' the dif-fer-enc
e of `Set0'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22723--22723
 []    @texttt % and the set con-tain-ing all the el-e-ments of `X', fail-ing i
f any element[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22727--22727
 []@texttt :- pred re-move_list(list(T)::in, tree_bitset(T)::in, tree_bitset(T)
::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22730--22730
 []    @texttt % `re-move_leq(Set, X)' re-turns `Set' with all el-e-ments less 
than or equal[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22731--22731
 []    @texttt % to `X' re-moved. In other words, it re-turns the set con-tain-
ing all the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22732--22732
 []    @texttt % el-e-ments of `Set' which are greater than `X'. Takes O(log(ca
rd(Set)))[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22737--22737
 []    @texttt % `re-move_gt(Set, X)' re-turns `Set' with all el-e-ments greate
r than `X'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22738--22738
 []    @texttt % re-moved. In other words, it re-turns the set con-tain-ing all
 the elements[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22739--22739
 []    @texttt % of `Set' which are less than or equal to `X'. Takes O(log(card
(Set)))[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22744--22744
 []    @texttt % `re-move_least(Set0, X, Set)' is true iff `X' is the least el-
e-ment in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22745--22745
 []    @texttt % `Set0', and `Set' is the set which con-tains all the el-e-ment
s of `Set0'[] 
[483]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22753--22753
 []    @texttt % or-der-ing. Takes some-where be-tween O(log(card(SetA)) + log(
card(SetB)))[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22757--22757
 []@texttt :- pred union(tree_bitset(T)::in, tree_bitset(T)::in, tree_bitset(T)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22760--22760
 []    @texttt % `in-ter-sect(SetA, SetB)' re-turns the in-ter-sec-tion of `Set
A' and `SetB'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22761--22761
 []    @texttt % The ef-fi-ciency of the in-ter-sec-tion op-er-a-tion is not se
n-si-tive to the[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22763--22763
 []    @texttt % O(log(card(SetA)) + log(card(SetB))) and O(card(SetA) + card(S
etB)) time,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22767--22767
 []@texttt :- pred in-ter-sect(tree_bitset(T)::in, tree_bitset(T)::in, tree_bit
set(T)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22770--22770
 []    @texttt % `dif-fer-ence(SetA, SetB)' re-turns the set con-tain-ing all t
he elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22771--22771
 []    @texttt % of `SetA' ex-cept those that oc-cur in `SetB'. Takes some-wher
e between[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22772--22772
 []    @texttt % O(log(card(SetA)) + log(card(SetB))) and O(card(SetA) + card(S
etB)) time,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22776--22776
 []@texttt :- pred dif-fer-ence(tree_bitset(T)::in, tree_bitset(T)::in, tree_bi
tset(T)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22787--22787
 []    @texttt % In-Part con-sists of those el-e-ments of Set which are also in
 DivideBySet;[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22788--22788
 []    @texttt % Out-Part con-sists of those el-e-ments of Set which are not in
 DivideBySet.[] 
[484]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 22799--22799
 []    @texttt % (in sorted or-der) and an ac-cu-mu-la-tor (with the ini-tial v
alue of `Start'),[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22816--22816
 []@texttt :- pred foldl2(pred(T, U, U, V, V), tree_bitset(T), U, U, V, V) <= e
num(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22817--22817
 []@texttt :- mode foldl2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22818--22818
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22819--22819
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22820--22820
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22822--22822
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22826--22826
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22828--22828
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22832--22832
 []    @texttt % (in re-verse sorted or-der) and an ac-cu-mu-la-tor (with the i
ni-tial value[] 
[485]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 22845--22845
 []@texttt :- pred foldr2(pred(T, U, U, V, V), tree_bitset(T), U, U, V, V) <= e
num(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22846--22846
 []@texttt :- mode foldr2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22847--22847
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22848--22848
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22849--22849
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22851--22851
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22855--22855
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22857--22857
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22860--22860
 []    @texttt % `fil-ter(Pred, Set) = True-Set' re-turns the el-e-ments of Set
 for which[] 
Chapter 99
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22885--22885
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[486]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22917--22917
 []    @texttt % type vari-able may be ei-ther uni-ver-sally or ex-is-ten-tiall
y quantified.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22919--22919
 []    @texttt % mean-ing be-yond the fact that two type vari-ables will be rep
resented[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22920--22920
 []    @texttt % by iden-ti-cal in-te-gers if and only if they are the same typ
e variable.[] 
[487]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22941--22941
 []    @texttt % Con-vert a pseudo_type_desc de-scrib-ing a ground type to a ty
pe_desc.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22944--22944
 []@texttt :- func ground_pseudo_type_desc_to_type_desc(pseudo_type_desc) = typ
e_desc[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22947--22947
 []    @texttt % Con-vert a pseudo_type_desc de-scrib-ing a ground type to a ty
pe_desc.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22950--22950
 []@texttt :- func det_ground_pseudo_type_desc_to_type_desc(pseudo_type_desc) =
 type_desc.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22955--22955
 []@texttt :- func ground_pseudo_type_desc_to_type_desc_det(pseudo_type_desc) =
 type_desc.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22960--22960
 []    @texttt % (Note: it is not pos-si-ble for the type of a vari-able to be 
an unbound[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22961--22961
 []    @texttt % type vari-able; if there are no con-straints on a type vari-ab
le, then the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22962--22962
 []    @texttt % type-checker will use the type `void'. `void' is a spe-cial (b
uiltin) type[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22964--22964
 []    @texttt % type `void'. `void' is not con-sid-ered to be a dis-crim-i-nat
ed union, so[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22970--22970
 []    @texttt % The pred-i-cate has_type/2 is ba-si-cally an ex-is-ten-tially 
typed inverse[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22971--22971
 []    @texttt % to the func-tion type_of/1. It con-strains the type of the fir
st argument[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22976--22976
 []    @texttt % The pred-i-cate same_type/2 en-sures type iden-tity of the two
 arguments.[] 
[488]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 22990--22990
 []    @texttt % True iff `Type-C-tor' is a rep-re-sen-ta-tion of the top-level
 type constructor[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22991--22991
 []    @texttt % for `Type', and `Ty-peArgs' is a list of the cor-re-spond-ing 
type arguments[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22994--22994
 []    @texttt % For ex-am-ple, type_ctor_and_args(type_of([2,3]), Type-C-tor, 
TypeArgs)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22995--22995
 []    @texttt % will bind `Type-C-tor' to a rep-re-sen-ta-tion of the type con
-struc-tor list/1,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22999--22999
 []    @texttt % Note that the re-quire-ment that `Type-C-tor' not be an equiv-
a-lence type[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23000--23000
 []    @texttt % is ful-filled by fully ex-pand-ing any equiv-a-lence types. Fo
r example,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23003--23003
 []    @texttt % con-struc-tor `bar/0', not `foo/0'. (If you don't want them ex
panded,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23011--23011
 []    @texttt % True iff `Type-C-tor' is a rep-re-sen-ta-tion of the top-level
 type constructor[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23012--23012
 []    @texttt % for `Type', and `Ty-peArgs' is a list of the cor-re-spond-ing 
type arguments[] 
[489]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 23039--23039
 []@texttt :- func pseudo_type_args(pseudo_type_desc) = list(pseudo_type_desc) 
is semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23041--23041
 []    @texttt % type_ctor_name(TypeCtor) re-turns the name of spec-i-fied type
 constructor.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23046--23046
 []    @texttt % type_ctor_module_name(TypeCtor) re-turns the mod-ule name of s
pecified[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23068--23068
 []    @texttt % True iff `Type' is a type con-structed by ap-ply-ing the type 
constructor[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23071--23071
 []    @texttt % Op-er-a-tionally, the for-wards mode re-turns the type formed 
by applying[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23072--23072
 []    @texttt % the spec-i-fied type con-struc-tor to the spec-i-fied ar-gu-me
nt types, or fails[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23073--23073
 []    @texttt % if the length of Ty-peArgs is not the same as the ar-ity of Ty
peCtor.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23074--23074
 []    @texttt % The re-verse mode re-turns a type con-struc-tor and its ar-gu-
ment types,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23075--23075
 []    @texttt % given a type_desc; the type con-struc-tor re-turned may be an 
equivalence[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23076--23076
 []    @texttt % type (and hence this re-verse mode of make_type/2 may be more 
useful[] 
[490]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23086--23086
 []    @texttt % to the spec-i-fied ar-gu-ment types. Aborts if the length of `
TypeArgs'[] 
Chapter 100
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23103--23103
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[491] Chapter 101
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23137--23137
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23157--23157
 []    @texttt % An ob-ject of type `univ' can hold the type and value of an ob
-ject of any[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23164--23164
 []    @texttt % True iff the type stored in `Univ' is the same as the type of 
`Object',[] 
[492]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23184--23184
 []    @texttt % The func-tion univ/1 pro-vides the same func-tion-al-ity as ty
pe_to_univ/2.[] 
Chapter 102 [493]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23222--23222
 []@texttt % Copy-right (C) 1993-2000,2002-2007, 2009-2011 The Uni-ver-sity of 
Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23223--23223
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23240--23240
 []@texttt % There may be some de-sign flaws in the re-la-tion-ship be-tween va
rset.m, and[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23242--23242
 []@texttt % will need to re-think the de-sign;  we may end up mod-i-fy-ing the
se modules[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23243--23243
 []@texttt % con-sid-er-ably, or we may end up mak-ing new single-threaded ver-
sions of these[] 
[494]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 23276--23276
 []@texttt :- pred varset.new_var(var(T)::out, varset(T)::in, varset(T)::out) i
s det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23302--23302
 []@texttt :- pred varset.delete_var(var(T)::in, varset(T)::in, varset(T)::out)
 is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23307--23307
 []@texttt :- pred varset.delete_vars(list(var(T))::in, varset(T)::in, varset(T
)::out)[] 
[495]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 23325--23325
 []@texttt :- pred varset.lookup_name(varset(T)::in, var(T)::in, string::out) i
s det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23331--23331
 []@texttt :- pred varset.lookup_name(varset(T)::in, var(T)::in, string::in, st
ring::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23337--23337
 []@texttt :- pred varset.search_name(varset(T)::in, var(T)::in, string::out) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23354--23354
 []@texttt :- pred varset.search_var(varset(T)::in, var(T)::in, term(T)::out) i
s semidet.[] 
[496]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23363--23363
 []    @texttt % iff VarSet is the varset that re-sults from join-ing a suit-ab
ly renamed[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23364--23364
 []    @texttt % ver-sion of New-VarSet to VarSet0. (Any bind-ings in New-VarSe
t are ignored.)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23368--23368
 []@texttt :- pred varset.merge_renaming(varset(T)::in, varset(T)::in, varset(T
)::out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23371--23371
 []    @texttt % Does the same job as varset.merge_renaming, but re-turns the r
enaming[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23372--23372
 []    @texttt % as a gen-eral sub-sti-tu-tion in which all the terms in the ra
nge happen[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23382--23382
 []    @texttt % As varset.merge_renaming, ex-cept in-stead of re-turn-ing the 
renaming,[] 
[497]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23432--23432
 []@texttt :- pred varset.create_name_var_map(varset(T)::in, map(string, var(T)
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23440--23440
 []@texttt :- pred varset.var_name_list(varset(T)::in, as-soc_list(var(T), stri
ng)::out)[] 
[498]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 23458--23458
 []@texttt :- pred varset.select(set(var(T))::in, varset(T)::in, varset(T)::out
) is det.[] 
Chapter 103
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23484--23484
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23495--23495
 []@texttt % See the header com-ments in ver-sion_array.m for more de-tails abo
ut version[] 
[499]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23508--23508
 []    @texttt % A ver-sion_array2d is a two-dimensional ver-sion ar-ray stored
 in row-

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23509--23509
 []    @texttt % or-der (that is, the el-e-ments of the first row in left-to-ri
ght order,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23514--23514
 []    @texttt % ver-sion_array2d([[X11, ..., X1N], ..., [XM1, ..., XMN]]) con-
structs a 2d[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23518--23518
 []    @texttt % An ex-cep-tion is thrown if the sub-lists are not all the same
 length.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23522--23522
 []    @texttt % init(M, N, X) = ver-sion_array2d([[X11, ..., X1N], ..., [XM1, 
..., XMN]])[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23529--23529
 []    @texttt % new(M, N, X) = ver-sion_array2d([[X11, ..., X1N], ..., [XM1, .
.., XMN]])[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23537--23537
 []    @texttt % ver-sion_array2d([[X11, ..., X1N], ..., [XM1, ..., XMN]]) ^ el
em(I, J) = X[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23538--23538
 []    @texttt % where X is the J+1th el-e-ment of the I+1th row (i.e. in-dices
 start from[] 
[500]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23553--23553
 []@texttt :- func ( ver-sion_array2d(T) ^ elem(int, int) := T  ) = version_arr
ay2d(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23557--23557
 []    @texttt % bounds(version_array2d([[X11, ..., X1N], ..., [XM1, ..., XMN])
, M, N)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23561--23561
 []    @texttt % in_bounds(version_array2d([[X11, ..., X1N], ..., [XM1, ..., XM
N]), I, J)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23583--23583
 []    @texttt % un-safe_rewind(VA2D) re-turns a new 2d ver-sion ar-ray with O(
1) access[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23584--23584
 []    @texttt % times, at the cost of ren-der-ing VA2D and its de-scen-dants u
ndefined.[] 
Chapter 104 [501]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23602--23602
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23611--23611
 []@texttt % Ver-sion types are ef-fi-cient pure im-ple-men-ta-tions of typ-i-c
ally imperative[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23613--23613
 []@texttt % guar-an-teed for the "lat-est" ver-sion of a given struc-ture.  An
 older version[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23616--23616
 []@texttt % For ex-am-ple, if A0 is a ver-sion ar-ray, and A1 is cre-ated by u
p-dat-ing A0,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23617--23617
 []@texttt % and A2 is cre-ated by up-dat-ing A1, ..., and An is cre-ated by up
-dat-ing An-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23618--23618
 []@texttt % then ac-cesses to An cost O(1) (as-sum-ing no fur-ther ver-sions o
f the array[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23621--23621
 []@texttt % Most ver-sion data struc-tures come with im-pure, un-safe means to
 "rewind"[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23623--23623
 []@texttt % leav-ing later ver-sions un-de-fined (i.e. only do this if you are
 discarding[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23626--23626
 []@texttt % The mo-ti-va-tion for us-ing ver-sion types is that they are or-di
-nary ground[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23627--23627
 []@texttt % struc-tures and do not de-pend upon unique-ness, while in many cir
cumstances[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23635--23635
 []@texttt % The ad-van-tage of ver-sion ar-rays is that in the com-mon, singly
 threaded,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23641--23641
 []@texttt % XXX This im-ple-men-ta-tion is not yet guar-an-teed to work with t
he agc (accurate[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23642--23642
 []@texttt % garbage col-lec-tion) grades.  Specif-i-cally, MR_deep_copy and MR
_agc_deep_copy[] 
[502]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23662--23662
 []    @texttt % init(N, X re-turns an ar-ray of size N with each item ini-tial
ised to X.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23666--23666
 []    @texttt % new(N, X) re-turns an ar-ray of size N with each item ini-tial
ised to X.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23671--23671
 []    @texttt % Same as empty/0 ex-cept the re-sult-ing ver-sion_array is not 
thread safe.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23673--23673
 []    @texttt % That is your pro-gram can seg-fault if you at-tempt to con-cur
-rently access[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23674--23674
 []    @texttt % or up-date the ar-ray from dif-fer-ent threads, or any two ar-
rays produced[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23675--23675
 []    @texttt % from op-er-a-tions on the same orig-i-nal ar-ray.  How-ever th
is ver-sion is much[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23676--23676
 []    @texttt % quicker if you guar-an-tee that you never con-cur-rently ac-ce
ss the version[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23681--23681
 []    @texttt % Same as new(N, X) ex-cept the re-sult-ing ver-sion_array is no
t thread safe.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23683--23683
 []    @texttt % That is your pro-gram can seg-fault if you at-tempt to con-cur
-rently access[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23684--23684
 []    @texttt % or up-date the ar-ray from dif-fer-ent threads, or any two ar-
rays produced[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23685--23685
 []    @texttt % from op-er-a-tions on the same orig-i-nal ar-ray.  How-ever th
is ver-sion is much[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23686--23686
 []    @texttt % quicker if you guar-an-tee that you never con-cur-rently ac-ce
ss the version[] 
[503]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 23691--23691
 []    @texttt % ver-sion_array(Xs) re-turns an ar-ray con-structed from the it
ems in the list[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23733--23733
 []@texttt :- pred re-size(int::in, T::in, ver-sion_array(T)::in, version_array
(T)::out)[] 
[504]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23762--23762
 []@texttt :- pred foldl2(pred(T1, T2, T2, T3, T3), ver-sion_array(T1), T2, T2,
 T3, T3).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23765--23765
 []@texttt :- mode foldl2(pred(in, in, out, mdi, muo) is det, in, in, out, mdi,
 muo)[] 
[505]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23788--23788
 []@texttt :- pred foldr2(pred(T1, T2, T2, T3, T3), ver-sion_array(T1), T2, T2,
 T3, T3).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23791--23791
 []@texttt :- mode foldr2(pred(in, in, out, mdi, muo) is det, in, in, out, mdi,
 muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23806--23806
 []    @texttt % un-safe_rewind(A) pro-duces a ver-sion of A for which all ac-c
esses are[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23807--23807
 []    @texttt % O(1).  In-vok-ing this pred-i-cate ren-ders A and all later ve
r-sions undefined[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23808--23808
 []    @texttt % that were de-rived by per-form-ing in-di-vid-ual up-dates.  On
ly use this when[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23809--23809
 []    @texttt % you are ab-so-lutely cer-tain there are no live ref-er-ences t
o A or later[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23813--23813
 []@texttt :- pred un-safe_rewind(version_array(T)::in, ver-sion_array(T)::out)
 is det.[] 
Chapter 105 [506]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23835--23835
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23844--23844
 []@texttt % (See the header com-ments in ver-sion_array.m for an ex-pla-na-tio
n of version[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23849--23849
 []@texttt % The ad-van-tage of ver-sion bit-maps is that in the com-mon, singl
y threaded,[] 
[507] [508]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 23935--23935
 []@texttt :- pred re-size(int::in, bool::in, ver-sion_bitmap::in, version_bitm
ap::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23938--23938
 []    @texttt % un-safe_rewind(B) pro-duces a ver-sion of B for which all ac-c
esses are[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23939--23939
 []    @texttt % O(1).  In-vok-ing this pred-i-cate ren-ders B and all later ve
r-sions undefined[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23940--23940
 []    @texttt % that were de-rived by per-form-ing in-di-vid-ual up-dates.  On
ly use this when[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23941--23941
 []    @texttt % you are ab-so-lutely cer-tain there are no live ref-er-ences t
o B or later[] 
Chapter 106
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23962--23962
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23970--23970
 []@texttt % (See the header com-ments in ver-sion_array.m for an ex-pla-na-tio
n of version[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23973--23973
 []@texttt % Ver-sion hash ta-bles.  The "lat-est" ver-sion of the hash ta-ble 
pro-vides roughly[] 
[509]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23975--23975
 []@texttt % ver-sions of the hash ta-ble are still ac-ces-si-ble, but will in-
curr a growing[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 24015--24015
 []    @texttt % Like init/3, but the con-structed hash ta-ble is backed by a n
on-thread safe[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24016--24016
 []    @texttt % ver-sion ar-ray. It is un-safe to con-cur-rently ac-cess or up
-date the hash[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24017--24017
 []    @texttt % ta-ble from dif-fer-ent threads, or any two hash ta-bles which
 were produced[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24019--24019
 []    @texttt % How-ever, if the hash ta-ble or its de-scen-dents will not be 
used in such a[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24020--24020
 []    @texttt % man-ner, a non-thread safe hash ta-ble can be much faster than
 a thread[] 
[510]
Overfull \hbox (55.18257pt too wide) in paragraph at lines 24043--24043
 []    @texttt % non-thread safe ver-sion ar-ray. See the de-scrip-tion of un-s
afe_init/3 above.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 24056--24056
 []    @texttt % De-fault hash_preds for ints and strings and ev-ery-thing (buw
ahahaha!)[] 
[511]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 24084--24084
 []@texttt :- func 'elem :='(K, ver-sion_hash_table(K, V), V) = ver-sion_hash_t
able(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24090--24090
 []@texttt :- func det_insert(version_hash_table(K, V), K, V) = ver-sion_hash_t
able(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24099--24099
 []@texttt :- func det_update(version_hash_table(K, V), K, V) = ver-sion_hash_t
able(K, V).[] 
[512]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 24133--24133
 []@texttt :- func from_assoc_list(hash_pred(K)::in(hash_pred), as-soc_list(K, 
V)::in) =[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24146--24146
 []@texttt :- mode fold(in(pred(in, in, in, out) is semidet), in, in, out) is s
emidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 24147--24147
 []@texttt :- mode fold(in(pred(in, in, mdi, muo) is semidet), in, mdi, muo) is
 semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 24148--24148
 []@texttt :- mode fold(in(pred(in, in, di, uo) is semidet), in, di, uo) is sem
idet.[] 
Chapter 107
Overfull \hbox (14.94176pt too wide) in paragraph at lines 24162--24162
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[513]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 24170--24170
 []@texttt % (See the header com-ments in ver-sion_array.m for an ex-pla-na-tio
n of version[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 24173--24173
 []@texttt % A ver-sion_store is sim-i-lar to, al-beit slightly slower than, an
 ordinary[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24176--24176
 []@texttt % Note that, un-like or-di-nary stores, live-ness of data is via the
 ver-sion store[] 
[514]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 24214--24214
 []@texttt :- pred new_cyclic_mutvar((func(mutvar(T, S)) = T)::in, mut-var(T, S
)::out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 24239--24239
 []@texttt :- func ( ver-sion_store(S) ^ elem(mutvar(T, S)) := T ) = version_st
ore(S).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24249--24249
 []    @texttt % un-safe_rewind(VS) pro-duces a ver-sion of VS for which all ac
-cesses are[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 24251--24251
 []    @texttt % ver-sions un-de-fined that were de-rived by per-form-ing in-di
-vid-ual updates.[] 
[515]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 24258--24258
 []@texttt :- pred un-safe_rewind(version_store(T)::in, ver-sion_store(T)::out)
 is det.[] 
) [516] )
(see the transcript file for additional information)
Output written on library.dvi (519 pages, 1115848 bytes).
Transcript written on library.log.
/usr/bin/texi2dvi: Running etex --file-line-error './library.texi_pp' ...
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
 file:line:error style messages enabled.
 %&-line parsing enabled.
entering extended mode
(./library.texi_pp (./texinfo.tex Loading texinfo [version 2008-04-18.10]:
pdf, fonts, page headings, tables, conditionals, indexing, sectioning, toc,
environments, defuns, macros, cross references, insertions, localization,
formatting, and turning on texinfo input format.) (./library.aux) [1] [2]
(./library.toc [-1] [-2] [-3] [-4] [-5]) [-6] (./library-chapters.texi_pp
Chapter 1
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8--8
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[1]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 58--58
 []    @texttt % ar-ray2d([[X11, ..., X1N], ..., [XM1, ..., XMN]]) con-structs 
a array2d[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 59--59
 []    @texttt % of size M * N, with the spe-cial case that bounds(array2d([]),
 0, 0).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 61--61
 []    @texttt % An ex-cep-tion is thrown if the sub-lists are not all the same
 length.[] 
[2]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 102--102
 []    @texttt % T ^ un-safe_elem(I, J) := X is the same as T ^ elem(I, J) := X
 except[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 106--106
 []@texttt :- mode ( ar-ray2d_di ^ un-safe_elem(in,  in)  := in ) = ar-ray2d_uo
 is det.[] 
[3] Chapter 2
Overfull \hbox (14.94176pt too wide) in paragraph at lines 145--145
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 158--158
 []@texttt % dis-able some of the check-ing by com-pil-ing with `--intermodule-
optimization'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 163--163
 []@texttt % `mmc --intermodule-optimization --cflags -DML_OMIT_ARRAY_BOUNDS_CH
ECKS'.[] 
[4]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 174--174
 []@texttt % Ar-rays are cur-rently not unique ob-jects. un-til this sit-u-a-ti
on is resolved,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 176--176
 []@texttt % pre-serve cor-rect-ness. In the ab-sence of mode re-order-ing, one
 should therefore[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 177--177
 []@texttt % as-sume that eval-u-a-tion will take place in left-to-right or-der
. For example,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 178--178
 []@texttt % the fol-low-ing code will prob-a-bly not work as ex-pected (f is a
 function,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 189--189
 []@texttt % and will be un-aware that the first line should be or-dered *af-te
r* the second.[] 
[5]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 228--228
 []@texttt :- inst mostly_uniq_array == mostly_uniq_array(ground). % XXX work-a
round[] 
[6]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 272--272
 []@texttt :- func ar-ray.generate(int::in, (func(int) = T)::in) = (array(T)::a
rray_uo)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 276--276
 []    @texttt % As above, but us-ing a pred-i-cate with an ac-cu-mu-la-tor thr
eaded through it[] 
[7]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 342--342
 []    @texttt % ar-ray.in_bounds checks whether an in-dex is in the bounds of 
an array.[] 
[8] [9]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 422--422
 []    @texttt % ar-ray.semidet_slow_set sets the nth el-e-ment of an ar-ray, a
nd returns[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 423--423
 []    @texttt % the re-sult-ing ar-ray. The ini-tial ar-ray is not re-quired t
o be unique,[] 
[10]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 473--473
 []    @texttt % The ar-ray is ex-panded or shrunk to make it fit the new size 
`Size'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 492--492
 []    @texttt % ar-ray.from_list takes a list, and re-turns an ar-ray con-tain
-ing those[] 
[11]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 498--498
 []    @texttt % ar-ray.from_reverse_list takes a list, and re-turns an ar-ray 
containing[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 499--499
 []    @texttt % those el-e-ments in the re-verse or-der that they oc-curred in
 the list.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 501--501
 []@texttt :- func ar-ray.from_reverse_list(list(T)::in) = (ar-ray(T)::array_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 503--503
 []    @texttt % ar-ray.to_list takes an ar-ray and re-turns a list con-tain-in
g the elements[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 515--515
 []    @texttt % and places those items in the ar-ray be-tween these in-dices i
nto a list.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 526--526
 []    @texttt % in-stead of ar-ray.bsearch, which may be dep-re-cated in later
 releases.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 528--528
 []    @texttt % ar-ray.bsearch takes an ar-ray, an el-e-ment to be matched and
 a comparison[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 529--529
 []    @texttt % pred-i-cate and re-turns the po-si-tion of the first oc-cur-re
nce in the array[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 542--542
 []    @texttt % ar-ray.approx_binary_search(A, X, I) per-forms a bi-nary searc
h for an[] 
[12]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 543--543
 []    @texttt % ap-prox-i-mate match for X in ar-ray A, com-put-ing I as the r
e-sult.  More[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 545--545
 []    @texttt % A ^ elem(I) @< X and ei-ther X @< A ^ elem(I + 1) or I is the 
last index[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 549--549
 []    @texttt % ex-act match for X in ar-ray A (i.e., it suc-ceeds iff X = A ^
 elem(I)).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 552--552
 []    @texttt % (the or-der-ing must be with re-spect to the sup-plied com-par
-i-son predicate[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 559--559
 []@texttt :- pred ar-ray.approx_binary_search(comparison_func(T), ar-ray(T), T
, int).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 583--583
 []    @texttt % This sort is not sta-ble. That is, el-e-ments that com-pare/3 
de-cides are[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 584--584
 []    @texttt % equal will ap-pear to-gether in the sorted ar-ray, but not nec
essarily[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 585--585
 []    @texttt % in the same or-der in which they oc-curred in the in-put ar-ra
y. This is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 586--586
 []    @texttt % pri-mar-ily only an is-sue with types with user-defined equiv-
a-lence for[] 
[13]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 597--597
 []@texttt %:- mode ar-ray.foldl(func(in, in) = out is det, ar-ray_ui, in) = ou
t is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 599--599
 []@texttt %:- mode ar-ray.foldl(func(in, di) = uo is det, ar-ray_ui, di) = uo 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 610--610
 []@texttt :- mode ar-ray.foldl(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 611--611
 []@texttt :- mode ar-ray.foldl(pred(in, mdi, muo) is semidet, in, mdi, muo) is
 semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 618--618
 []@texttt :- pred ar-ray.foldl2(pred(T1, T2, T2, T3, T3), ar-ray(T1), T2, T2, 
T3, T3).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 619--619
 []@texttt :- mode ar-ray.foldl2(pred(in, in, out, in, out) is det, in, in, out
, in, out)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 621--621
 []@texttt :- mode ar-ray.foldl2(pred(in, in, out, mdi, muo) is det, in, in, ou
t, mdi, muo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 623--623
 []@texttt :- mode ar-ray.foldl2(pred(in, in, out, di, uo) is det, in, in, out,
 di, uo)[] 
[14]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 651--651
 []@texttt :- pred ar-ray.foldl4(pred(T1, T2, T2, T3, T3, T4, T4, T5, T5), arra
y(T1),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 653--653
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 655--655
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 659--659
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 661--661
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 663--663
 []@texttt :- mode ar-ray.foldl4(pred(in, in, out, in, out, in, out, di, uo) is
 semidet,[] 
[15]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 694--694
 []@texttt %:- mode ar-ray.foldr(func(in, in) = out is det, ar-ray_ui, in) = ou
t is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 696--696
 []@texttt %:- mode ar-ray.foldr(func(in, di) = uo is det, ar-ray_ui, di) = uo 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 707--707
 []@texttt :- mode ar-ray.foldr(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 708--708
 []@texttt :- mode ar-ray.foldr(pred(in, mdi, muo) is semidet, in, mdi, muo) is
 semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 713--713
 []@texttt :- pred ar-ray.foldr2(pred(T1, T2, T2, T3, T3), ar-ray(T1), T2, T2, 
T3, T3).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 714--714
 []@texttt :- mode ar-ray.foldr2(pred(in, in, out, in, out) is det, in, in, out
, in, out)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 716--716
 []@texttt :- mode ar-ray.foldr2(pred(in, in, out, mdi, muo) is det, in, in, ou
t, mdi, muo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 718--718
 []@texttt :- mode ar-ray.foldr2(pred(in, in, out, di, uo) is det, in, in, out,
 di, uo)[] 
[16]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 739--739
 []@texttt :- mode ar-ray.foldr3(pred(in, in, out, in, out, mdi, muo) is semide
t, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 746--746
 []@texttt :- pred ar-ray.foldr4(pred(T1, T2, T2, T3, T3, T4, T4, T5, T5), arra
y(T1),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 748--748
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 750--750
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 754--754
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 756--756
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 758--758
 []@texttt :- mode ar-ray.foldr4(pred(in, in, out, in, out, in, out, di, uo) is
 semidet,[] 
[17]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 801--801
 []    @texttt % each cor-re-spond-ing pair of el-e-ments Aelt and Belt. Build 
up the ar-

Overfull \hbox (32.18782pt too wide) in paragraph at lines 805--805
 []    @texttt % C will have as many el-e-ments as A does. In most uses, B will
 also have[] 
[18]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 827--827
 []@texttt :- func ar-ray.append(array(T)::in, ar-ray(T)::in) = (ar-ray(T)::arr
ay_uo) is det.[] 
Chapter 3
Overfull \hbox (95.42339pt too wide) in paragraph at lines 852--852
 []@texttt % Copy-right (C) 1995-1997, 1999-2001, 2004-2006, 2010-2011 The Uni-
ver-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 853--853
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[19]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 902--902
 []    @texttt % Re-turn the two lists con-tain re-spec-tively the first and se
c-ond member[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 911--911
 []@texttt :- pred as-soc_list.search(assoc_list(K, V)::in, K::in, V::out) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 918--918
 []    @texttt % ex-cep-tion if the key in ques-tion does not ap-pear in the as
soc_list.[] 
[20]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 938--938
 []@texttt :- mode as-soc_list.map_values_only(pred(in, out) is det, in, out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 951--951
 []    @texttt % in-put ar-gu-ment and for each mem-ber K - V of List X, calls 
the closure[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 959--959
 []    @texttt % as-soc_list.negated_filter(Pred, List, FalseList) takes a clo-
sure with one[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 960--960
 []    @texttt % in-put ar-gu-ment and for each mem-ber K - V of List X, calls 
the closure[] 
[21]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 968--968
 []    @texttt % as-soc_list.filter(Pred, List, Tru-eList, FalseList) takes a c
lo-sure with[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 969--969
 []    @texttt % one in-put ar-gu-ment and for each mem-ber K - V of List X, ca
lls the closure[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 974--974
 []    @texttt as-soc_list(K, V)::in, as-soc_list(K, V)::out, as-soc_list(K, V)
::out) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 978--978
 []    @texttt % L is the re-sult of merg-ing the el-e-ments of L1 and L2, in a
s-cend-ing order.[] 
[22] Chapter 4
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1042--1042
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[23]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 1075--1075
 []    @texttt % Re-turn the num-ber of unique val-ues in a bag, du-pli-cate va
l-ues are counted[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1102--1102
 []    @texttt % cor-re-spond-ing bag af-ter the value has been re-moved. Du-pl
i-cate values[] 
[24]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 1130--1130
 []    @texttt % Given a bag, pro-duce a sorted list con-tain-ing all the val-u
es in the bag.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1131--1131
 []    @texttt % Each value will ap-pear in the list once, with the as-so-ci-at
ed integer[] 
[25]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 1160--1160
 []    @texttt % Re-move a list of val-ues from a bag. Du-pli-cates are re-move
d from the bag[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1161--1161
 []    @texttt % the ap-pro-pri-ate num-ber of times. Fail if any of the items 
in the list[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1171--1171
 []@texttt :- pred bag.remove_list(list(T)::in, bag(T)::in, bag(T)::out) is sem
idet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1173--1173
 []    @texttt % Re-move a list of val-ues from a bag. Du-pli-cates are re-move
d from the bag[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1174--1174
 []    @texttt % the ap-pro-pri-ate num-ber of times.  Abort if any of the item
s in the list[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1178--1178
 []@texttt :- pred bag.det_remove_list(list(T)::in, bag(T)::in, bag(T)::out) is
 det.[] 
[26]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1218--1218
 []    @texttt % Sub-tracts Sub-Bag from Bag0 to pro-duce Bag. Each el-e-ment i
n Sub-Bag is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1234--1234
 []    @texttt % The third bag is the in-ter-sec-tion of the first 2 bags. Ev-e
ry element[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1242--1242
 []    @texttt % bag.intersect(A, B) :- bag.intersect(A, B, C), not bag.is_empt
y(C).[] 
[27]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1254--1254
 []@texttt :- pred bag.least_upper_bound(bag(T)::in, bag(T)::in, bag(T)::out) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1280--1280
 []@texttt :- pred bag.subset_compare(comparison_result::out, bag(T)::in, bag(T
)::in)[] 
Chapter 5
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1295--1295
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[28]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1303--1303
 []@texttt % This mod-ule con-tains pred-i-cates that deal with the CPU time re
quirements[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1315--1315
 []    @texttt % `re-port_stats' is a non-logical pro-ce-dure in-tended for use
 in profiling[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1320--1320
 []    @texttt % Note: in Java, this re-ports us-age of the call-ing thread.  Y
ou will get[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1321--1321
 []    @texttt % non-sen-si-cal re-sults if the pre-vi-ous call to `re-port_sta
ts' was from a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1329--1329
 []    @texttt % `re-port_full_memory_stats' is a non-logical pro-ce-dure in-te
nded for use[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1335--1335
 []    @texttt % re-port_memory_attribution(Label, !IO) is a pro-ce-dure in-ten
ded for use in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1336--1336
 []    @texttt % pro-fil-ing the mem-ory us-age by a pro-gram. In `mem-prof.gc'
 grades it has[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1337--1337
 []    @texttt % the side-effect of forc-ing a garbage col-lec-tion and re-port
-ing a summary[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1338--1338
 []    @texttt % of the ob-jects on the heap to a data file. See ``Us-ing mprof
 -s for[] 
[29]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 1348--1348
 []    @texttt % bench-mark_det(Pred, In, Out, Re-peats, Time) is for bench-mar
k-ing the det[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1349--1349
 []    @texttt % pred-i-cate Pred. We call Pred with the in-put In and the out-
put Out, and[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1351--1351
 []    @texttt % bench-marked pred-i-cate. Since most sys-tems do not have good
 facilities[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1354--1354
 []    @texttt % in-ter-val. The num-ber of mil-lisec-onds re-quired to ex-e-cu
te Pred with input[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1361--1361
 []@texttt :- mode bench-mark_det(pred(in, out) is det, in, out, in, out) is cc
_multi.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 1362--1362
 []@texttt :- mode bench-mark_det(pred(in, out) is cc_multi, in, out, in, out) 
is cc_multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1365--1365
 []@texttt :- mode bench-mark_func(func(in) = out is det, in, out, in, out) is 
cc_multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1367--1367
 []@texttt :- pred bench-mark_det_io(pred(T1, T2, T3, T3), T1, T2, T3, T3, int,
 int).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1371--1371
 []    @texttt % bench-mark_nondet(Pred, In, Count, Re-peats, Time) is for benc
hmarking[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1372--1372
 []    @texttt % the non-det pred-i-cate Pred. bench-mark_nondet is sim-i-lar t
o benchmark_det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1373--1373
 []    @texttt % but it re-turns only a count of the so-lu-tions, rather than s
olutions[] 
[30]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1409--1409
 []    @texttt % Turn off or on the col-lec-tion of mem-ory al-lo-cated in each
 procedure[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 1423--1423
 []    @texttt % Write out the trace counts ac-cu-mu-lated so far in this pro-g
ram's execution[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1424--1424
 []    @texttt % to File-Name. If suc-cess-ful, set May-beEr-rorMsg to "no". If
 unsuccessful,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 1426--1426
 []    @texttt % be-cause trace count-ing isn't turned on, then set May-beEr-ro
rMsg to a "yes"[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1435--1435
 []    @texttt % Place a log mes-sage in the thread-scope event stream.  The ev
ent will be[] 
[31]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 1436--1436
 []    @texttt % logged as be-ing gen-er-ated by the cur-rent Mer-cury En-gine.
  This is a no-
Chapter 6
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1453--1453
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1462--1462
 []@texttt % A map (also known as a dic-tio-nary or an as-so-cia-tive ar-ray) i
s a collection[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1463--1463
 []@texttt % of (Key, Data) pairs which al-lows you to look up any Data item gi
ven the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1464--1464
 []@texttt % Key.  A bimap also al-lows you to ef-fi-ciently look up the Key gi
ven the Data.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1465--1465
 []@texttt % This time ef-fi-ciency comes at the ex-pense of us-ing twice as mu
ch space.[] 
[32] [33]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1554--1554
 []@texttt :- pred bimap.det_insert(K::in, V::in, bimap(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 1560--1560
 []    @texttt % NOTE: set-ting the key-value pair (K, V) will re-move the key-
value pairs[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1564--1564
 []@texttt :- pred bimap.set(K::in, V::in, bimap(K, V)::in, bimap(K, V)::out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1566--1566
 []    @texttt % In-sert key-value pairs from an as-so-ci-a-tion list into the 
given bimap.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1567--1567
 []    @texttt % Fails if the con-tents of the as-so-ci-a-tion list and the ini
-tial bimap[] 
[34]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1589--1589
 []@texttt :- pred bimap.det_insert_from_corresponding_lists(list(K)::in, list(
V)::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1593--1593
 []    @texttt % The key-value pairs from the as-so-ci-a-tion list may up-date 
ex-ist-ing keys[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1614--1614
 []@texttt :- pred bimap.delete_key(K::in, bimap(K, V)::in, bimap(K, V)::out) i
s det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1620--1620
 []@texttt :- pred bimap.delete_value(V::in, bimap(K, V)::in, bimap(K, V)::out)
 is det.[] 
[35]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1625--1625
 []@texttt :- pred bimap.delete_keys(list(K)::in, bimap(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1631--1631
 []@texttt :- pred bimap.delete_values(list(V)::in, bimap(K, V)::in, bimap(K, V
)::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1639--1639
 []@texttt :- pred bimap.overlay(bimap(K, V)::in, bimap(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1645--1645
 []@texttt :- pred bimap.to_assoc_list(bimap(K, V)::in, as-soc_list(K, V)::out)
 is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1647--1647
 []    @texttt % Con-vert an as-so-ci-a-tion list to a bimap. Fails if the as-s
o-ci-a-tion list[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1651--1651
 []@texttt :- func bimap.from_assoc_list(assoc_list(K, V)) = bimap(K, V) is sem
idet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1659--1659
 []@texttt :- pred bimap.det_from_assoc_list(assoc_list(K, V)::in, bimap(K, V):
:out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1663--1663
 []    @texttt % im-plic-itly de-fine a bi-jec-tion or if the lists are of un-e
qual length.[] 
[36]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1673--1673
 []@texttt :- func bimap.det_from_corresponding_lists(list(K), list(V)) = bimap
(K, V).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1699--1699
 []    @texttt % Per-form a traver-sal of the bimap, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 1707--1707
 []@texttt :- mode bimap.foldl(pred(in, in, in, out) is semidet, in, in, out) i
s semidet.[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 1708--1708
 []@texttt :- mode bimap.foldl(pred(in, in, mdi, muo) is semidet, in, mdi, muo)
 is semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 1709--1709
 []@texttt :- mode bimap.foldl(pred(in, in, di, uo) is semidet, in, di, uo) is 
semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1711--1711
 []    @texttt % Per-form a traver-sal of the bimap, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1713--1713
 []    @texttt % ex-pres-sive than bimap.foldl, this is of-ten a more con-ve-ni
ent format,[] 
[37]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1732--1732
 []    @texttt % Per-form a traver-sal of the bimap, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1734--1734
 []    @texttt % ex-pres-sive than bimap.foldl, this is of-ten a more con-ve-ni
ent format,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1751--1751
 []@texttt :- mode bimap.foldl3(pred(in, in, in, out, in, out, mdi, muo) is sem
idet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1756--1756
 []    @texttt % Ex-tract a the for-ward map from the bimap, the map from key t
o value.[] 
[38] Chapter 7
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1776--1776
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1784--1784
 []@texttt % and byte-oriented streams.  The use-ful part of the in-ter-face is
 defined[] 
[39] Chapter 8
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1833--1833
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 1849--1849
 []@texttt % for a neg-a-tive num-ber of bits) will re-sult in an ex-cep-tion b
e-ing thrown.[] 
[40]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 1869--1869
 []        @texttt % <= stream.bulk_reader(Stream, byte_index, bit-map, State, 
Error).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1883--1883
 []    @texttt % the stream spec-i-fied by Stream and State in chunks of Num-By
tes bytes.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 1888--1888
 []@texttt :- func new(num_bytes, Stream, State) = read_buffer(Stream, State, E
rror)[] 
[41]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 1924--1924
 []@texttt :- pred get_bit(stream.result(bool, Er-ror), read_buffer(Stream, Sta
te, Error),[] 
[42]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1965--1965
 []    @texttt % Note that this is much more ef-fi-cient if both In-dex and the
 initial[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 1966--1966
 []    @texttt % po-si-tion in the buffer are both at a byte bound-ary (for ex-
am-ple after[] 
Chapter 9
Overfull \hbox (14.94176pt too wide) in paragraph at lines 1998--1998
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[43]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 2005--2005
 []@texttt % A bit buffer pro-vides an in-ter-face be-tween bit-oriented out-pu
t requests[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2006--2006
 []@texttt % and byte-array-oriented streams, stor-ing bits un-til there are en
ough bytes[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2028--2028
 []@texttt :- type io_write_buffer == write_buffer(io.binary_output_stream, io.
state).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2036--2036
 []    @texttt % the stream spec-i-fied by Stream and State in chunks of Num-By
tes bytes.[] 
[44]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 2065--2065
 []@texttt :- pred put_bit(bool, write_buffer(Stream, State), write_buffer(Stre
am, State))[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2069--2069
 []    @texttt % Write the given num-ber of low-order bits from an int to the b
uffer.[] 
[45]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 2096--2096
 []@texttt :- mode put_bitmap(bitmap_ui, in, in, write_buffer_di, write_buffer_
uo) is det.[] 
Chapter 10
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2128--2128
 []@texttt % Copy-right (C) 2001-2002, 2004-2007, 2009-2011 The Uni-ver-sity of
 Melbourne[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2129--2129
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[46]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2157--2157
 []    @texttt % Type `bit-map' is equiv-a-lent to `ar-ray(bool)', but is im-pl
e-mented much[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2164--2164
 []    @texttt % Com-par-i-son of bit-maps first com-pares the size, if the siz
e is equal[] 
[47]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2236--2236
 []    @texttt % Shrink a bit-map with-out copy-ing it into a smaller mem-ory a
llocation.[] 
[48]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 2266--2266
 []    @texttt % As above, but throw an ex-cep-tion if the bit-map has a par-ti
al fi-nal byte.[] 
[49]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 2315--2315
 []@texttt :- mode (bit-map_di  ^ bits(in, in)              := in)   = bit-map_
uo is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2317--2317
 []@texttt :- func (bit-map     ^ un-safe_bits(bit_index, num_bits) := word) = 
bitmap.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2318--2318
 []@texttt :- mode (bit-map_di  ^ un-safe_bits(in, in)              := in)   = 
bitmap_uo[] 
[50]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 2345--2345
 []@texttt :- mode (bit-map_di  ^ un-safe_byte(in)           := in)   = bit-map
_uo is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2351--2351
 []    @texttt % A bit-map slice rep-re-sents the sub-range of a bit-map of Num
Bits bits[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2352--2352
 []    @texttt % start-ing at bit in-dex StartIn-dex.  Throws an ex-cep-tion if
 the slice[] 
[51]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2387--2387
 []    @texttt % Set op-er-a-tions; for bi-nary op-er-a-tions the sec-ond ar-gu
-ment is altered[] 
[52]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2427--2427
 []@texttt :- func copy_bits(bitmap, bit_index, bit-map, bit_index, num_bits) =
 bitmap.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2436--2436
 []@texttt :- func copy_bits_in_bitmap(bitmap, bit_index, bit_index, num_bits) 
= bitmap.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 2444--2444
 []@texttt :- func copy_bytes(bitmap, byte_index, bit-map, byte_index, num_byte
s) = bitmap.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2445--2445
 []@texttt %:- mode copy_bytes(bitmap_ui, in, bit-map_di, in, in) = bit-map_uo 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2450--2450
 []    @texttt % Over-write Num-Bytes bytes start-ing at Dest-Start-Byte with t
he NumBytes[] 
[53] [54] Chapter 11
Overfull \hbox (49.43388pt too wide) in paragraph at lines 2562--2562
 []@texttt % Copy-right (C) 1996-1997,2000,2002-2007,2009-2010 The Uni-ver-sity
 of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2563--2563
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[55]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2571--2571
 []@texttt % This mod-ule ex-ports the boolean type `bool' and some op-er-a-tio
ns on bools.[] 
[56] Chapter 12
Overfull \hbox (66.67995pt too wide) in paragraph at lines 2640--2640
 []@texttt % Copy-right (C) 1997, 1999-2000, 2002-2003, 2005-2006 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2641--2641
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2651--2651
 []@texttt % and up-date time, and does not re-quire the bt_array to be unique.
  If you[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2660--2660
 []@texttt % ex-ploit ac-cu-mu-la-tor re-cur-sion in some op-er-a-tions.  See t
he documentation[] 
[57]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 2681--2681
 []    @texttt % bt_array with bounds from Low to High whose el-e-ments each eq
ual Init.[] 
[58]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2721--2721
 []    @texttt % bt_array.semidet_lookup is like bt_array.lookup ex-cept that i
t fails[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2724--2724
 []@texttt :- pred bt_array.semidet_lookup(bt_array(T)::in, int::in, T::out) is
 semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2740--2740
 []    @texttt % `bt_array.resize(BtArray0, Lo, Hi, Item, BtAr-ray)' is true if
 BtArray[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2741--2741
 []    @texttt % is a bt_array cre-ated by ex-pand-ing or shrink-ing BtAr-ray0 
to fit the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2745--2745
 []    @texttt % Note: This op-er-a-tion is op-ti-mised for the case where the 
lower bound[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2746--2746
 []    @texttt % of the new bt_array is the same as that of the old bt_array. I
n that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2747--2747
 []    @texttt % case, the op-er-a-tion takes time pro-por-tional to the ab-so-
lute difference[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2748--2748
 []    @texttt % in size be-tween the two bt_arrays. If this is not the case, i
t may take[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 2755--2755
 []    @texttt % bt_array.shrink(BtArray0, Lo, Hi, Item, BtAr-ray) is true if B
tArray[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2756--2756
 []    @texttt % is a bt_array cre-ated by shrink-ing BtAr-ray0 to fit the boun
ds (Lo, Hi).[] 
[59]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2757--2757
 []    @texttt % It is an er-ror if the new bounds are not wholly within the bo
unds of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2760--2760
 []    @texttt % Note: This op-er-a-tion is op-ti-mised for the case where the 
lower bound[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2761--2761
 []    @texttt % of the new bt_array is the same as that of the old bt_array. I
n that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2762--2762
 []    @texttt % case, the op-er-a-tion takes time pro-por-tional to the ab-so-
lute difference[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2763--2763
 []    @texttt % in size be-tween the two bt_arrays. If this is not the case, i
t may take[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2766--2766
 []@texttt :- pred bt_array.shrink(bt_array(T)::in, int::in, int::in, bt_array(
T)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2770--2770
 []    @texttt % bt_array.from_list(Low, List, BtAr-ray) takes a list (of pos-s
i-bly zero[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2771--2771
 []    @texttt % length), and re-turns a bt_array con-tain-ing % those el-e-men
ts in the same[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 2772--2772
 []    @texttt % or-der that they oc-curred in the list. The lower bound of the
 new array[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2774--2774
 []@texttt :- pred bt_array.from_list(int::in, list(T)::in, bt_array(T)::out) i
s det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 2785--2785
 []    @texttt % and places those items in the bt_array be-tween these in-dices
 into a list.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 2788--2788
 []@texttt :- pred bt_array.fetch_items(bt_array(T)::in, int::in, int::in, list
(T)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 2793--2793
 []    @texttt % com-par-i-son pred-i-cate and re-turns the po-si-tion of the f
irst occurrence[] 
[60]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 2807--2807
 []    @texttt % (Ar-ray ^ elem(Index) := Value) = bt_array.set(Array, In-dex, 
Value).[] 
Chapter 13
Overfull \hbox (14.94176pt too wide) in paragraph at lines 2822--2822
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 2848--2848
 []@texttt % and the types `pred', `pred(T)', `pred(T1, T2)', `pred(T1, T2, T3)
', ...[] 
[61] [62] [63]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 2983--2983
 []    @texttt % there is more than one ref-er-ence to the data in ques-tion, i
.e. it is[] 
[64]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3012--3012
 []    @texttt % X2)'.  `promise_only_solution(Pred)' pre-sumes that this as-su
mp-tion is[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3013--3013
 []    @texttt % sat-is-fied, and re-turns the X for which Pred(X) is true, if 
there is[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3017--3017
 []    @texttt % `cc_multi' or `cc_nondet' code in-side a `det' or `semidet' pr
ocedure.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3019--3019
 []    @texttt % Note that mis-use of this func-tion may lead to un-sound re-su
lts: if the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3020--3020
 []    @texttt % as-sump-tion is not sat-is-fied, the be-haviour is un-de-fined
.  (If you lie[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3032--3032
 []    @texttt % `promise_only_solution_io' is like `promise_only_solution', bu
t for[] 
[65]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3043--3043
 []    @texttt % the as-sump-tion is not sat-is-fied, the be-haviour is un-de-f
ined.  (If you[] 
[66]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3098--3098
 []    @texttt %   must be to-tal or-der re-la-tions: that is they must be anti
symmetric,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3109--3109
 []    @texttt % XXX The ui modes are com-mented out be-cause they don't yet wo
rk properly.[] 
[67]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3137--3137
 []    @texttt % type, where this or-der-ing is not nec-es-sar-ily the stan-dar
d ordering.[] 
[68]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3190--3190
 []    @texttt % `semidet_fail' is like `fail' ex-cept that its de-ter-min-ism 
is semidet[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3220--3220
 []    @texttt % dy-namic_cast(X, Y) suc-ceeds with Y = X iff X has the same gr
ound type[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3221--3221
 []    @texttt % as Y (so this may suc-ceed if Y is of type list(int), say, but
 not if[] 
Chapter 14 [69]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3237--3237
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3247--3247
 []@texttt % The Gre-go-rian cal-en-dar is the cal-en-dar that is cur-rently us
ed by most of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3248--3248
 []@texttt % the world. In this cal-en-dar a year is a leap year if it is di-vi
s-i-ble by[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 3249--3249
 []@texttt % 4, but not di-vis-i-ble by 100. The only ex-cep-tion is if the yea
r is divisible[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 3250--3250
 []@texttt % by 400, in which case it is a leap year. For ex-am-ple 1900 is not
 leap year,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3252--3252
 []@texttt % Gre-go-rian cal-en-dar back-ward in time to be-fore it was first i
n-tro-duced in[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3265--3265
 []    @texttt % A point on the Pro-lep-tic Gre-go-rian cal-en-dar, to the near
-est microsecond.[] 
[70]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3312--3312
 []    @texttt % init_date(Year, Month, Day, Hour, Minute, Sec-ond, Mi-croSec-o
nd, Date).[] 
[71]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3329--3329
 []    @texttt % Con-vert a string of the form "YYYY-MM-DD HH:MM:SS.mmmmmm" to 
a date.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3338--3338
 []    @texttt % Con-vert a date to a string of the form "YYYY-MM-DD HH:MM:SS.m
mmmmm".[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3352--3352
 []    @texttt % Cal-cu-late the Ju-lian day num-ber for a date on the Gre-go-r
ian calendar.[] 
[72]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3397--3397
 []    @texttt days::out, hours::out, min-utes::out, sec-onds::out, microsecond
s::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3410--3410
 []    @texttt % The string should be of the form "PnYn-M-nDTnHn-MnS" where eac
h "n" is a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3411--3411
 []    @texttt % non-negative in-te-ger rep-re-sent-ing the num-ber of years (Y
), months (M),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3412--3412
 []    @texttt % days (D), hours (H), min-utes (M) or sec-onds (S). The du-ra-t
ion string[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3413--3413
 []    @texttt % al-ways starts with 'P' and the 'T' sep-a-rates the date and t
ime components[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3414--3414
 []    @texttt % of the du-ra-tion. A com-po-nent may be omit-ted if it is zero
, and the 'T'[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3416--3416
 []    @texttt % The sec-ond com-po-nent may in-clude a frac-tion com-po-nent u
s-ing a period.[] 
[73]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3426--3426
 []    @texttt % Note that in-ter-nally the du-ra-tion is rep-re-sented us-ing 
only months,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3428--3428
 []    @texttt % duration_to_string(det_duration_from_string("P1Y18M100DT10H15M
90.0003S"))[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3445--3445
 []    @texttt % If this causes the day to be out of range (e.g. April 31), the
n it is[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3448--3448
 []    @texttt % in turn cause the month and year com-po-nents of the date to c
hange again.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3463--3463
 []    @texttt % can-not be said to be less than, equal to or greater than an-o
ther duration[] 
[74]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 3477--3477
 []    @texttt % To con-vert UTC time to lo-cal time, add the re-sult of local_
time_offset/3[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3478--3478
 []    @texttt % to UTC (us-ing add_duration/3). To com-pute UTC given the lo-c
al time,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3479--3479
 []    @texttt % first negate the re-sult of lo-cal_time_offset/3 (us-ing negat
e/1) and then[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3486--3486
 []    @texttt % The al-go-rithm is greedy in the sense that it will try to max
-imise each[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3487--3487
 []    @texttt % com-po-nent in the re-turned du-ra-tion in the fol-low-ing or-
der: years, months,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3489--3489
 []    @texttt % The re-turned du-ra-tion is pos-i-tive if DateB is af-ter Date
A and negative[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3494--3494
 []    @texttt % time-zones or day-light sav-ings phases, first con-vert the da
tes to UTC.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 3498--3498
 []    @texttt % add_duration(DateB, negate(duration(DateA, DateB)), DateA) may
 not hold.[] 
[75]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3512--3512
 []    @texttt % re-turned du-ra-tion will al-ways be zero. The du-ra-tion will
 be in terms[] 
Chapter 15
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3529--3529
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[76]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 3564--3564
 []    @texttt % `char.to_int'/1 and `char.to_int(in, out)' con-vert a char-ac-
ter to its[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3567--3567
 []    @texttt % `char.to_int(out, in)' con-verts an in-te-ger value to a char-
ac-ter value.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3570--3570
 []    @texttt % Be aware that there is no guar-an-tee that char-ac-ters can be
 writ-ten to[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3571--3571
 []    @texttt % files or to the stan-dard out-put or stan-dard er-ror streams.
 Files us-

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3572--3572
 []    @texttt % 8-bit na-tional char-ac-ter set would only be able to rep-re-s
ent a sub-

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3573--3573
 []    @texttt % all pos-si-ble code points. Cur-rently, the Mer-cury stan-dard
 li-brary can[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3574--3574
 []    @texttt % only read and write UTF-8 text files, so the en-tire range is 
supported[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3577--3577
 []    @texttt % Note that '\0' is not ac-cepted as a Mer-cury null char-ac-ter
 literal.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3578--3578
 []    @texttt % In-stead, a null char-ac-ter can be cre-ated us-ing `char.det_
from_int(0)'.[] 
[77]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3629--3629
 []    @texttt % True iff the char-ac-ter is a white-space char-ac-ter in the A
SCII range,[] 
[78] [79]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 3697--3697
 []    @texttt % Re-turns a dec-i-mal digit or up-per-case let-ter cor-re-spond
-ing to the value.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3725--3725
 []    @texttt % These code points should not be used for in-ter-change, but ma
y be used[] 
Chapter 16
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3742--3742
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[80]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3788--3788
 []    @texttt % Binds Func-tor-Name and Ar-ity to the name and ar-ity of func-
tor number[] 
[81]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 3797--3797
 []    @texttt % get_functor_with_names(Type, Func-tor-Num-ber, Func-tor-Name, 
Ar-ity, ArgTypes,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3800--3800
 []    @texttt % Binds Func-tor-Name and Ar-ity to the name and ar-ity of func-
tor number[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3802--3802
 []    @texttt % for the types of the ar-gu-ments of that func-tor, and ArgName
s to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3804--3804
 []    @texttt % not a dis-crim-i-nated union type, or if Func-tor-Num-ber is o
ut of range.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3812--3812
 []    @texttt % Re-turns Or-di-nal, where Or-di-nal is the po-si-tion in dec-l
a-ra-tion order[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3813--3813
 []    @texttt % for the spec-i-fied type of the func-tion sym-bol that is in p
o-si-tion I[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 3834--3834
 []    @texttt % Given a type de-scrip-tor, a func-tor name and ar-ity, finds t
he functor[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 3835--3835
 []    @texttt % num-ber and the types of its ar-gu-ments. It thus serves as th
e converse[] 
[82]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3847--3847
 []    @texttt % num-ber of ar-gu-ments sup-plied doesn't match the ar-ity of t
he selected[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 3851--3851
 []@texttt :- func con-struct(type_desc, func-tor_number_lex, list(univ)) = uni
v is semidet.[] 
Chapter 17
Overfull \hbox (14.94176pt too wide) in paragraph at lines 3871--3871
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 3880--3880
 []@texttt % A cord is es-sen-tially a tree struc-ture with data stored in the 
leaf nodes.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 3881--3881
 []@texttt % Join-ing two cords to-gether to con-struct a new cord is there-for
e an O(1)[] 
[83]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 3887--3887
 []@texttt % While this data type presents a list-like in-ter-face, calls to li
st/1 and[] 
[84] [85] [86]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 4033--4033
 []@texttt :- mode foldl_pred(in(pred(in, in, out) is semidet), in, in, out) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4034--4034
 []@texttt :- mode foldl_pred(in(pred(in, mdi, muo) is semidet), in, mdi, muo) 
is semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4035--4035
 []@texttt :- mode foldl_pred(in(pred(in, di, uo) is semidet), in, di, uo) is s
emidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4044--4044
 []@texttt :- mode foldr_pred(in(pred(in, in, out) is semidet), in, in, out) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4045--4045
 []@texttt :- mode foldr_pred(in(pred(in, mdi, muo) is semidet), in, mdi, muo) 
is semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4046--4046
 []@texttt :- mode foldr_pred(in(pred(in, di, uo) is semidet), in, di, uo) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4051--4051
 []    @texttt % left to right. Each call to P trans-forms an el-e-ment of the 
in-put cord[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4062--4062
 []@texttt :- mode map_foldl(in(pred(in, out, in, out) is semidet), in, out, in
, out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4064--4064
 []@texttt :- mode map_foldl(in(pred(in, out, mdi, muo) is semidet), in, out, m
di, muo)[] 
[87]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 4079--4079
 []    @texttt cord(A)::in, cord(B)::out, C::in, C::out, D::in, D::out, E::in, 
E::out)[] 
Chapter 18
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4101--4101
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4109--4109
 []@texttt % Pred-i-cates for deal-ing with coun-ters, which are mech-a-nisms f
or allocating[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4110--4110
 []@texttt % con-sec-u-tively num-bered in-te-gers. The ab-strac-tion bar-rier 
elim-i-nates the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4112--4112
 []@texttt % the next num-ber to be handed out, or the last num-ber that was ha
nded out?".[] 
[88] Chapter 19
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4151--4151
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[89]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 4175--4175
 []    @texttt % i.e. of a type in which a sin-gle log-i-cal value may have mor
e than one[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4182--4182
 []    @texttt % pred-i-cate should re-turn a con-stant giv-ing the iden-tity o
f the type,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4186--4186
 []    @texttt % the pred-i-cate should pro-ceed as if the term were of a canon
-i-cal type.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4205--4205
 []    @texttt % (in-clud-ing univ), and re-turn rep-re-sen-ta-tion in-for-ma-t
ion for that type.[] 
[90] [91]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4281--4281
 []@texttt :- pred func-tor_number(T::in, func-tor_number_lex::out, int::out) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4297--4297
 []    @texttt % the func-tor of the data item. If the ar-gu-ment in-dex is out
 of range[] 
[92]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4314--4314
 []    @texttt % arg_cc/3 is sim-i-lar to arg/4, ex-cept that it han-dles ar-gu
-ments with[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4323--4323
 []    @texttt % its name rather than its po-si-tion. If Data has no ar-gu-ment
 with that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4329--4329
 []@texttt :- mode named_arg(in, in(canonicalize_or_do_not_allow), in, out) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4349--4349
 []    @texttt % Same as named_arg/4, ex-cept that for cases where named_arg/4 
would fail,[] 
[93]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4361--4361
 []    @texttt % of the func-tor, Ar-ity to the ar-ity of this data item, and A
rguments[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4365--4365
 []    @texttt % The cost of call-ing de-con-struct de-pends greatly on how man
y arguments[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4376--4376
 []@texttt :- mode de-con-struct(in, in(include_details_cc), out, out, out) is 
cc_multi.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4381--4381
 []    @texttt % Given a data item (Data) which has a dis-crim-i-nated union ty
pe, binds[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4384--4384
 []    @texttt % ar-gu-ments of the func-tor. The ar-gu-ments in the list are e
ach of type[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4392--4392
 []@texttt :- mode de-con-struct_du(in, in(include_details_cc), out, out, out) 
is cc_nondet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4398--4398
 []    @texttt % lim-ited_deconstruct works like de-con-struct, but if the ar-i
ty of T is[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4399--4399
 []    @texttt % greater than MaxAr-ity, lim-ited_deconstruct fails. This is us
e-ful in[] 
[94] Chapter 20
Overfull \hbox (26.43913pt too wide) in paragraph at lines 4427--4427
 []@texttt % Copy-right (C) 1995-1999,2002-2007, 2010-2011 The Uni-ver-sity of 
Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4428--4428
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4436--4436
 []@texttt % This mod-ule de-fines a data type rep-re-sent-ing di-rected graphs
.  A directed[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4437--4437
 []@texttt % graph of type di-graph(T) is log-i-cally equiv-a-lent to a set of 
ver-tices of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4438--4438
 []@texttt % type T, and a set of edges of type pair(T).  The end-points of eac
h edge[] 
[95]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 4461--4461
 []    @texttt % The ab-stract type that in-dexes ver-tices in a di-graph.  Eac
h key is only[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4462--4462
 []    @texttt % valid with the di-graph it was cre-ated from -- pred-i-cates a
nd functions[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4483--4483
 []    @texttt % di-graph.search_key re-turns the key as-so-ci-ated with a ver-
tex.  Fails if[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4489--4489
 []    @texttt % di-graph.lookup_key re-turns the key as-so-ci-ated with a ver-
tex.  Aborts if[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4499--4499
 []@texttt :- pred di-graph.lookup_vertex(digraph(T)::in, di-graph_key(T)::in, 
T::out)[] 
[96]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 4530--4530
 []@texttt :- func di-graph.add_assoc_list(assoc_list(digraph_key(T), digraph_k
ey(T)),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4532--4532
 []@texttt :- pred di-graph.add_assoc_list(assoc_list(digraph_key(T), digraph_k
ey(T))::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4538--4538
 []@texttt :- func di-graph.delete_edge(digraph_key(T), di-graph_key(T), di-gra
ph(T)) =[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4545--4545
 []@texttt :- func di-graph.delete_assoc_list(assoc_list(digraph_key(T), digrap
h_key(T)),[] 
[97]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 4564--4564
 []    @texttt % Given key x, di-graph.lookup_from re-turns the set of keys y s
uch that[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4567--4567
 []@texttt :- func di-graph.lookup_from(digraph(T), di-graph_key(T)) = set(digr
aph_key(T)).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4578--4578
 []    @texttt % Given a key y, di-graph.lookup_to re-turns the set of keys x s
uch that[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4581--4581
 []@texttt :- func di-graph.lookup_to(digraph(T), di-graph_key(T)) = set(digrap
h_key(T)).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4594--4594
 []    @texttt % di-graph.to_assoc_list turns a di-graph into a list of pairs o
f vertices,[] 
[98]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4598--4598
 []@texttt :- pred di-graph.to_assoc_list(digraph(T)::in, as-soc_list(T, T)::ou
t) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4600--4600
 []    @texttt % di-graph.to_key_assoc_list turns a di-graph into a list of pai
rs of keys,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4608--4608
 []    @texttt % di-graph.from_assoc_list turns a list of pairs of ver-tices in
to a digraph.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4611--4611
 []@texttt :- pred di-graph.from_assoc_list(assoc_list(T, T)::in, di-graph(T)::
out) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4615--4615
 []    @texttt % di-graph.dfs(G, Key, Dfs) is true if Dfs is a depth-first sort
-ing of G[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4627--4627
 []@texttt :- func di-graph.dfsrev(digraph(T), di-graph_key(T)) = list(digraph_
key(T)).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4632--4632
 []    @texttt % i.e. a list of all the keys in G such that all keys for chil-d
ren of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4634--4634
 []    @texttt % di-graph is cyclic, the po-si-tion in which cy-cles are bro-ke
n (that is,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4640--4640
 []    @texttt % di-graph.dfsrev(G, Df-s-Rev) is true if Df-s-Rev is a re-verse
 depth-first[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4641--4641
 []    @texttt % sort-ing of G.  That is, Df-s-Rev is the re-verse of Dfs from 
digraph.dfs/2.[] 
[99]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4644--4644
 []@texttt :- pred di-graph.dfsrev(digraph(T)::in, list(digraph_key(T))::out) i
s det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4647--4647
 []    @texttt % sort-ing of G start-ing at Key, as-sum-ing we have al-ready vi
s-ited !.Visit[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4650--4650
 []    @texttt % par-ent.  !.Visit al-lows us to ini-tialise a set of pre-vi-ou
sly visited[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4653--4653
 []@texttt :- pred di-graph.dfs(digraph(T)::in, di-graph_key(T)::in, digraph_ke
y_set(T)::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4658--4658
 []    @texttt % al-ready vis-ited !.Visit nodes, ie the re-verse of Dfs from d
igraph.dfs/5.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4672--4672
 []    @texttt % di-graph.inverse(G, G') is true iff the do-mains of G and G' a
re equal,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4673--4673
 []    @texttt % and for all x, y in this do-main, (x,y) is an edge in G iff (y
,x) is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4680--4680
 []    @texttt % of the di-graphs G1 and G2.  That is, there is an edge (x,y) i
n G iff[] 
[100]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4695--4695
 []@texttt :- pred di-graph.components(digraph(T)::in, set(set(digraph_key(T)))
::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4702--4702
 []@texttt :- pred di-graph.cliques(digraph(T)::in, set(set(digraph_key(T)))::o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4704--4704
 []    @texttt % di-graph.reduced(G, R) is true if R is the re-duced di-graph (
di-graph of[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4710--4710
 []    @texttt % As above, but also re-turn a map from each key in the orig-i-n
al digraph[] 
[101]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4738--4738
 []    @texttt % di-graph.rtc(G, RTC) is true if RTC is the re-flex-ive tran-si
-tive closure[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4744--4744
 []    @texttt % di-graph.traverse(G, Pro-cessVer-tex, Pro-cessEdge) will tra-v
erse a digraph[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4745--4745
 []    @texttt % call-ing Pro-cessVer-tex for each ver-tex in the di-graph and 
Pro-cessEdge for[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4746--4746
 []    @texttt % each edge in the di-graph.  Each ver-tex is pro-cessed fol-low
ed by all the[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4747--4747
 []    @texttt % edges orig-i-nat-ing at that ver-tex, un-til all ver-tices hav
e been processed.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4749--4749
 []@texttt :- pred di-graph.traverse(digraph(T), pred(T, A, A), pred(T, T, A, A
), A, A).[] 
Chapter 21
Overfull \hbox (49.43388pt too wide) in paragraph at lines 4766--4766
 []@texttt % Copy-right (C) 1994-1995,1997,1999-2000,2002-2011 The Uni-ver-sity
 of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4767--4767
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 4778--4778
 []@texttt % sep-a-ra-tors in paths passed to them to the nor-mal sep-a-ra-tor 
for the platform,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4781--4781
 []@texttt % Du-pli-cate di-rec-tory sep-a-ra-tors and trail-ing sep-a-ra-tors 
are also removed[] 
[102] [103]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4840--4840
 []    @texttt % so `dir.split_name("C:foo, _, _)' will fail when run-ning un-d
er Cygwin.[] 
[104]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 4878--4878
 []    @texttt % Trail-ing slashes in Path-Name are re-moved first, if that doe
sn't change[] 
[105]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 4941--4941
 []@texttt :- pred dir.current_directory(io.res(string)::out, io::di, io::uo) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 4949--4949
 []@texttt :- pred dir.make_directory(string::in, io.res::out, io::di, io::uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 4952--4952
 []    @texttt % Fails if the di-rec-tory al-ready ex-ists, or the par-ent di-r
ec-tory doesn't.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4954--4954
 []@texttt :- pred dir.make_single_directory(string::in, io.res::out, io::di, i
o::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4961--4961
 []    @texttt % A pred-i-cate passed to dir.foldl2 to pro-cess each en-try in 
a directory.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 4966--4966
 []@texttt :- inst dir.foldl_pred == (pred(in, in, in, out, in, out, di, uo) is
 det).[] 
[106]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 4972--4972
 []    @texttt % Pro-cess-ing will stop if the boolean (Con-tinue) out-put of P
 is bound[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4983--4983
 []    @texttt % Sub-di-rec-to-ries are pro-cessed depth-first, pro-cess-ing th
e di-rec-tory itself[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 4984--4984
 []    @texttt % be-fore its con-tents. If `Fol-lowSym-Links' is `yes', re-cur-
sively process[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 4993--4993
 []    @texttt % Im-ple-ment brace ex-pan-sion, as in sh: re-turn the se-quence
 of strings[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 4997--4997
 []    @texttt % The fol-low-ing is the doc-u-men-ta-tion of brace ex-pan-sion 
from the sh manual:[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5000--5000
 []    @texttt %   gen-er-ated. This mech-a-nism is sim-i-lar to path-name ex-p
an-sion, but the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5001--5001
 []    @texttt %   file-names gen-er-ated need not ex-ist. Pat-terns to be brac
e expanded[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5004--5004
 []    @texttt %   op-tional post-script. The pream-ble is pre-fixed to each st
ring contained[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5008--5008
 []    @texttt %   Brace ex-pan-sions may be nested. The re-sults of each ex-pa
nded string[] 
Chapter 22 [107]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5026--5026
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5035--5035
 []@texttt % which can be con-verted to and from in-te-gers with-out loss of in
formation.[] 
Chapter 23
Overfull \hbox (37.93651pt too wide) in paragraph at lines 5060--5060
 []@texttt % Copy-right (C) 1995-1997, 1999, 2003-2006, 2011 The Uni-ver-sity o
f Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5061--5061
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[108]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 5094--5094
 []    @texttt % If this item is known to the equiv-a-lence class, re-turn the 
id of its[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5095--5095
 []    @texttt % par-ti-tion. The only use that the caller can make of the par-
ti-tion id[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5096--5096
 []    @texttt % is to check whether two items in the same equiv-a-lence calls 
have the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5099--5099
 []    @texttt % to stay the same as an eqv-class is up-dated, so such com-par-
isons will[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 5102--5102
 []    @texttt % If you want to check whether two items are in the same equiv-a
-lence class,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5105--5105
 []    @texttt % How-ever, if you want to per-form this check on X and Y1, on X
 and Y2,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5106--5106
 []    @texttt % ... X and Yn, then call-ing eqv-class.partition_id on X just o
nce and[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5107--5107
 []    @texttt % com-par-ing this with the par-ti-tion_ids of the Yi will be mo
re efficient.[] 
[109]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5124--5124
 []@texttt :- pred eqv-class.ensure_element(T::in, eqv-class(T)::in, eqvclass(T
)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5132--5132
 []@texttt :- pred eqv-class.new_element(T::in, eqv-class(T)::in, eqv-class(T):
:out) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5143--5143
 []@texttt :- pred eqv-class.ensure_corresponding_equivalences(list(T)::in, lis
t(T)::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5155--5155
 []@texttt :- pred eqv-class.same_eqvclass(eqvclass(T)::in, T::in, T::in) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5159--5159
 []@texttt :- pred eqv-class.same_eqvclass_list(eqvclass(T)::in, list(T)::in) i
s semidet.[] 
[110]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5164--5164
 []@texttt :- pred eqv-class.partition_set(eqvclass(T)::in, set(set(T))::out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5169--5169
 []@texttt :- pred eqv-class.partition_list(eqvclass(T)::in, list(set(T))::out)
 is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5175--5175
 []@texttt :- pred eqv-class.partition_set_to_eqvclass(set(set(T))::in, eqvclas
s(T)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5198--5198
 []@texttt :- func eqv-class.remove_equivalent_elements(eqvclass(T), T) = eqvcl
ass(T).[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 5202--5202
 []    @texttt % Given a func-tion, di-vide each par-ti-tion in the orig-i-nal 
equiv-a-lence class[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5204--5204
 []    @texttt % par-ti-tion in the new equiv-a-lence class if and only if the 
func-tion maps[] 
[111] Chapter 24
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5222--5222
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5230--5230
 []@texttt % This file is in-tended to hold things re-lated to Er-lang for the 
Er-lang grade.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5233--5233
 []@texttt % Cur-rently it con-tains a server that is started at pro-gram initi
alisation[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5234--5234
 []@texttt % to em-u-late global vari-ables.  Lookups and up-dates of global mu
-ta-bles work by[] 
Chapter 25
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5258--5258
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[112]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 5270--5270
 []@texttt % `pragma for-eign_export' throws an ex-cep-tion which is not caught
 within that[] 
[113] [114] [115]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 5414--5414
 []@texttt :- pred in-cre-men-tal_try_all(pred(T), pred(exception_result(T), A,
 A), A, A).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5440--5440
 []@texttt :- pred fi-nally(pred(T, io, io), T, pred(io.res, io, io), io.res, i
o, io).[] 
[116] Chapter 26
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5474--5474
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[117] [118] [119] [120] [121] Chapter 27
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5709--5709
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[122] Chapter 28
Overfull \hbox (14.94176pt too wide) in paragraph at lines 5753--5753
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5761--5761
 []@texttt % This mod-ule ex-ports the pred-i-cate getopt_io.process_options/6,
 which can be[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5764--5764
 []@texttt % This ver-sion al-lows both short (single-character) op-tions and G
NU-style long[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 5765--5765
 []@texttt % op-tions. It also has the GNU ex-ten-sion of rec-og-niz-ing op-tio
ns any-where in[] 
[123]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 5801--5801
 []@texttt % For the "sim-ple" op-tion types, if there are mul-ti-ple oc-cur-re
nces of the same[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5802--5802
 []@texttt % op-tion on the command-line, then the last (right-most) oc-cur-ren
ce will take[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5806--5806
 []@texttt % With the ex-cep-tion of file_special, the "spe-cial" op-tion types
 are handled[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 5807--5807
 []@texttt % by a spe-cial op-tion han-dler (see `spe-cial_handler' be-low), wh
ich may perform[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5808--5808
 []@texttt % ar-bi-trary mod-i-fi-ca-tions to the op-tion_table.  For ex-am-ple
, an op-tion which[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5809--5809
 []@texttt % is not yet im-ple-mented could be han-dled by a spe-cial han-dler 
which produces[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5811--5811
 []@texttt % "prim-i-tive" op-tions could be han-dled by a spe-cial han-dler wh
ich sets those[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 5814--5814
 []@texttt % It is an er-ror to use a "spe-cial" op-tion for which there is no 
han-dler, or[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5826--5826
 []@texttt % en-tirely by this mod-ule. It al-ways takes a sin-gle ar-gu-ment, 
a file name.[] 
[124]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 5828--5828
 []@texttt % con-tents into a se-quence of words sep-a-rated by white space, an
d interpreting[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5836--5836
 []@texttt % pro-cess-ing will im-me-di-ately ter-mi-nate, with-out pro-cess-in
g any remaining[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 5854--5854
 []@texttt % getopt_io.process_options(OptionOps, Args, Op-tionArgs, NonOp-tion
Args, Result)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 5859--5859
 []@texttt %   `Op-tionTable' is a map from a user-defined op-tion type to opti
on_data.[] 
[125]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 5884--5884
 []@texttt %   The canon-i-cal ex-am-ples of spe-cial op-tions are -O op-tions 
in compilers,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5887--5887
 []@texttt :- pred getopt_io.process_options(option_ops(OptionType)::in(option_
ops),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 5888--5888
 []    @texttt list(string)::in, list(string)::out, maybe_option_table(OptionTy
pe)::out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 5891--5891
 []@texttt :- pred getopt_io.process_options(option_ops(OptionType)::in(option_
ops),[] 
[126] [127] [128]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6016--6016
 []@texttt :- pred getopt_io.lookup_bool_option(option_table(Option)::in, Optio
n::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6018--6018
 []@texttt :- func getopt_io.lookup_bool_option(option_table(Option), Op-tion) 
= bool.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6020--6020
 []@texttt :- pred getopt_io.lookup_int_option(option_table(Option)::in, Option
::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6024--6024
 []@texttt :- pred getopt_io.lookup_string_option(option_table(Option)::in, Opt
ion::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6026--6026
 []@texttt :- func getopt_io.lookup_string_option(option_table(Option), Op-tion
) = string.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 6028--6028
 []@texttt :- pred getopt_io.lookup_maybe_int_option(option_table(Option)::in, 
Option::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6030--6030
 []@texttt :- func getopt_io.lookup_maybe_int_option(option_table(Option), Op-t
ion) =[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6035--6035
 []@texttt :- func getopt_io.lookup_maybe_string_option(option_table(Option), O
p-tion) =[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6040--6040
 []@texttt :- func getopt_io.lookup_accumulating_option(option_table(Option), O
p-tion) =[] 
Chapter 29
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6055--6055
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[129]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6063--6063
 []@texttt % This mod-ule ex-ports the pred-i-cate getopt.process_options/4, wh
ich can be[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6066--6066
 []@texttt % This ver-sion al-lows both short (single-character) op-tions and G
NU-style long[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6067--6067
 []@texttt % op-tions. It also has the GNU ex-ten-sion of rec-og-niz-ing op-tio
ns any-where in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6102--6102
 []@texttt % A fur-ther spe-cial op-tion, file_special, is sup-ported only by t
he getopt_io[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6103--6103
 []@texttt % mod-ule, be-cause it re-quires pro-cess_options to take a pair of 
I/O state[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6106--6106
 []@texttt % For the "sim-ple" op-tion types, if there are mul-ti-ple oc-cur-re
nces of the same[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6107--6107
 []@texttt % op-tion on the command-line, then the last (right-most) oc-cur-ren
ce will take[] 
[130]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6111--6111
 []@texttt % The "spe-cial" op-tion types are han-dled by a spe-cial op-tion ha
n-dler (see[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6112--6112
 []@texttt % `spe-cial_handler' be-low), which may per-form ar-bi-trary mod-i-f
i-ca-tions to the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6113--6113
 []@texttt % op-tion_table.  For ex-am-ple, an op-tion which is not yet im-ple-
mented could be[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6114--6114
 []@texttt % han-dled by a spe-cial han-dler which pro-duces an er-ror re-port,
 or an option[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6118--6118
 []@texttt % It is an er-ror to use a "spe-cial" op-tion for which there is no 
han-dler, or[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6134--6134
 []@texttt % pro-cess-ing will im-me-di-ately ter-mi-nate, with-out pro-cess-in
g any remaining[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6151--6151
 []@texttt % getopt.process_options(OptionOps, Args, Op-tionArgs, NonOp-tionArg
s, Result)[] 
[131]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6156--6156
 []@texttt %   `Op-tionTable' is a map from a user-defined op-tion type to opti
on_data.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6181--6181
 []@texttt %   The canon-i-cal ex-am-ples of spe-cial op-tions are -O op-tions 
in compilers,[] 
[132] [133] [134]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6320--6320
 []@texttt :- pred getopt.lookup_string_option(option_table(Option)::in, Option
::in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6322--6322
 []@texttt :- func getopt.lookup_string_option(option_table(Option), Op-tion) =
 string.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6324--6324
 []@texttt :- pred getopt.lookup_maybe_int_option(option_table(Option)::in, Opt
ion::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6331--6331
 []@texttt :- func getopt.lookup_maybe_string_option(option_table(Option), Op-t
ion) =[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6336--6336
 []@texttt :- func getopt.lookup_accumulating_option(option_table(Option), Op-t
ion) =[] 
[135] Chapter 30 Chapter 31 Chapter 32
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6367--6367
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[136]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 6411--6411
 []    @texttt % XXX This is all fake un-til the com-piler can han-dle nested u
nique modes.[] 
[137]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6459--6459
 []    @texttt % De-fault hash_preds for ints and strings and ev-ery-thing (buw
ahahaha!)[] 
[138]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 6487--6487
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6503--6503
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6513--6513
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6523--6523
 []    @texttt hash_table(K, V)::hash_table_di, hash_table(K, V)::hash_table_uo
) is det.[] 
[139]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6557--6557
 []@texttt :- func from_assoc_list(hash_pred(K)::in(hash_pred), as-soc_list(K, 
V)::in) =[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6563--6563
 []@texttt :- mode fold(func(in, in, in) = out is det, hash_table_ui, in) = out
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6564--6564
 []@texttt :- mode fold(func(in, in, di) = uo is det, hash_table_ui, di) = uo i
s det.[] 
[140] Chapter 33
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6594--6594
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6602--6602
 []@texttt % This mod-ule pro-vides the `in-jec-tion' ADT.  An in-jec-tion is l
ike a `map'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6603--6603
 []@texttt % (see map.m) but it al-lows ef-fi-cient re-verse lookups, sim-i-lar
ly to `bimap'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6605--6605
 []@texttt % or more.  The dif-fer-ence be-tween an in-jec-tion and a bimap is 
that there[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6606--6606
 []@texttt % can be val-ues in the range of the in-jec-tion that are not re-tur
ned for any[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 6609--6609
 []@texttt % The in-vari-ants on this data struc-ture, which are en-forced by t
his module,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6612--6612
 []@texttt % 1) For any key K, if a for-ward lookup suc-ceeds with value V then
 a reverse[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6615--6615
 []@texttt % 2) For any value V, if a re-verse lookup suc-ceeds with key K then
 a forward[] 
[141] [142]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 6676--6676
 []@texttt :- pred in-jec-tion.reverse_lookup(injection(K, V)::in, K::out, V::i
n) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6699--6699
 []@texttt :- func in-jec-tion.insert(injection(K, V), K, V) = in-jec-tion(K, V
) is semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6714--6714
 []@texttt :- func in-jec-tion.update(injection(K, V), K, V) = in-jec-tion(K, V
) is semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6718--6718
 []    @texttt % As above, but throws an ex-cep-tion if the key does not al-rea
dy exist,[] 
[143]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6729--6729
 []@texttt :- func in-jec-tion.set(injection(K, V), K, V) = in-jec-tion(K, V) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6733--6733
 []    @texttt % As above, but throws an ex-cep-tion if the value is al-ready a
ssociated[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6740--6740
 []    @texttt % In-sert key-value pairs from an as-soc_list into the given inj
ection.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6743--6743
 []@texttt :- func in-jec-tion.insert_from_assoc_list(assoc_list(K, V), in-jec-
tion(K, V)) =[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6759--6759
 []@texttt :- func in-jec-tion.set_from_assoc_list(assoc_list(K, V), in-jec-tio
n(K, V)) =[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6767--6767
 []@texttt :- func in-jec-tion.det_set_from_assoc_list(assoc_list(K, V), in-jec
-tion(K, V)) =[] 
[144]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 6778--6778
 []@texttt :- pred in-jec-tion.insert_from_corresponding_lists(list(K)::in, lis
t(V)::in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 6786--6786
 []@texttt :- pred in-jec-tion.det_insert_from_corresponding_lists(list(K)::in,
 list(V)::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6803--6803
 []@texttt :- pred in-jec-tion.det_set_from_corresponding_lists(list(K)::in, li
st(V)::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6811--6811
 []@texttt :- pred in-jec-tion.delete_key(K::in, in-jec-tion(K, V)::in, in-jec-
tion(K, V)::out)[] 
[145]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 6824--6824
 []@texttt :- func in-jec-tion.delete_keys(injection(K, V), list(K)) = in-jec-t
ion(K, V).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6830--6830
 []@texttt :- func in-jec-tion.delete_values(injection(K, V), list(V)) = in-jec
-tion(K, V).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 6837--6837
 []@texttt :- func in-jec-tion.merge(injection(K, V), in-jec-tion(K, V)) = in-j
ec-tion(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 6845--6845
 []@texttt :- func in-jec-tion.overlay(injection(K, V), in-jec-tion(K, V)) = in
-jec-tion(K, V).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6854--6854
 []@texttt :- pred in-jec-tion.apply_forward_map_to_list(injection(K, V)::in, l
ist(K)::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 6862--6862
 []@texttt :- pred in-jec-tion.apply_reverse_map_to_list(injection(K, V)::in, l
ist(V)::in,[] 
[146]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 6870--6870
 []@texttt :- func in-jec-tion.map_keys(func(V, K) = L, in-jec-tion(K, V)) = in
-jec-tion(L, V).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 6888--6888
 []@texttt :- pred in-jec-tion.map_values(pred(K, V, W)::in(pred(in, in, out) i
s det),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6894--6894
 []@texttt :- pred in-jec-tion.forward_map(injection(K, V)::in, map(K, V)::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6899--6899
 []@texttt :- pred in-jec-tion.reverse_map(injection(K, V)::in, map(V, K)::out)
 is det.[] 
Chapter 34 [147]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 6913--6913
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 6955--6955
 []    @texttt % op-tion-ally pre-ceded by a plus or mi-nus sign.  For bases > 
10, digits[] 
[148] [149] Chapter 35
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7024--7024
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7032--7032
 []@texttt % Pred-i-cates and func-tions for deal-ing with machine-size in-te-g
er numbers.[] 
[150] [151]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7126--7126
 []    @texttt % Throws a `math.domain_error' ex-cep-tion if the right operand 
is zero.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7137--7137
 []    @texttt % Throws a `math.domain_error' ex-cep-tion if the right operand 
is zero.[] 
[152]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7163--7163
 []    @texttt % Throws a `math.domain_error' ex-cep-tion if the right operand 
is zero.[] 
[153] [154] [155]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7295--7295
 []@texttt :- mode int.fold_down(pred(in, mdi, muo) is det, in, in, mdi, muo) i
s det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7328--7328
 []@texttt :- mode int.fold_up2(pred(in, in, out, mdi, muo) is det, in, in, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7334--7334
 []@texttt :- mode int.fold_up2(pred(in, in, out, ar-ray_di, ar-ray_uo) is det,
 in, in,[] 
[156]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7353--7353
 []@texttt :- mode int.fold_down2(pred(in, in, out, in, out) is det, in, in, in
, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7355--7355
 []@texttt :- mode int.fold_down2(pred(in, in, out, mdi, muo) is det, in, in, i
n, out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7357--7357
 []@texttt :- mode int.fold_down2(pred(in, in, out, di, uo) is det, in, in, in,
 out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7361--7361
 []@texttt :- mode int.fold_down2(pred(in, in, out, ar-ray_di, ar-ray_uo) is de
t, in, in,[] 
[157] Chapter 36
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7394--7394
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7405--7405
 []@texttt % the un-der-ly-ing sys-tem.  We en-sure ref-er-en-tial trans-parenc
y by pass-ing around[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7406--7406
 []@texttt % a ``state-of-the-world'' ar-gu-ment us-ing unique modes. The com-p
iler will check[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7407--7407
 []@texttt % that the state of the world ar-gu-ment is prop-erly single-threade
d, and will[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7410--7410
 []@texttt % At-tempt-ing any op-er-a-tion on a stream which has al-ready been 
closed results[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7413--7413
 []@texttt % In mul-ti-threaded pro-grams, each thread in the pro-gram has its 
own set of[] 
[158] [159] [160]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 7542--7542
 []@texttt :- pred io.read_line_as_string(io.result(string)::out, io::di, io::u
o) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7544--7544
 []    @texttt % Reads all the char-ac-ters (code points) from the cur-rent in-
put stream[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7547--7547
 []@texttt :- pred io.read_file(io.maybe_partial_res(list(char))::out, io::di, 
io::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7550--7550
 []    @texttt % Reads all the char-ac-ters (code points) from the cur-rent in-
put stream[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7563--7563
 []@texttt :- pred io.input_stream_foldl(pred(char, T, T), T, io.maybe_partial_
res(T),[] 
[161]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 7576--7576
 []@texttt :- mode io.input_stream_foldl_io((pred(in, di, uo) is cc_multi), out
, di, uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7586--7586
 []@texttt :- mode io.input_stream_foldl2_io((pred(in, in, out, di, uo) is cc_m
ulti),[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7589--7589
 []    @texttt % Ap-plies the given clo-sure to each char-ac-ter (code point) r
ead from the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7590--7590
 []    @texttt % in-put stream in turn, un-til eof or er-ror, or the clo-sure r
e-turns `no' as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7608--7608
 []    @texttt % `io.putback_char' will throw an io.error ex-cep-tion if ungetc
() fails.[] 
[162]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 7620--7620
 []@texttt :- pred io.read_char_unboxed(io.input_stream::in, io.result::out, ch
ar::out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7638--7638
 []@texttt :- pred io.read_line_as_string(io.input_stream::in, io.result(string
)::out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7641--7641
 []    @texttt % Reads all the char-ac-ters (code points) from the given in-put
 stream until[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7647--7647
 []    @texttt % Reads all the char-ac-ters from the given in-put stream un-til
 eof or error.[] 
[163]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 7689--7689
 []    @texttt % Ap-plies the given clo-sure to each char-ac-ter (code point) r
ead from the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7690--7690
 []    @texttt % in-put stream in turn, un-til eof or er-ror, or the clo-sure r
e-turns `no' as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7708--7708
 []    @texttt % `io.putback_char' will throw an io.error ex-cep-tion if ungetc
() fails.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7710--7710
 []@texttt :- pred io.putback_char(io.input_stream::in, char::in, io::di, io::u
o) is det.[] 
[164]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 7712--7712
 []    @texttt % Reads a ground term of any type, writ-ten us-ing stan-dard Mer
-cury syntax,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7713--7713
 []    @texttt % from the cur-rent or spec-i-fied in-put stream. The type of th
e term read[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7716--7716
 []    @texttt % First, the in-put stream is read un-til an end-of-term to-ken,
 end-of-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7718--7718
 []    @texttt % fol-lowed by white-space. The trail-ing white-space is left in
 the input[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7721--7721
 []    @texttt % Then, the re-sult is de-ter-mined ac-cord-ing to the to-kens r
ead. If there[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7722--7722
 []    @texttt % were no non-whitespace char-ac-ters be-fore the end of file, t
hen `io.read'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7723--7723
 []    @texttt % re-turns `eof'. If the to-kens read formed a syn-tac-ti-cally 
cor-rect ground[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7724--7724
 []    @texttt % term of the cor-rect type, fol-lowed by an end-of-term to-ken,
 then it[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7725--7725
 []    @texttt % re-turns `ok(Term)'. If char-ac-ters read from the in-put stre
am did not form[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7726--7726
 []    @texttt % a syn-tac-ti-cally cor-rect term, or if the term read is not a
 ground term,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7727--7727
 []    @texttt % or if the term is not a valid term of the ap-pro-pri-ate type,
 or if an[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7728--7728
 []    @texttt % I/O er-ror is en-coun-tered, then it re-turns `er-ror(Message,
 LineNumber)'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7738--7738
 []            @texttt % line num-ber, off-set of start of line, cur-rent off-s
et (the first[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7739--7739
 []            @texttt % two are used only for the pur-poses of com-put-ing ter
m_contexts,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7742--7742
 []    @texttt % io.read_from_string(FileName, String, Max-Pos, Re-sult, Posn0,
 Posn):[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7750--7750
 []    @texttt % end-of-stream -- this is the up-per bound for Posn. (In the us
ual case,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7752--7752
 []    @texttt % WARN-ING: if Max-Pos > length of String then the be-haviour is
 UNDEFINED.[] 
[165]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7774--7774
 []    @texttt % io.print/4 writes its sec-ond ar-gu-ment to the out-put stream
 specified[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7779--7779
 []    @texttt % If the ar-gu-ment is just a sin-gle string or char-ac-ter, it 
will be printed[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7780--7780
 []    @texttt % out ex-actly as is (un-quoted). If the ar-gu-ment is of type u
niv, then[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7783--7783
 []    @texttt % io.print/5 is the same as io.print/4 ex-cept that it al-lows t
he caller[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7784--7784
 []    @texttt % to spec-ify how non-canonical types should be han-dled. io.pri
nt/3 and[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7785--7785
 []    @texttt % io.print/4 im-plic-itly spec-ify `canon-i-cal-ize' as the meth
od for handling[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7786--7786
 []    @texttt % non-canonical types. This means that for higher-order types, o
r types[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7787--7787
 []    @texttt % with user-defined equal-ity ax-ioms, or types de-fined us-ing 
the foreign[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7788--7788
 []    @texttt % lan-guage in-ter-face (i.e. pragma for-eign_type), the text ou
t-put will[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7792--7792
 []    @texttt % `in-clude_details_cc' rather than `canon-i-cal-ize'. This mean
s that it will[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7793--7793
 []    @texttt % print the de-tails of non-canonical types. How-ever, it has de
terminism[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7796--7796
 []    @texttt % Note that even if `in-clude_details_cc' is spec-i-fied, some i
mplementations[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7797--7797
 []    @texttt % may not be able to print all the de-tails for higher-order typ
es or types[] 
[166]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 7804--7804
 []@texttt :- pred io.print(io.output_stream, de-con-struct.noncanon_handling, 
T, io, io).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7813--7813
 []    @texttt % io.write/4 writes its sec-ond ar-gu-ment to the out-put stream
 specified[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7815--7815
 []    @texttt % of any type. The ar-gu-ment is writ-ten in a for-mat that is i
n-tended to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7818--7818
 []    @texttt % Strings and char-ac-ters are al-ways printed out in quotes, us
-ing backslash[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7820--7820
 []    @texttt % us-ing the for-eign lan-guage in-ter-face (pragma for-eign_cod
e), the text[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 7821--7821
 []    @texttt % out-put will only de-scribe the type that is be-ing printed, n
ot the value,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7823--7823
 []    @texttt % con-tain-ing ex-is-ten-tial quan-ti-fiers, the type `type_desc
' and closure[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 7824--7824
 []    @texttt % types, the re-sult may not be parsable by `io.read', ei-ther. 
But in all[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 7825--7825
 []    @texttt % other cases the for-mat used is stan-dard Mer-cury syn-tax, an
d if you append[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7826--7826
 []    @texttt % a pe-riod and new-line (".\n"), then the re-sults can be read 
in again[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7829--7829
 []    @texttt % io.write/5 is the same as io.write/4 ex-cept that it al-lows t
he caller[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7830--7830
 []    @texttt % to spec-ify how non-canonical types should be han-dled. io.wri
te_cc/3[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7831--7831
 []    @texttt % is the same as io.write/3 ex-cept that it spec-i-fies `include
_details_cc'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7838--7838
 []@texttt :- pred io.write(io.output_stream, de-con-struct.noncanon_handling, 
T, io, io).[] 
[167]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7860--7860
 []@texttt :- pred io.write_string(io.output_stream::in, string::in, io::di, io
::uo)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7878--7878
 []@texttt :- pred io.write_char(io.output_stream::in, char::in, io::di, io::uo
) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7886--7886
 []@texttt :- pred io.write_int(io.output_stream::in, int::in, io::di, io::uo) 
is det.[] 
[168]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 7899--7899
 []    @texttt % out-put stream. (See the doc-u-men-ta-tion of string.format fo
r details.)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 7901--7901
 []@texttt :- pred io.format(string::in, list(io.poly_type)::in, io::di, io::uo
) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 7903--7903
 []    @texttt % For-mats the spec-i-fied ar-gu-ment list ac-cord-ing to the fo
r-mat string,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7905--7905
 []    @texttt % out-put stream. (See the doc-u-men-ta-tion of string.format fo
r details.)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 7907--7907
 []@texttt :- pred io.format(io.output_stream::in, string::in, list(io.poly_typ
e)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 7934--7934
 []@texttt :- mode io.write_list(in, in, in, pred(in, di, uo) is det, di, uo) i
s det.[] 
[169] [170]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 7996--7996
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the cur-
rent input[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8002--8002
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the spec
-i-fied input[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8009--8009
 []    @texttt % Re-turn the line num-ber of the cur-rent in-put stream. Lines 
are normally[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8015--8015
 []    @texttt % Re-turn the line num-ber of the spec-i-fied in-put stream. Lin
es are normally[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8019--8019
 []@texttt :- pred io.get_line_number(io.input_stream::in, int::out, io::di, io
::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8036--8036
 []    @texttt % At-tempts to open a file for out-put, and if suc-cess-ful sets
 the current[] 
[171]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8042--8042
 []    @texttt % Closes the cur-rent out-put stream; the de-fault out-put strea
m reverts[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8073--8073
 []@texttt :- pred io.set_output_stream(io.output_stream::in, io.output_stream:
:out,[] 
[172]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 8102--8102
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the spec
-i-fied stream.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8110--8110
 []    @texttt % Re-turn the line num-ber of the cur-rent out-put stream. Lines
 are normally[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8116--8116
 []    @texttt % Re-turn the line num-ber of the spec-i-fied out-put stream. Li
nes are normally[] 
[173]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8142--8142
 []    @texttt % Reads a bi-nary rep-re-sen-ta-tion of a term of type T from th
e specified[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8147--8147
 []    @texttt % then the re-sults are not guar-an-teed to be mean-ing-ful. An-
other caveat[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8148--8148
 []    @texttt % is that higher-order types can-not be read. (If you try, you w
ill get[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8168--8168
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than th
e size[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8176--8176
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than th
e size[] 
[174]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8183--8183
 []    @texttt % io.read_bitmap(StartByte, Num-Bytes, !Bit-map, Bytes-Read, Re-
sult, !IO)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8188--8188
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than Nu
mBytes,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8201--8201
 []    @texttt % On end-of-file, the num-ber of bytes read will be less than Nu
mBytes,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8214--8214
 []    @texttt % Reads all the bytes from the given bi-nary in-put stream into 
a bitmap[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8223--8223
 []@texttt :- pred io.read_binary_file(io.result(list(int))::out, io::di, io::u
o) is det.[] 
[175]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8231--8231
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8241--8241
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8251--8251
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8259--8259
 []    @texttt in(pred(in, in, out, di, uo) is cc_multi), in, out, di, uo) is c
c_multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8261--8261
 []    @texttt % Ap-plies the given clo-sure to each byte read from the cur-ren
t binary[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8262--8262
 []    @texttt % in-put stream in turn, un-til eof or er-ror, or the clo-sure r
e-turns `no'[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8270--8270
 []    @texttt (pred(in, out, in, out, di, uo) is cc_multi), in, out, di, uo) i
s cc_multi.[] 
[176]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 8279--8279
 []@texttt :- mode io.binary_input_stream_foldl(in, in(pred(in, in, out) is cc_
multi),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8289--8289
 []@texttt :- mode io.binary_input_stream_foldl_io(in, in(pred(in, di, uo) is c
c_multi),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8300--8300
 []    @texttt (pred(in, in, out, di, uo) is cc_multi), in, out, di, uo) is cc_
multi.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8306--8306
 []@texttt :- pred io.binary_input_stream_foldl2_io_maybe_stop(io.binary_input_
stream,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8311--8311
 []    @texttt (pred(in, out, in, out, di, uo) is cc_multi), in, out, di, uo) i
s cc_multi.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8319--8319
 []    @texttt % `io.putback_byte' will throw an io.error ex-cep-tion if ungetc
() fails.[] 
[177]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8321--8321
 []    @texttt % Push-ing back a byte decre-ments the file po-si-tion by one, e
x-cept when[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8322--8322
 []    @texttt % the file po-si-tion is al-ready zero, in which case the new fi
le position[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8333--8333
 []    @texttt % `io.putback_byte' will throw an io.error ex-cep-tion if ungetc
() fails.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8335--8335
 []    @texttt % Push-ing back a byte decre-ments the file po-si-tion by one, e
x-cept when[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8336--8336
 []    @texttt % the file po-si-tion is al-ready zero, in which case the new fi
le position[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8350--8350
 []    @texttt % Writes a bi-nary rep-re-sen-ta-tion of a term to the cur-rent 
bi-nary output[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8351--8351
 []    @texttt % stream, in a for-mat suit-able for read-ing in again with io.r
ead_binary.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8355--8355
 []    @texttt % Writes a bi-nary rep-re-sen-ta-tion of a term to the spec-i-fi
ed bi-nary output[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8356--8356
 []    @texttt % stream, in a for-mat suit-able for read-ing in again with io.r
ead_binary.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8361--8361
 []@texttt :- pred io.write_binary(io.binary_output_stream::in, T::in, io::di, 
io::uo)[] 
[178]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 8372--8372
 []@texttt :- pred io.write_byte(io.binary_output_stream::in, int::in, io::di, 
io::uo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8399--8399
 []@texttt :- pred io.write_bitmap(io.binary_output_stream, bit-map, int, int, 
io, io).[] 
[179]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 8416--8416
 []    @texttt % A suc-cess-ful seek un-does any ef-fects of io.putback_byte on
 the stream.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8425--8425
 []@texttt :- pred io.seek_binary_output(io.binary_output_stream::in, io.whence
::in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8428--8428
 []    @texttt % Re-turns the off-set (in bytes) into the spec-i-fied bi-nary i
n-put stream.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8430--8430
 []@texttt :- pred io.binary_input_stream_offset(io.binary_input_stream::in, in
t::out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8433--8433
 []    @texttt % Re-turns the off-set (in bytes) into the spec-i-fied bi-nary o
ut-put stream.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8435--8435
 []@texttt :- pred io.binary_output_stream_offset(io.binary_output_stream::in, 
int::out,[] 
[180]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8485--8485
 []    @texttt % Re-trieves the human-readable name as-so-ci-ated with the cur-
rent binary[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8493--8493
 []@texttt :- pred io.binary_input_stream_name(io.binary_input_stream::in, stri
ng::out,[] 
[181]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8552--8552
 []@texttt :- pred io.binary_output_stream_name(string::out, io::di, io::uo) is
 det.[] 
[182]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8578--8578
 []@texttt :- pred io.progname_base(string::in, string::out, io::di, io::uo) is
 det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8581--8581
 []    @texttt % if avail-able, oth-er-wise an empty list. Does not mod-ify the
 I/O state.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8583--8583
 []@texttt :- pred io.command_line_arguments(list(string)::out, io::di, io::uo)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8585--8585
 []    @texttt % The I/O state con-tains an in-te-ger used to record the pro-gr
am's exit[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8587--8587
 []    @texttt % to the op-er-at-ing sys-tem. The fol-low-ing pred-i-cates can 
be used to get[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8594--8594
 []    @texttt % stan-dard li-brary, but can be used by the ap-pli-ca-tion. The
 glob-als field[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8595--8595
 []    @texttt % is of type `univ' so that the ap-pli-ca-tion can store any dat
a it wants[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8596--8596
 []    @texttt % there.  The fol-low-ing pred-i-cates can be used to ac-cess th
is global state.[] 
[183]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 8618--8618
 []    @texttt % The fol-low-ing pred-i-cates pro-vide an in-ter-face to the en
-vi-ron-ment list.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8619--8619
 []    @texttt % Do not at-tempt to put spa-ces or '=' signs in the names of en
vironment[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8629--8629
 []    @texttt % First ar-gu-ment is the name of the en-vi-ron-ment vari-able, 
sec-ond argument[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8630--8630
 []    @texttt % is the value to be as-signed to that vari-able. Will throw an 
exception[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8635--8635
 []@texttt :- pred io.set_environment_var(string::in, string::in, io::di, io::u
o) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8642--8642
 []    @texttt % io.make_temp(Name, !IO) cre-ates an empty file whose name is d
ifferent[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8643--8643
 []    @texttt % to the name of any ex-ist-ing file. Name is bound to the name 
of the file.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8644--8644
 []    @texttt % It is the re-spon-si-bil-ity of the pro-gram to delete the fil
e when it is[] 
[184]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8652--8652
 []    @texttt %      is not set, or in the di-rec-tory spec-i-fied by TMP if i
t is set.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8654--8654
 []    @texttt %      en-vi-ron-ment vari-able is not set, or in the di-rec-tor
y specified[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8665--8665
 []    @texttt % name is dif-fer-ent to the name of any ex-ist-ing file. The fi
le will reside[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8666--8666
 []    @texttt % in the di-rec-tory spec-i-fied by `Dir' and will have a pre-fi
x us-ing up to[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8667--8667
 []    @texttt % the first 5 char-ac-ters of `Pre-fix'. Name is bound to the na
me of the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8671--8671
 []@texttt :- pred io.make_temp(string::in, string::in, string::out, io::di, io
::uo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8675--8675
 []    @texttt % `File-Name', bind-ing Re-sult to ok/0 if it suc-ceeds, or er-r
or/1 if it[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8676--8676
 []    @texttt % fails. If `File-Name' names a file that is cur-rently open, th
e behaviour[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8681--8681
 []    @texttt % io.remove_file_recursively(FileName, Re-sult, !IO) at-tempts t
o remove[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8682--8682
 []    @texttt % the file `File-Name', bind-ing Re-sult to ok/0 if it suc-ceeds
, or error/1[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8683--8683
 []    @texttt % if it fails. If `File-Name' names a file that is cur-rently op
en, the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8686--8686
 []    @texttt % Un-like `io.remove_file', this pred-i-cate will at-tempt to re
-move non-

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8687--8687
 []    @texttt % di-rec-to-ries (re-cur-sively). If it fails, some of the di-re
c-tory elements[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8695--8695
 []    @texttt % At-tempts to re-name the file `Old-File-Name' as `New-File-Nam
e', binding[] 
[185]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 8696--8696
 []    @texttt % Re-sult to ok/0 if it suc-ceeds, or er-ror/1 if it fails. If `
OldFileName'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8698--8698
 []    @texttt % implementation-dependent. If `New-File-Name' names a file that
 already[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8699--8699
 []    @texttt % ex-ists the be-haviour is also implementation-dependent; on so
me systems,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8700--8700
 []    @texttt % the file pre-vi-ously named `New-File-Name' will be deleted an
d replaced[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8703--8703
 []@texttt :- pred io.rename_file(string::in, string::in, io.res::out, io::di, 
io::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8716--8716
 []@texttt :- pred io.make_symlink(string::in, string::in, io.res::out, io::di,
 io::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8722--8722
 []    @texttt % it should be in-ter-preted rel-a-tive the di-rec-tory con-tain
-ing `FileName',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8739--8739
 []    @texttt % XXX On the Er-lang back-end, or on Win-dows with some com-pil-
ers, `execute'[] 
[186] [187]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8808--8808
 []    @texttt % the com-mand, or `er-ror(ErrorCode)' if not. The Ex-it-Sta-tus
 will be 0[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8809--8809
 []    @texttt % if the com-mand com-pleted suc-cess-fully or the re-turn value
 of the system[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8810--8810
 []    @texttt % call. If a sig-nal kills the sys-tem call, then Re-sult will b
e an error[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 8813--8813
 []@texttt :- pred io.call_system(string::in, io.res(int)::out, io::di, io::uo)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8823--8823
 []    @texttt % the com-mand or `er-ror(Error)' if the com-mand could not be e
xecuted.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 8827--8827
 []    @texttt % If the com-mand ran to com-ple-tion then Ex-it-Code will be 0 
if the command[] 
[188]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8837--8837
 []    @texttt % Look up the er-ror mes-sage cor-re-spond-ing to a par-tic-u-la
r er-ror code.[] 
Chapter 37 [189]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8893--8893
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8905--8905
 []@texttt % A field within a data struc-ture can be made lazy by wrap-ping it 
within a lazy[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8925--8925
 []@texttt % uses one thunk for ev-ery el-e-ment, but the list's struc-ture is 
not lazy.[] 
[190]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 8945--8945
 []    @texttt % Force the eval-u-a-tion of a lazy(T), and re-turn the re-sult 
as type T.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 8946--8946
 []    @texttt % Note that if the type T may it-self con-tains sub-terms of typ
e lazy(T),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 8947--8947
 []    @texttt % as is the case when T is a re-cur-sive type like the lazy_list
(T) type[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8949--8949
 []    @texttt % force/1 only forces eval-u-a-tion of the lazy/1 term at the to
p level.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8951--8951
 []    @texttt % A sec-ond call to force will not re-evaluate the lazy ex-pres-
sion, it will[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 8956--8956
 []    @texttt % Get the value of a lazy ex-pres-sion if it has al-ready been m
ade available[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 8966--8966
 []@texttt :- pred com-pare_values(comparison_result::uo, lazy(T)::in, lazy(T):
:in) is det.[] 
[191]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 8983--8983
 []@texttt %   eval-u-ate the term, and then saves the re-sult com-puted by des
tructively[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8985--8985
 []@texttt %   will re-turn the same re-sult.  So the time to eval-u-ate force(
X), where[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8986--8986
 []@texttt %   X = de-lay(F), is O(the time to eval-u-ate ap-ply(F)) for the fi
rst call,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8990--8990
 []@texttt %   on both ar-gu-ments and com-par-ing the re-sults.  So if X and Y
 have type[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 8991--8991
 []@texttt %   lazy(T), and both X and Y are ground, then the time to eval-u-at
e X = Y[] 
Chapter 38
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9007--9007
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[192]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9066--9066
 []    @texttt % This "fat list" rep-re-sen-ta-tion is more ef-fi-cient than a 
list of pairs.[] 
[193]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9085--9085
 []    @texttt % Scan a list of to-kens from a string, start-ing at the cur-ren
t offset[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9086--9086
 []    @texttt % spec-i-fied by Ini-tial-Pos. Keep scan-ning un-til ei-ther we 
en-counter either[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9087--9087
 []    @texttt % an `end' to-ken (i.e. a full stop fol-lowed by white-space) or
 un-til we[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9092--9092
 []@texttt :- pred string_get_token_list_max(string::in, off-set::in, token_lis
t::out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9097--9097
 []    @texttt % calls string_get_token_list_max above with Max-Pos = length of
 String.[] 
Chapter 39
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9117--9117
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[194] Chapter 40
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9143--9143
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[195] [196]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 9251--9251
 []@texttt :- pred list.remove_suffix(list(T)::in, list(T)::in, list(T)::out) i
s semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9255--9255
 []    @texttt % L is the re-sult of merg-ing the el-e-ments of L1 and L2, in a
s-cend-ing order.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9263--9263
 []    @texttt % L is the re-sult of merg-ing the el-e-ments of L1 and L2, in a
s-cend-ing order,[] 
[197]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9264--9264
 []    @texttt % and elim-i-nat-ing any du-pli-cates. L1 and L2 must be sorted 
and must each[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9267--9267
 []@texttt :- pred list.merge_and_remove_dups(list(T)::in, list(T)::in, list(T)
::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9273--9273
 []    @texttt % L is the re-sult of re-plac-ing ev-ery se-quence of du-pli-cat
e el-e-ments in L0[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9297--9297
 []    @texttt % True iff `List' con-tains `Elem', and `Sub-List' is a suf-fix 
of `List'[] 
[198]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9313--9313
 []    @texttt % Some-times you need the ar-gu-ments in this or-der, be-cause y
ou want to[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9346--9346
 []    @texttt % splits `List' into a pre-fix `Start' of length `Len', and a re
mainder[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9349--9349
 []@texttt :- pred list.split_list(int::in, list(T)::in, list(T)::out, list(T):
:out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9357--9357
 []@texttt :- pred list.det_split_list(int::in, list(T)::in, list(T)::out, list
(T)::out)[] 
[199]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 9362--9362
 []    @texttt % splits `List' into a pre-fix `Start' of length `min(Len, lengt
h(List))',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9363--9363
 []    @texttt % and a re-main-der `End'. See also: list.split_list, list.take,
 list.drop.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9365--9365
 []@texttt :- pred list.split_upto(int::in, list(T)::in, list(T)::out, list(T):
:out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9377--9377
 []    @texttt % `Start' is the first `Len' el-e-ments of `List'. If `List' has
 less than[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9385--9385
 []    @texttt % `End' is the re-main-der of `List' af-ter re-mov-ing the first
 `Len' elements.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9393--9393
 []    @texttt % `End' is the re-main-der of `List' af-ter re-mov-ing the first
 `Len' elements.[] 
[200]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 9423--9423
 []    @texttt % list.delete_first(List0, Elem, List) is true iff Elem oc-curs 
in List0[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9435--9435
 []    @texttt % list.delete_elems(List0, El-ems, List) is true iff List is Lis
t0 with[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9438--9438
 []@texttt :- pred list.delete_elems(list(T)::in, list(T)::in, list(T)::out) is
 det.[] 
[201]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9457--9457
 []@texttt :- pred list.replace_all(list(T)::in, T::in, T::in, list(T)::out) is
 det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9473--9473
 []@texttt :- pred list.det_replace_nth(list(T)::in, int::in, T::in, list(T)::o
ut) is det.[] 
[202]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 9531--9531
 []    @texttt % to be el-e-ment num-ber one. The `det_' preds call er-ror/1 if
 the index[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9532--9532
 []    @texttt % is out of range, whereas the semidet preds fail if the in-dex 
is out of[] 
[203]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 9568--9568
 []    @texttt % start-ing with the first el-e-ment of ListA (fol-lowed by the 
first element[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9569--9569
 []    @texttt % of ListB, then the sec-ond el-e-ment of listA, then the sec-on
d element[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9570--9570
 []    @texttt % of ListB, etc.). When there are no more el-e-ments re-main-ing
 in one of[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9584--9584
 []    @texttt % `List' is the re-sult of con-cate-nat-ing all the el-e-ments o
f `ListOfLists'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9592--9592
 []    @texttt % such that the length of each list in `Chunks' is at most `Chun
kSize.[] 
[204]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9593--9593
 []    @texttt % (More pre-cisely, the length of each list in `Chunks' other th
an the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9594--9594
 []    @texttt % last one is ex-actly `Chunk-Size', and the length of the last 
list in[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9605--9605
 []    @texttt % list.all_same(List) is true if all el-e-ments of the list are 
the same.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9623--9623
 []    @texttt % last el-e-ment of List and All-But-Last is the list of el-e-me
nts be-fore it.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9627--9627
 []    @texttt % A de-ter-min-is-tic ver-sion of list.split_last, which aborts 
in-stead of[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9637--9637
 []@texttt % sorts of op-er-a-tions pro-vided by stan-dard li-braries for func-
tional languages.[] 
[205]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9659--9659
 []@texttt :- mode list.map2(pred(in, out, out) is cc_multi, in, out, out) is c
c_multi.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9660--9660
 []@texttt :- mode list.map2(pred(in, out, out) is semidet, in, out, out) is se
midet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9669--9669
 []@texttt :- mode list.map3(pred(in, out, out, out) is det, in, out, out, out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9670--9670
 []@texttt :- mode list.map3(pred(in, out, out, out) is cc_multi, in, out, out,
 out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9678--9678
 []@texttt :- mode list.map3(pred(in, in, in, in) is semidet, in, in, in, in) i
s semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9681--9681
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3 and M4.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9683--9683
 []@texttt :- pred list.map4(pred(A, B, C, D, E), list(A), list(B), list(C), li
st(D),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9685--9685
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is det, in, out, out,
 out, out)[] 
[206]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 9687--9687
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is cc_multi, in, out,
 out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9689--9689
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is semidet, in, out, 
out, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9691--9691
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is multi, in, out, ou
t, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9693--9693
 []@texttt :- mode list.map4(pred(in, out, out, out, out) is non-det, in, out, 
out, out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9695--9695
 []@texttt :- mode list.map4(pred(in, in, in, in, in) is semidet, in, in, in, i
n, in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9702--9702
 []@texttt :- pred list.map5(pred(A, B, C, D, E, F), list(A), list(B), list(C),
 list(D),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9704--9704
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is det, in, out,
 out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9706--9706
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is cc_multi, in,
 out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9708--9708
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is semidet, in, 
out, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9710--9710
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is multi, in, ou
t, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9712--9712
 []@texttt :- mode list.map5(pred(in, out, out, out, out, out) is non-det, in, 
out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9714--9714
 []@texttt :- mode list.map5(pred(in, in, in, in, in, in) is semidet, in, in, i
n, in, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9718--9718
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3, M4,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9723--9723
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is det, in,
 out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9725--9725
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is cc_multi
, in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9727--9727
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is semidet,
 in, out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9729--9729
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is multi, i
n, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9731--9731
 []@texttt :- mode list.map6(pred(in, out, out, out, out, out, out) is non-det,
 in, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9733--9733
 []@texttt :- mode list.map6(pred(in, in, in, in, in, in, in) is semidet, in, i
n, in, in,[] 
[207]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9737--9737
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3, M4,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9740--9740
 []@texttt :- pred list.map7(pred(A, B, C, D, E, F, G, H), list(A), list(B), li
st(C),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9744--9744
 []@texttt :- mode list.map7(pred(in, out, out, out, out, out, out, out) is cc_
multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9746--9746
 []@texttt :- mode list.map7(pred(in, out, out, out, out, out, out, out) is sem
idet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9756--9756
 []    @texttt % to trans-form the el-e-ments of L into the el-e-ments of M1, M
2, M3, M4,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9759--9759
 []@texttt :- pred list.map8(pred(A, B, C, D, E, F, G, H, I), list(A), list(B),
 list(C),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9761--9761
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9763--9763
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s cc_multi,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9765--9765
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9767--9767
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s multi,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9769--9769
 []@texttt :- mode list.map8(pred(in, out, out, out, out, out, out, out, out) i
s nondet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9779--9779
 []@texttt :- func list.map_corresponding(func(A, B) = C, list(A), list(B)) = l
ist(C).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9780--9780
 []@texttt :- pred list.map_corresponding(pred(A, B, C), list(A), list(B), list
(C)).[] 
[208]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9781--9781
 []@texttt :- mode list.map_corresponding(in(pred(in, in, out) is det), in, in,
 out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9783--9783
 []@texttt :- mode list.map_corresponding(in(pred(in, in, out) is semidet), in,
 in, out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9786--9786
 []    @texttt % list.map_corresponding3(F, [A1, .. An], [B1, .. Bn], [C1, .. C
n]) =[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9791--9791
 []@texttt :- func list.map_corresponding3(func(A, B, C) = D, list(A), list(B),
 list(C))[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9801--9801
 []@texttt :- mode list.filter_map_corresponding(func(in, in) = out is semidet,
 in, in)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9811--9811
 []@texttt :- mode list.filter_map_corresponding3(func(in, in, in) = out is sem
idet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9814--9814
 []    @texttt % list.map_corresponding_foldl/6 is like list.map_corresponding 
except[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9825--9825
 []@texttt :- mode list.map_corresponding_foldl(pred(in, in, out, in, out) is s
emidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9827--9827
 []@texttt :- mode list.map_corresponding_foldl(pred(in, in, out, mdi, muo) is 
semidet,[] 
[209]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 9829--9829
 []@texttt :- mode list.map_corresponding_foldl(pred(in, in, out, di, uo) is se
midet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9847--9847
 []    @texttt pred(in, in, out, in, out, in, out) is semidet, in, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9850--9850
 []    @texttt pred(in, in, out, in, out, mdi, muo) is semidet, in, in, out, in
, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 9862--9862
 []    @texttt pred(in, in, out, in, out, in, out, in, out) is det, in, in, out
, in, out,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 9865--9865
 []    @texttt pred(in, in, out, in, out, in, out, mdi, muo) is det, in, in, ou
t, in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9868--9868
 []    @texttt pred(in, in, out, in, out, in, out, di, uo) is det, in, in, out,
 in, out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9871--9871
 []    @texttt pred(in, in, out, in, out, in, out, in, out) is semidet, in, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 9874--9874
 []    @texttt pred(in, in, out, in, out, in, out, mdi, muo) is semidet, in, in
, out,[] 
[210]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 9880--9880
 []    @texttt % list.map_corresponding3_foldl/7 is like list.map_corresponding
3 except[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 9885--9885
 []@texttt :- mode list.map_corresponding3_foldl(pred(in, in, in, out, in, out)
 is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 9887--9887
 []@texttt :- mode list.map_corresponding3_foldl(pred(in, in, in, out, mdi, muo
) is det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9889--9889
 []@texttt :- mode list.map_corresponding3_foldl(pred(in, in, in, out, di, uo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9910--9910
 []@texttt :- mode list.foldl(pred(in, in, out) is semidet, in, in, out) is sem
idet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9911--9911
 []@texttt :- mode list.foldl(pred(in, mdi, muo) is semidet, in, mdi, muo) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9915--9915
 []@texttt :- mode list.foldl(pred(in, mdi, muo) is non-det, in, mdi, muo) is n
ondet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9916--9916
 []@texttt :- mode list.foldl(pred(in, in, out) is cc_multi, in, in, out) is cc
_multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9917--9917
 []@texttt :- mode list.foldl(pred(in, di, uo) is cc_multi, in, di, uo) is cc_m
ulti.[] 
[211]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 9930--9930
 []@texttt :- mode list.foldr(pred(in, in, out) is semidet, in, in, out) is sem
idet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9931--9931
 []@texttt :- mode list.foldr(pred(in, mdi, muo) is semidet, in, mdi, muo) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9935--9935
 []@texttt :- mode list.foldr(pred(in, mdi, muo) is non-det, in, mdi, muo) is n
ondet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 9936--9936
 []@texttt :- mode list.foldr(pred(in, di, uo) is cc_multi, in, di, uo) is cc_m
ulti.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 9937--9937
 []@texttt :- mode list.foldr(pred(in, in, out) is cc_multi, in, in, out) is cc
_multi.[] 
[212]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10011--10011
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) is
 det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10015--10015
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, in, out) is 
cc_multi,[] 
[213]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 10017--10017
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, di, uo) is c
c_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10019--10019
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, in, out) is 
semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10021--10021
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) is
 semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10023--10023
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, di, uo) is s
emidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10025--10025
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, in, out) is 
nondet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10027--10027
 []@texttt :- mode list.foldl4(pred(in, in, out, in, out, in, out, mdi, muo) is
 nondet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10037--10037
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10040--10040
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, mdi
, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10046--10046
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10049--10049
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, mdi
, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10055--10055
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10058--10058
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, mdi
, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10061--10061
 []@texttt :- mode list.foldl5(pred(in, in, out, in, out, in, out, in, out, in,
 out)[] 
[214]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10073--10073
 []@texttt :- pred list.foldl6(pred(L, A, A, B, B, C, C, D, D, E, E, F, F), lis
t(L),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10075--10075
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10078--10078
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10081--10081
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10084--10084
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10086--10086
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is cc_
multi.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10087--10087
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10089--10089
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, di, uo) is cc_m
ulti.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10090--10090
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10092--10092
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10093--10093
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10095--10095
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10096--10096
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10099--10099
 []@texttt :- mode list.foldl6(pred(in, in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10108--10108
 []@texttt :- pred list.foldl_corresponding(pred(A, B, C, C), list(A), list(B),
 C, C).[] 
[215]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 10134--10134
 []@texttt :- pred list.foldl2_corresponding(pred(A, B, C, C, D, D), list(A), l
ist(B),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10138--10138
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, mdi, muo) is
 det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10142--10142
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, in, out) is 
semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10144--10144
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, mdi, muo) is
 semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10146--10146
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, di, uo) is s
emidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10148--10148
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, in, out) is 
nondet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10150--10150
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, mdi, muo) is
 nondet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10152--10152
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, in, out) is 
cc_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10154--10154
 []@texttt :- mode list.foldl2_corresponding(pred(in, in, in, out, di, uo) is c
c_multi,[] 
[216]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10176--10176
 []    @texttt pred(in, in, in, out, in, out, mdi, muo) is semidet, in, in, in,
 out,[] 
[217]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 10206--10206
 []@texttt :- mode list.foldl2_corresponding3(pred(in, in, in, in, out, in, out
) is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10208--10208
 []@texttt :- mode list.foldl2_corresponding3(pred(in, in, in, in, out, di, uo)
 is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10229--10229
 []    @texttt % list.foldl4_corresponding3(P, As, Bs, Cs, !Acc1, !Acc2, !Acc3,
 !Acc4):[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10232--10232
 []@texttt :- pred list.foldl4_corresponding3(pred(A, B, C, D, D, E, E, F, F, G
, G),[] 
[218]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10255--10255
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is det, in, out, mdi,
 muo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10257--10257
 []@texttt :- mode list.map_foldl(pred(in, out, in, out) is semidet, in, out, i
n, out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10259--10259
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is semidet, in, out, 
mdi, muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10261--10261
 []@texttt :- mode list.map_foldl(pred(in, out, di, uo) is semidet, in, out, di
, uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10265--10265
 []@texttt :- mode list.map_foldl(pred(in, out, in, out) is non-det, in, out, i
n, out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10267--10267
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is non-det, in, out, 
mdi, muo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10269--10269
 []@texttt :- mode list.map_foldl(pred(in, out, in, out) is cc_multi, in, out, 
in, out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10271--10271
 []@texttt :- mode list.map_foldl(pred(in, out, mdi, muo) is cc_multi, in, out,
 mdi, muo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10273--10273
 []@texttt :- mode list.map_foldl(pred(in, out, di, uo) is cc_multi, in, out, d
i, uo)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10278--10278
 []@texttt :- pred list.map_foldl2(pred(L, M, A, A, B, B), list(L), list(M), A,
 A, B, B).[] 
[219]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 10310--10310
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, di, uo) is c
c_multi,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10312--10312
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, in, out) is 
cc_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10314--10314
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, in, out) is 
semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10316--10316
 []@texttt :- mode list.map_foldl3(pred(in, out, in, out, in, out, in, out) is 
nondet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10321--10321
 []@texttt :- pred list.map_foldl4(pred(L, M, A, A, B, B, C, C, D, D), list(L),
 list(M),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10326--10326
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10332--10332
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10335--10335
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10338--10338
 []@texttt :- mode list.map_foldl4(pred(in, out, in, out, in, out, in, out, in,
 out)[] 
[220]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10346--10346
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10349--10349
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10352--10352
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10355--10355
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10358--10358
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10361--10361
 []@texttt :- mode list.map_foldl5(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10369--10369
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10371--10371
 []    @texttt in, out, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10372--10372
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10374--10374
 []    @texttt in, out, in, out, in, out, in, out, in, out, in, out, in, out) i
s det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10375--10375
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10379--10379
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10383--10383
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10387--10387
 []@texttt :- mode list.map_foldl6(pred(in, out, in, out, in, out, in, out, in,
 out,[] 
[221]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10396--10396
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is det, in, out,
 out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10398--10398
 []@texttt :- mode list.map2_foldl(pred(in, out, out, mdi, muo) is det, in, out
, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10402--10402
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is semidet, in, 
out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10404--10404
 []@texttt :- mode list.map2_foldl(pred(in, out, out, mdi, muo) is semidet, in,
 out, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10406--10406
 []@texttt :- mode list.map2_foldl(pred(in, out, out, di, uo) is semidet, in, o
ut, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10408--10408
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is non-det, in, 
out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10410--10410
 []@texttt :- mode list.map2_foldl(pred(in, out, out, mdi, muo) is non-det, in,
 out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10412--10412
 []@texttt :- mode list.map2_foldl(pred(in, out, out, in, out) is cc_multi, in,
 out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10414--10414
 []@texttt :- mode list.map2_foldl(pred(in, out, out, di, uo) is cc_multi, in, 
out, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10420--10420
 []@texttt :- pred list.map2_foldl2(pred(L, M, N, A, A, B, B), list(L), list(M)
, list(N),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10426--10426
 []@texttt :- mode list.map2_foldl2(pred(in, out, out, in, out, di, uo) is cc_m
ulti,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10428--10428
 []@texttt :- mode list.map2_foldl2(pred(in, out, out, in, out, in, out) is cc_
multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10430--10430
 []@texttt :- mode list.map2_foldl2(pred(in, out, out, in, out, in, out) is sem
idet,[] 
[222]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 10485--10485
 []@texttt :- pred list.map3_foldl(pred(L, M, N, O, A, A), list(L), list(M), li
st(N),[] 
[223]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 10487--10487
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is det, in,
 out, out,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 10489--10489
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, mdi, muo) is det, in
, out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10491--10491
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, di, uo) is det, in, 
out, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10493--10493
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is semidet,
 in, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10495--10495
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, mdi, muo) is semidet
, in, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10497--10497
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, di, uo) is semidet, 
in, out,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10499--10499
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is non-det,
 in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10501--10501
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, mdi, muo) is non-det
, in, out,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10503--10503
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, in, out) is cc_multi
, in, out,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10505--10505
 []@texttt :- mode list.map3_foldl(pred(in, out, out, out, di, uo) is cc_multi,
 in, out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10513--10513
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10515--10515
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10517--10517
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, di, uo) is
 cc_multi,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 10519--10519
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s cc_multi,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10521--10521
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10523--10523
 []@texttt :- mode list.map3_foldl2(pred(in, out, out, out, in, out, in, out) i
s nondet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10528--10528
 []@texttt :- pred list.map4_foldl(pred(L, M, N, O, P, A, A), list(L), list(M),
 list(N),[] 
[224]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10536--10536
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, in, out) is sem
idet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10538--10538
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, mdi, muo) is se
midet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10544--10544
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, mdi, muo) is no
ndet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10546--10546
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, in, out) is cc_
multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10548--10548
 []@texttt :- mode list.map4_foldl(pred(in, out, out, out, out, di, uo) is cc_m
ulti,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10552--10552
 []    @texttt % Takes a pred-i-cate with one in-put ar-gu-ment, one out-put ar
-gu-ment and an[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10553--10553
 []    @texttt % ac-cu-mu-la-tor. It is called with each el-e-ment of List. If 
a call succeeds,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10554--10554
 []    @texttt % then the out-put is in-cluded in Tru-eList and the ac-cu-mu-la
-tor is updated.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10556--10556
 []@texttt :- pred list.filter_map_foldl(pred(X, Y, A, A)::in(pred(in, out, in,
 out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10566--10566
 []    @texttt % list.all_false(Pred, List) takes a clo-sure with one in-put ar
gument.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10573--10573
 []    @texttt % list.find_first_match(Pred, List, First-Match) takes a clo-sur
e with one[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10574--10574
 []    @texttt % in-put ar-gu-ment. It re-turns the el-e-ment X of the list (if
 any) for which[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10577--10577
 []@texttt :- pred list.find_first_match(pred(X)::in(pred(in) is semidet), list
(X)::in,[] 
[225]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10589--10589
 []    @texttt % list.negated_filter(Pred, List, FalseList) takes a clo-sure wi
th one[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10593--10593
 []@texttt :- pred list.negated_filter(pred(X)::in(pred(in) is semidet), list(X
)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10595--10595
 []@texttt :- func list.negated_filter(pred(X)::in(pred(in) is semidet), list(X
)::in)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10598--10598
 []    @texttt % list.filter(Pred, List, Tru-eList, FalseList) takes a clo-sure
 with one[] 
[226]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 10635--10635
 []@texttt :- pred list.find_first_map2(pred(X, A, B)::in(pred(in, out, out) is
 semidet),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 10646--10646
 []    @texttt % Find the in-dex of an item in the list for which Match is true
 where the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 10650--10650
 []@texttt :- mode list.find_index_of_match(pred(in) is semidet, in, in, out) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10653--10653
 []    @texttt % clo-sure with one in-put ar-gu-ment, and calls it on suc-ces-s
ive members[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10667--10667
 []    @texttt % term Com-pare, and the el-e-ments that are equiv-a-lent in thi
s ordering[] 
[227]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 10682--10682
 []@texttt :- pred list.sort_and_remove_dups(comparison_pred(X)::in(comparison_
pred),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10690--10690
 []@texttt :- pred list.remove_adjacent_dups(comparison_pred(X)::in(comparison_
pred),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10706--10706
 []    @texttt % list.merge_and_remove_dups(P, As, Bs, Sorted) is true iff, ass
uming[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10711--10711
 []    @texttt % Bs (that is, they are equiv-a-lent in the or-der-ing), then th
e element[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10714--10714
 []@texttt :- pred list.merge_and_remove_dups(comparison_pred(X)::in(comparison
_pred),[] 
[228]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10730--10730
 []@texttt :- mode list.series(in, pred(in) is semidet, func(in) = out is det) 
= out[] 
Chapter 41 [229]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10774--10774
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10783--10783
 []@texttt % A map (also known as a dic-tio-nary or an as-so-cia-tive ar-ray) i
s a collection[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10784--10784
 []@texttt % of (Key, Data) pairs which al-lows you to look up any Data item gi
ven the[] 
[230]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 10837--10837
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10844--10844
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10847--10847
 []@texttt :- pred map.lower_bound_lookup(map(K, V)::in, K::in, K::out, V::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10850--10850
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 10857--10857
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10860--10860
 []@texttt :- pred map.upper_bound_lookup(map(K, V)::in, K::in, K::out, V::out)
 is det.[] 
[231]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 10878--10878
 []@texttt :- pred map.insert(K::in, V::in, map(K, V)::in, map(K, V)::out) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10884--10884
 []@texttt :- pred map.det_insert(K::in, V::in, map(K, V)::in, map(K, V)::out) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10886--10886
 []    @texttt % Ap-ply map.det_insert to key - value pairs from cor-re-spond-i
ng lists.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10888--10888
 []@texttt :- func map.det_insert_from_corresponding_lists(map(K, V), list(K), 
list(V))[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10907--10907
 []@texttt :- func map.set_from_assoc_list(map(K, V), as-soc_list(K, V)) = map(
K, V).[] 
[232]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 10915--10915
 []@texttt :- pred map.update(K::in, V::in, map(K, V)::in, map(K, V)::out) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10921--10921
 []@texttt :- pred map.det_update(K::in, V::in, map(K, V)::in, map(K, V)::out) 
is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10924--10924
 []    @texttt % trans-for-ma-tion to it.  Fails if the key is not found.  This
 is faster[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10934--10934
 []@texttt :- pred map.det_transform_value(pred(V, V)::in(pred(in, out) is det)
, K::in,[] 
[233]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 10967--10967
 []@texttt :- pred map.to_sorted_assoc_list(map(K, V)::in, as-soc_list(K, V)::o
ut) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10972--10972
 []@texttt :- pred map.from_assoc_list(assoc_list(K, V)::in, map(K, V)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 10974--10974
 []    @texttt % Con-vert a sorted as-so-ci-a-tion list with no du-pli-cated ke
ys to a map.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 10984--10984
 []@texttt :- pred map.from_rev_sorted_assoc_list(assoc_list(K, V)::in, map(K, 
V)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 10996--10996
 []@texttt :- pred map.delete_list(list(K)::in, map(K, V)::in, map(K, V)::out) 
is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11001--11001
 []@texttt :- pred map.remove(K::in, V::out, map(K, V)::in, map(K, V)::out) is 
semidet.[] 
[234]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 11006--11006
 []@texttt :- pred map.det_remove(K::in, V::out, map(K, V)::in, map(K, V)::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11013--11013
 []    @texttt % Con-vert a pair of lists (which must be of the same length) to
 a map.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11016--11016
 []@texttt :- pred map.from_corresponding_lists(list(K)::in, list(V)::in, map(K
, V)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11022--11022
 []    @texttt % The cost of this pred-i-cate is pro-por-tional to the num-ber 
of elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11023--11023
 []    @texttt % in the sec-ond map, so for ef-fi-ciency, you want to put the b
ig-ger map[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11029--11029
 []    @texttt % For map.overlay(MapA, MapB, Map), if MapA and MapB both con-ta
in the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11034--11034
 []@texttt :- pred map.overlay(map(K, V)::in, map(K, V)::in, map(K, V)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11037--11037
 []    @texttt % map.overlay(MapA, MapB, Map). How-ever, while map.overlay take
s time[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11039--11039
 []    @texttt % pro-por-tional to the size of MapA. In other words, it prefer-
able when[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11043--11043
 []@texttt :- pred map.overlay_large_map(map(K, V)::in, map(K, V)::in, map(K, V
)::out)[] 
[235]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 11052--11052
 []    @texttt % map.select_sorted_list takes a map and a sorted list of keys, 
and returns[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11053--11053
 []    @texttt % a map con-tain-ing the keys in the list and their cor-re-spond
-ing values.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11056--11056
 []@texttt :- pred map.select_sorted_list(map(K, V)::in, list(K)::in, map(K, V)
::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11063--11063
 []@texttt :- pred map.apply_to_list(list(K)::in, map(K, V)::in, list(V)::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11075--11075
 []@texttt :- pred map.remove_smallest(K::out, V::out, map(K, V)::in, map(K, V)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11086--11086
 []@texttt :- mode map.foldl(pred(in, in, in, out) is semidet, in, in, out) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11087--11087
 []@texttt :- mode map.foldl(pred(in, in, mdi, muo) is semidet, in, mdi, muo) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11088--11088
 []@texttt :- mode map.foldl(pred(in, in, di, uo) is semidet, in, di, uo) is se
midet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11089--11089
 []@texttt :- mode map.foldl(pred(in, in, in, out) is cc_multi, in, in, out) is
 cc_multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11090--11090
 []@texttt :- mode map.foldl(pred(in, in, di, uo) is cc_multi, in, di, uo) is c
c_multi.[] 
[236]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11128--11128
 []@texttt :- pred map.foldl3(pred(K, V, A, A, B, B, C, C), map(K, V), A, A, B,
 B, C, C).[] 
[237]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 11153--11153
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, in, out, in, out) 
is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11155--11155
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, in, out, in, out) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11157--11157
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, in, out, di, uo) i
s det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11159--11159
 []@texttt :- mode map.foldl4(pred(in, in, in, out, in, out, di, uo, di, uo) is
 det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11171--11171
 []@texttt :- mode map.foldl_values(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11173--11173
 []@texttt :- mode map.foldl_values(pred(in, in, out) is semidet, in, in, out) 
is semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11176--11176
 []@texttt :- mode map.foldl_values(pred(in, di, uo) is semidet, in, di, uo) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11179--11179
 []@texttt :- mode map.foldl_values(pred(in, di, uo) is cc_multi, in, di, uo) i
s cc_multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11188--11188
 []@texttt :- mode map.foldr(pred(in, in, in, out) is semidet, in, in, out) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11189--11189
 []@texttt :- mode map.foldr(pred(in, in, mdi, muo) is semidet, in, mdi, muo) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11190--11190
 []@texttt :- mode map.foldr(pred(in, in, di, uo) is semidet, in, di, uo) is se
midet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11191--11191
 []@texttt :- mode map.foldr(pred(in, in, in, out) is cc_multi, in, in, out) is
 cc_multi.[] 
[238]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 11192--11192
 []@texttt :- mode map.foldr(pred(in, in, di, uo) is cc_multi, in, di, uo) is c
c_multi.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11206--11206
 []@texttt :- pred map.foldr3(pred(K, V, A, A, B, B, C, C), map(K, V), A, A, B,
 B, C, C).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11220--11220
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, in, out, in, out) 
is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11222--11222
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, in, out, in, out) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11224--11224
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, in, out, di, uo) i
s det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11226--11226
 []@texttt :- mode map.foldr4(pred(in, in, in, out, in, out, di, uo, di, uo) is
 det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11238--11238
 []@texttt :- mode map.map_values(pred(in, in, out) is semidet, in, out) is sem
idet.[] 
[239]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 11240--11240
 []    @texttt % Same as map.map_values, but do not pass the key to the given p
redicate.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11245--11245
 []@texttt :- mode map.map_values_only(pred(in, out) is semidet, in, out) is se
midet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11253--11253
 []@texttt :- mode map.map_foldl(pred(in, in, out, in, out) is det, in, out, in
, out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11255--11255
 []@texttt :- mode map.map_foldl(pred(in, in, out, in, out) is semidet, in, out
, in, out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11273--11273
 []@texttt :- pred map.map_foldl3(pred(K, V, W, A, A, B, B, C, C), map(K, V), m
ap(K, W),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11277--11277
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, di, uo, di, uo) is
 det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11279--11279
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, in, out, di, uo) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11281--11281
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, in, out, in, out) 
is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11283--11283
 []@texttt :- mode map.map_foldl3(pred(in, in, out, in, out, in, out, in, out) 
is semidet,[] 
[240]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 11288--11288
 []@texttt :- pred map.map_values_foldl(pred(V, W, A, A), map(K, V), map(K, W),
 A, A).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11298--11298
 []@texttt :- pred map.map_values_foldl2(pred(V, W, A, A, B, B), map(K, V), map
(K, W),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11306--11306
 []@texttt :- mode map.map_values_foldl2(pred(in, out, in, out, in, out) is sem
idet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11313--11313
 []@texttt :- mode map.map_values_foldl3(pred(in, out, di, uo, di, uo, di, uo) 
is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11315--11315
 []@texttt :- mode map.map_values_foldl3(pred(in, out, in, out, di, uo, di, uo)
 is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11317--11317
 []@texttt :- mode map.map_values_foldl3(pred(in, out, in, out, in, out, di, uo
) is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11319--11319
 []@texttt :- mode map.map_values_foldl3(pred(in, out, in, out, in, out, in, ou
t) is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11327--11327
 []    @texttt % and M2, com-pute the value in the fi-nal map by ap-ply-ing the
 supplied[] 
[241]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 11333--11333
 []@texttt :- mode map.intersect(pred(in, in, out) is semidet, in, in, out) is 
semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11340--11340
 []@texttt :- pred map.det_intersect(pred(V, V, V), map(K, V), map(K, V), map(K
, V)).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11341--11341
 []@texttt :- mode map.det_intersect(pred(in, in, out) is semidet, in, in, out)
 is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11343--11343
 []@texttt :- func map.det_intersect(func(V, V) = V, map(K, V), map(K, V)) = ma
p(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11344--11344
 []@texttt :- mode map.det_intersect(func(in, in) = out is semidet, in, in) = o
ut is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11349--11349
 []    @texttt % in-clude the key/value pair in M3. If they dif-fer, do not in-
clude the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11356--11356
 []    @texttt % map.common_subset is very sim-i-lar to map.intersect, but can 
succeed[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11364--11364
 []    @texttt % and M2, com-pute the value in the fi-nal map by ap-ply-ing the
 supplied[] 
[242]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 11380--11380
 []@texttt :- mode map.det_union(func(in, in) = out is semidet, in, in) = out i
s det.[] 
Chapter 42
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11420--11420
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[243]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 11430--11430
 []@texttt % By de-fault, do-main er-rors are cur-rently han-dled by throw-ing 
an exception.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11433--11433
 []@texttt % check-ing by com-pil-ing with `--intermodule-optimization' and the
 C macro[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11438--11438
 []@texttt % `mmc --intermodule-optimization --cflags -DML_OMIT_MATH_DOMAIN_CHE
CKS'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11440--11440
 []@texttt % For max-i-mum per-for-mance, all Mer-cury do-main check-ing can be
 dis-abled by[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11441--11441
 []@texttt % re-com-pil-ing this mod-ule us-ing `MGNUCFLAGS=-DML_OMIT_MATH_DOMA
IN_CHECKS'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11452--11452
 []@texttt % that is en-abled; with the checks dis-abled you only have the info
rmation[] 
[244]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11499--11499
 []    @texttt % math.round(X) = Round is true if Round is the in-te-ger clos-e
st to X.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11504--11504
 []    @texttt % math.truncate(X) = Trunc is true if Trunc is the in-te-ger clo
s-est to X[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11514--11514
 []    @texttt % math.sqrt(X) = Sqrt is true if Sqrt is the pos-i-tive square r
oot of X.[] 
[245]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 11558--11558
 []    @texttt % math.log10(X) = Log is true if Log is the log-a-rithm to base 
10 of X.[] 
[246]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 11570--11570
 []    @texttt % math.log(B, X) = Log is true if Log is the log-a-rithm to base
 B of X.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11612--11612
 []    @texttt % math.atan2(Y, X) = ATan is true if ATan is the in-verse tan-ge
nt of Y/X,[] 
[247]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11630--11630
 []    @texttt % math.tanh(X) = Tanh is true if Tanh is the hy-per-bolic tan-ge
nt of X.[] 
Chapter 43
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11646--11646
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[248] [249]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11711--11711
 []@texttt :- mode fold_maybe(pred(in, in, out) is semidet, in, in, out) is sem
idet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11712--11712
 []@texttt :- mode fold_maybe(pred(in, mdi, muo) is semidet, in, mdi, muo) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11724--11724
 []@texttt :- pred map_fold_maybe(pred(T, U, Acc, Acc), maybe(T), maybe(U), Acc
, Acc).[] 
[250]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11761--11761
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, mdi, muo) is
 det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11765--11765
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, in, out) is 
semidet,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11767--11767
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, mdi, muo) is
 semidet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11769--11769
 []@texttt :- mode map_fold3_maybe(pred(in, out, in, out, in, out, di, uo) is s
emidet,[] 
Chapter 44
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11789--11789
 []@texttt % Copy-right (C) 1995, 1997, 2000, 2002-2006, 2011 The Uni-ver-sity 
of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 11790--11790
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11799--11799
 []@texttt % A map (also known as a dic-tio-nary or an as-so-cia-tive ar-ray) i
s a collection[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11800--11800
 []@texttt % of (Key, Data) pairs which al-lows you to look up any Data item gi
ven the[] 
[251]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11840--11840
 []@texttt :- pred multi_map.search(multi_map(K, V)::in, K::in, list(V)::out) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 11844--11844
 []@texttt :- pred multi_map.nondet_search(multi_map(K, V)::in, K::in, V::out) 
is nondet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11849--11849
 []@texttt :- pred multi_map.lookup(multi_map(K, V)::in, K::in, list(V)::out) i
s det.[] 
[252]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 11853--11853
 []@texttt :- pred multi_map.nondet_lookup(multi_map(K, V)::in, K::in, V::out) 
is nondet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 11857--11857
 []@texttt :- pred multi_map.inverse_search(multi_map(K, V)::in, V::in, K::out)
 is nondet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 11894--11894
 []@texttt :- func multi_map.det_replace(multi_map(K, V), K, list(V)) = multi_m
ap(K, V).[] 
[253]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 11922--11922
 []@texttt :- func multi_map.to_flat_assoc_list(multi_map(K, V)) = as-soc_list(
K, V).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 11928--11928
 []@texttt :- func multi_map.from_flat_assoc_list(assoc_list(K, V)) = multi_map
(K, V).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 11935--11935
 []@texttt :- func multi_map.to_assoc_list(multi_map(K, V)) = as-soc_list(K, li
st(V)).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 11942--11942
 []@texttt :- func multi_map.from_assoc_list(assoc_list(K, list(V))) = multi_ma
p(K, V).[] 
[254] [255]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 12002--12002
 []@texttt :- pred multi_map.from_corresponding_list_lists(list(K)::in, list(li
st(V))::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12038--12038
 []@texttt :- pred multi_map.optimize(multi_map(K, V)::in, multi_map(K, V)::out
) is det.[] 
[256] Chapter 45
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12058--12058
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12071--12071
 []@texttt % Mer-cury op-er-a-tor ta-ble de-fined in the Mer-cury Lan-guage Ref
-er-ence Manual.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12088--12088
 []    @texttt % An ops.class de-scribes what struc-ture terms con-structed wit
h an operator[] 
[257]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12135--12135
 []        @texttt % Check whether a string is the name of a bi-nary pre-fix op
erator,[] 
[258]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12151--12151
 []        @texttt % Check whether a string is the name of an op-er-a-tor, and 
if it is,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12152--12152
 []        @texttt % re-turn the op_info de-scrib-ing that op-er-a-tor in the t
hird argument.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12160--12160
 []        @texttt % a vari-able or a name and `X' and `Y' are terms. If op-er-
a-tor terms[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12161--12161
 []        @texttt % are in-cluded in `Ta-ble', re-turn their prece-dence and a
ssociativity.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12174--12174
 []        @texttt % If `,/2' does not ap-pear in the op_table, `ops.max_priori
ty' plus one[] 
[259] Chapter 46
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12203--12203
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[260] Chapter 47
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12251--12251
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[261]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12302--12302
 []    @texttt % Reads a term from the cur-rent in-put stream, us-ing the given
 op_table[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12305--12305
 []@texttt :- pred read_term_with_op_table(Ops::in, read_term(T)::out, io::di, 
io::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12310--12310
 []    @texttt % Reads a term from the cur-rent in-put stream. The string is th
e filename[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12311--12311
 []    @texttt % to use for the cur-rent in-put stream; this is used in con-str
uct-ing the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12315--12315
 []@texttt :- pred read_term_filename(string::in, read_term(T)::out, io::di, io
::uo)[] 
[262]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 12328--12328
 []    @texttt % pred-i-cates, ex-cept that the term is read from a string rath
er than from[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12329--12329
 []    @texttt % the cur-rent in-put stream. The re-turned value `End-Pos' is t
he position[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12330--12330
 []    @texttt % one char-ac-ter past the end of the term read. The ar-gu-ments
 `MaxOffset'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12331--12331
 []    @texttt % and `Start-Pos' in the six-argument ver-sion spec-ify the leng
th of the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12332--12332
 []    @texttt % string and the po-si-tion within the string at which to start 
parsing.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12362--12362
 []@texttt :- pred parse_tokens(string::in, to-ken_list::in, read_term(T)::out)
 is det.[] 
Chapter 48 [263]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12381--12381
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12390--12390
 []@texttt % ar-gu-ments: a source (src) con-tain-ing the in-put string and a p
arser state (ps)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12393--12393
 []@texttt % Call parse(InputString, SkipWS, Parser, Re-sult) to parse an in-pu
t string[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12396--12396
 []@texttt % fol-low-ing white-space (pro-vid-ing a skip-ping pred-i-cate al-lo
ws users to define[] 
[264]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 12440--12440
 []    @texttt % The fol-low-ing are for parsers that also trans-form a sep-a-r
ate state value.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12443--12443
 []@texttt :- inst parser_with_state == ( pred(in, out, in, out, in, out) is se
midet ).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12445--12445
 []    @texttt % Pred-i-cates of this type are used to skip white-space in the 
primitive[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12461--12461
 []    @texttt % oth-er-wise re-turn er-ror.  If there were any calls to fail_w
ith_message[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12463--12463
 []    @texttt % passed to the last call to fail_with_message will be re-turned
 in the[] 
[265]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 12475--12475
 []    @texttt % Con-struct a new parser source and state from a string, also s
pecifying[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12476--12476
 []    @texttt % a pred-i-cate for skip-ping over white-space (sev-eral prim-i-
tive parsers[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12477--12477
 []    @texttt % use this pred-i-cate to con-sume white-space af-ter a to-ken; 
this argument[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12478--12478
 []    @texttt % al-lows the user to spec-ify a pred-i-cate for, say, skip-ping
 over comments[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12514--12514
 []@texttt :- pred in-put_substring(src::in, int::in, int::in, string::out) is 
semidet.[] 
[266]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12527--12527
 []@texttt :- pred punct(string::in, src::in, unit::out, ps::in, ps::out) is se
midet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12529--12529
 []    @texttt % key-word(IdChars, Key-word, Src, _, !PS) matches Key-word ex-a
ctly (i.e., it[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12530--12530
 []    @texttt % must not be fol-lowed by any char-ac-ter in Id-Chars) and any 
subsequent[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12538--12538
 []    @texttt % Only up-per and low-er-case un-ac-cented Latin let-ters are tr
eated specially.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12543--12543
 []    @texttt % iden-ti-fier(InitIdChars, Id-Chars, Src, Iden-ti-fier, !PS) ma
tches the next[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12544--12544
 []    @texttt % iden-ti-fier (re-sult in Iden-ti-fier) com-pris-ing a char fro
m InitIdChars[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12545--12545
 []    @texttt % fol-lowed by zero or more chars from Id-Chars.  Any sub-se-que
nt whitespace[] 
[267]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 12568--12568
 []    @texttt % fol-lowed by any white-space.  The float_literal_as_string ver
-sion simply[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12570--12570
 []    @texttt % string.to_float to con-vert the out-put of float_literal_as_st
ring; this[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12571--12571
 []    @texttt % may re-turn an ap-prox-i-mate an-swer since not all float-ing 
point numbers[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12579--12579
 []    @texttt % Parse an int lit-eral match-ing [-][0-9]+, not fol-lowed by [.
][0-9]+,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12580--12580
 []    @texttt % fol-lowed by any white-space.  The int_literal_as_string ver-s
ion simply[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12581--12581
 []    @texttt % re-turns the matched string.  The int_literal ver-sion uses st
ring.to_int[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12582--12582
 []    @texttt % to con-vert the out-put of int_literal_as_string; this may fai
l if the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12590--12590
 []    @texttt % Parse an string lit-eral.  The string ar-gu-ment is the quote 
character.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12593--12593
 []    @texttt % are in-cluded as-is in the re-sult, along with the pre-ced-ing
 backslash.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12599--12599
 []    @texttt % op-tional(P, Src, Re-sult, !PS) re-turns Re-sult = yes(X), if 
P(Src, X, !PS),[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12605--12605
 []    @texttt % zero_or_more(P, Src, Xs, !PS) re-turns the list of re-sults Xs
 obtained[] 
[268]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12612--12612
 []    @texttt % one_or_more(P, Src, Xs, !PS) re-turns the list of re-sults Xs 
obtained[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12627--12627
 []    @texttt % zero_or_more(P, Src, Xs, !PS) ex-cept that suc-ces-sive ap-pli
-ca-tions of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12636--12636
 []@texttt :- pred comma_separated_list(parser(T)::in(parser), src::in, list(T)
::out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12639--12639
 []    @texttt % Declar-a-tively this pred-i-cate is equiv-a-lent to false.  Op
erationally[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12651--12651
 []@texttt % The fol-low-ing parser com-bi-na-tors are equiv-a-lent to the abov
e, ex-cept that[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12652--12652
 []@texttt % a sep-a-rate state ar-gu-ment is threaded through the com-pu-ta-ti
on (e.g., for[] 
[269]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12658--12658
 []@texttt :- pred op-tional(parser_with_state(T, S)::in(parser_with_state), sr
c::in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12661--12661
 []    @texttt % zero_or_more(P, Src, Xs, !S, !PS) re-turns the list of re-sult
s Xs obtained[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12665--12665
 []@texttt :- pred zero_or_more(parser_with_state(T, S)::in(parser_with_state),
 src::in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12668--12668
 []    @texttt % one_or_more(P, Src, Xs, !S, !PS) re-turns the list of re-sults
 Xs obtained[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12673--12673
 []@texttt :- pred one_or_more(parser_with_state(T, S)::in(parser_with_state), 
src::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12677--12677
 []    @texttt %   punct(L, Src, _, !PS), P(Src, X, !S, !PS), punct(R, Src, _, 
!PS).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12694--12694
 []@texttt :- pred comma_separated_list(parser_with_state(T, S)::in(parser_with
_state),[] 
Chapter 49 [270]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12709--12709
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12719--12719
 []@texttt % the amount of out-put pro-duced, and sup-ports user-specifiable fo
rmatting[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12725--12725
 []@texttt % This started off as pretty much a di-rect translit-er-a-tion of Ph
ilip Wadler's[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12729--12729
 []@texttt % Sev-eral changes have been made to the al-go-rithm to pre-serve li
n-ear running[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12730--12730
 []@texttt % time un-der a strict lan-guage and to en-sure scal-a-bil-ity to ex
-tremely large[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12734--12734
 []@texttt % 1. the lay-out al-ge-bra is small and quite in-tu-itive (more so t
han Hughes');[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12735--12735
 []@texttt % 2. the pretty printer is op-ti-mal in the sense that it will never
 generate[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 12736--12736
 []@texttt %    out-put that over-runs the spec-i-fied width un-less that is un
-avoid-able; and[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12737--12737
 []@texttt % 3. the pretty printer is bounded in that it never needs to look mo
re than[] 
[271]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 12786--12786
 []@texttt % 2. call pprint.write/[4,5] or pprint.to_string/2 pass-ing the dis-
play width[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 12793--12793
 []@texttt % The doc/1 type class has types string, char, int, float and doc as
 instances.[] 
[272]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12798--12798
 []@texttt % Be-low are some docs fol-lowed by the ways they might be dis-playe
d by the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 12828--12828
 []@texttt % 5. group("Goodbye " ++ nest(3, line ++ group("cruel " ++ line ++ "
world")))[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 12841--12841
 []@texttt %                          nest(3, line ++ group("cruel " ++ line ++
 "world"))))[] 
[273] [274]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 12924--12924
 []    @texttt % The new-line doc-u-ment. In a group doc (see be-low) the prett
y printer[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12925--12925
 []    @texttt % may choose to in-stead `flat-ten' all line docs into nil docs 
in order[] 
[275]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 12941--12941
 []    @texttt % A group doc gives the pretty printer a choice: if the doc can 
be printed[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12942--12942
 []    @texttt % with-out line wrap-ping then it does so (all line, la-bel, nes
t and group[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 12943--12943
 []    @texttt % di-rec-tives within the group are ig-nored); oth-er-wise the p
retty printer[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 12944--12944
 []    @texttt % treats the group body lit-er-ally, al-though nested group docs
 re-main as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12949--12949
 []    @texttt % This func-tion can be used to con-vert strings, chars, ints an
d floats[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 12977--12977
 []    @texttt % For the sin-gle-ton list case, packed(Sep, [X]) = group(line `
<>` X).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12979--12979
 []    @texttt % The re-sult-ing doc tries to pack as many items on a line as p
ossible.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 12983--12983
 []    @texttt % A vari-ant of the above whereby only the first N el-e-ments of
 the list[] 
[276]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 12996--12996
 []    @texttt % A vari-ant of the above whereby only the first N el-e-ments of
 the list[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13001--13001
 []    @texttt % This is like a depth-limited ver-sion of packed_cs/1 that firs
t calls[] 
[277]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 13035--13035
 []    @texttt % Per-forms word wrap-ping at the end of line, tak-ing white-spa
ce sequences[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13040--13040
 []    @texttt % Con-vert ar-bi-trary terms to docs. This re-quires std_util.fu
nctor/3 to work[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13041--13041
 []    @texttt % on all com-po-nents of the ob-ject be-ing con-verted. The sec-
ond version[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13042--13042
 []    @texttt % places a max-i-mum depth on terms which are oth-er-wise trun-c
ated in the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13043--13043
 []    @texttt % man-ner de-scribed in the doc-u-men-ta-tion for the doc/2 meth
od of the doc/1[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13057--13057
 []    @texttt % Write docs out in pretty printed for-mat. The int ar-gu-ment s
pecifies[] 
Chapter 50 [278]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13082--13082
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[279]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 13128--13128
 []@texttt :- pred pqueue.remove(pqueue(K, V)::in, K::out, V::out, pqueue(K, V)
::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13133--13133
 []@texttt :- pred pqueue.det_remove(K::out, V::out, pqueue(K, V)::in, pqueue(K
, V)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13140--13140
 []@texttt :- pred pqueue.to_assoc_list(pqueue(K, V)::in, as-soc_list(K, V)::ou
t) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13146--13146
 []@texttt :- pred pqueue.assoc_list_to_pqueue(assoc_list(K, V)::in, pqueue(K, 
V)::out)[] 
Chapter 51
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13171--13171
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[280]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13182--13182
 []@texttt % The doc type in-cludes data con-struc-tors for out-putting strings
, newlines,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13186--13186
 []@texttt % the group can fit on the re-main-der of the cur-rent line.  [The a
l-go-rithm is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13193--13193
 []@texttt % The pretty printer in-cludes spe-cial sup-port for for-mat-ting Me
r-cury style[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13203--13203
 []@texttt % The amount of out-put pro-duced is con-trolled via limit pa-ram-e-
ters.  Three[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13205--13205
 []@texttt % lines to be out-put, and a limit on the depth for for-mat-ting ar-
bi-trary terms.[] 
[281]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 13224--13224
 []            @texttt % Out-put a lit-eral string. Strings con-tain-ing new-li
nes, hard tabs,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13228--13228
 []            @texttt % Out-put a new-line, fol-lowed by in-den-ta-tion, iff t
he enclosing[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13229--13229
 []            @texttt % group does not fit on the cur-rent line and start-ing 
a new line[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13239--13239
 []            @texttt % Use a spe-cialised for-mat-ter if avail-able, oth-er-w
ise use the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13243--13243
 []            @texttt % Pretty print a list of items us-ing the given doc as a
 separator[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13247--13247
 []            @texttt % Pretty print a term with zero or more ar-gu-ments. If 
the term[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13249--13249
 []            @texttt % ap-pro-pri-ate fix-ity and, if nec-es-sary, in paren-t
he-ses. The term[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13253--13253
 []            @texttt % The ar-gu-ment is a sus-pended com-pu-ta-tion used to 
lazily pro-

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13254--13254
 []            @texttt % doc. If the for-mat-ting limit has been reached then j
ust "..." is[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13255--13255
 []            @texttt % out-put, oth-er-wise the sus-pen-sion is eval-u-ated a
nd the resulting[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13256--13256
 []            @texttt % doc is used. This is use-ful for for-mat-ting large st
ructures[] 
[282]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13266--13266
 []    @texttt % This type is pri-vate to the im-ple-men-ta-tion. It can-not be
 ex-ploited by[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13273--13273
 []    @texttt % Ap-pend In-dentString to the cur-rent in-den-ta-tion while pri
nt-ing Docs.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13285--13285
 []    @texttt % If Docs can be out-put on the re-main-der of the cur-rent line
 by ignoring[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13287--13287
 []    @texttt % (fol-lowed by any in-den-ta-tion). The for-mat-ting test is ap
-plied recursively[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13297--13297
 []    @texttt % for-mat_arg(Doc) has the ef-fect of for-mat-ting any term in D
oc as though[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13306--13306
 []    @texttt % A limit of lin-ear(N) for-mats the first N func-tors be-fore t
runcating[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13309--13309
 []    @texttt % A limit of tri-an-gu-lar(N) for-mats a term t(X1, ..., Xn) by 
ap-ply-ing a[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13310--13310
 []    @texttt % limit of tri-an-gu-lar(N - 1) when for-mat-ting X1, tri-an-gu-
lar(N - 2) when[] 
[283]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 13312--13312
 []    @texttt % The cost of for-mat-ting the term t(X1, ..., Xn) as a whole is
 just one,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13329--13329
 []    @texttt % A for-mat-ter_map maps types to pps.  Types are iden-ti-fied b
y mod-ule name,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13354--13354
 []@texttt :- pred write_doc_to_stream(Stream, non-canon_handling, for-mat-ter_
map, int, int,[] 
[284]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13359--13359
 []@texttt :- mode write_doc_to_stream(in, in(include_details_cc), in, in, in, 
in, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13363--13363
 []    @texttt % for-mat-ters and for-mat-ting pa-ram-e-ters are at-tached to t
he I/O state.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13368--13368
 []                @texttt pp_line_width   :: int,             % Line width in 
characters.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13369--13369
 []                @texttt pp_max_lines    :: int,             % Max lines to o
utput.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13370--13370
 []                @texttt pp_limit        :: for-mat-ting_limit % Term for-mat
-ting limit.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13380--13380
 []    @texttt % These de-faults are thread lo-cal (i.e., changes made by one t
hread to[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13383--13383
 []@texttt :- pred get_default_formatter_map(formatter_map::out, io::di, io::uo
) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13384--13384
 []@texttt :- pred set_default_formatter_map(formatter_map::in, io::di, io::uo)
 is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13385--13385
 []@texttt :- pred set_default_formatter(string::in, string::in, int::in, forma
tter::in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13388--13388
 []    @texttt % The ini-tial de-fault pp_params are pp_params(78, 100, triangu
lar(100)).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13389--13389
 []    @texttt % These de-faults are thread lo-cal (i.e., changes made by one t
hread to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13399--13399
 []    @texttt % write_doc_to stream, with in-clude_details_cc, the de-fault fo
rmatter_map,[] 
[285] Chapter 52
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13417--13417
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[286] Chapter 53 [287]
Overfull \hbox (66.67995pt too wide) in paragraph at lines 13506--13506
 []@texttt % Copy-right (C) 1994-1995, 1997-1999, 2003-2006, 2011 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13507--13507
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13517--13517
 []@texttt % to in-sert val-ues at the end of the queue (queue.put) and re-move
 them from[] 
[288]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 13549--13549
 []    @texttt % `queue.is_full(Queue)' is in-tended to be true iff `Queue' is 
a queue[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13561--13561
 []    @texttt % `queue.put_list(Elems, Queue0, Queue)' is true iff `Queue' is 
the queue[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 13562--13562
 []    @texttt % which re-sults from in-sert-ing the items in the list `El-ems'
 into `Queue0'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13567--13567
 []    @texttt % `queue.first(Queue, Elem)' is true iff `Queue' is a non-empty 
queue[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13572--13572
 []    @texttt % `queue.get(Elem, Queue0, Queue)' is true iff `Queue0' is a non
-empty[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 13573--13573
 []    @texttt % queue whose first el-e-ment is `Elem', and `Queue' the queue w
hich results[] 
[289]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 13599--13599
 []    @texttt % `queue.delete_all(Elem, Queue0, Queue)' is true iff `Queue' is
 the same[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13616--13616
 []@texttt :- pred queue.put_list_on_front(list(T)::in, queue(T)::in, queue(T):
:out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13622--13622
 []@texttt :- pred queue.get_from_back(T::out, queue(T)::in, queue(T)::out) is 
semidet.[] 
Chapter 54
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13636--13636
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[290]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13644--13644
 []@texttt % De-fine a set of ran-dom num-ber gen-er-a-tor pred-i-cates. This i
mplementation[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13652--13652
 []@texttt % co-ef-fi-cients are de-scribed as pro-duc-ing a "Quick and Dirty" 
ran-dom number[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13653--13653
 []@texttt % gen-er-a-tor, which gen-er-ates the num-bers very quickly but not 
necessarily[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13656--13656
 []@texttt % their re-quire-ments in terms of "ran-dom-ness".  For ap-pli-ca-ti
ons which have[] 
[291] [292]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13737--13737
 []@texttt :- pred ran-dom.permutation(list(T), list(T), ran-dom.supply, random
.supply).[] 
Chapter 55
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13753--13753
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[293] Chapter 56
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13830--13830
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[294]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13846--13846
 []@texttt %   looks up an ex-ist-ing value in the tree, ap-plies a trans-for-m
a-tion to the[] 
[295]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 13904--13904
 []    @texttt % trans-for-ma-tion to it.  Fails if the key is not found.  This
 is faster[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13907--13907
 []@texttt :- pred rb-tree.transform_value(pred(V, V)::in(pred(in, out) is det)
, K::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 13913--13913
 []@texttt :- pred rb-tree.set(K::in, V::in, rb-tree(K, V)::in, rb-tree(K, V)::
out) is det.[] 
[296]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 13935--13935
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13938--13938
 []@texttt :- pred rb-tree.lower_bound_search(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13942--13942
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 13943--13943
 []    @texttt % Throws an ex-cep-tion if there is no key with the given or low
er value.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13945--13945
 []@texttt :- pred rb-tree.lower_bound_lookup(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13949--13949
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13952--13952
 []@texttt :- pred rb-tree.upper_bound_search(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13956--13956
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 13957--13957
 []    @texttt % Throws an ex-cep-tion if there is no key with the given or hig
her value.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 13959--13959
 []@texttt :- pred rb-tree.upper_bound_lookup(rbtree(K, V)::in, K::in, K::out, 
V::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13966--13966
 []@texttt :- pred rb-tree.delete(K::in, rb-tree(K, V)::in, rb-tree(K, V)::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 13971--13971
 []@texttt :- pred rb-tree.remove(K::in, V::out, rb-tree(K, V)::in, rb-tree(K, 
V)::out)[] 
[297]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 14003--14003
 []@texttt :- pred rb-tree.assoc_list_to_rbtree(assoc_list(K, V)::in, rb-tree(K
, V)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14009--14009
 []@texttt :- pred rb-tree.rbtree_to_assoc_list(rbtree(K, V)::in, as-soc_list(K
, V)::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14017--14017
 []@texttt :- mode rb-tree.foldl(pred(in, in, mdi, muo) is det, in, mdi, muo) i
s det.[] 
[298]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14046--14046
 []@texttt :- mode rb-tree.foldl3(pred(in, in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14058--14058
 []@texttt :- mode rb-tree.map_values(pred(in, in, out) is semidet, in, out) is
 semidet.[] 
Chapter 57 [299] Chapter 58
Overfull \hbox (66.67995pt too wide) in paragraph at lines 14079--14079
 []@texttt % Copy-right (C) 1993-1999, 2003, 2005-2006, 2010-2011 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14080--14080
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[300]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 14117--14117
 []    @texttt % Use this for fea-tures that should be im-ple-mented (or at lea
st could be[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14139--14139
 []    @texttt % Use this to han-dle cases which are not ex-pected to arise (i.
e. bugs).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14149--14149
 []    @texttt % Use this to han-dle cases which are not ex-pected to arise (i.
e. bugs).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14160--14160
 []    @texttt % that the goal not pro-duce any out-put vari-ables. In most cir
cumstances,[] 
[301]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14170--14170
 []@texttt :- pred ex-pect((pred)::((pred) is semidet), string::in, string::in)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14174--14174
 []    @texttt % Call Goal, and call un-ex-pected(Module, Proc, Mes-sage) if Go
al fails.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14183--14183
 []@texttt :- pred ex-pect_not((pred)::((pred) is semidet), string::in, string:
:in) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14187--14187
 []    @texttt % Call Goal, and call un-ex-pected(Module, Proc, Mes-sage) if Go
al succeeds.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14205--14205
 []    @texttt % the fail-ure of a lookup op-er-a-tion in-volv-ing the spec-i-f
ied Key and Value.[] 
[302] Chapter 59
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14223--14223
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14231--14231
 []@texttt % This mod-ule pro-vides a re-gion tree (R-tree) ADT.  A re-gion tre
e associates[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14233--14233
 []@texttt % bound-ing spheres in 3D space.  Re-gion trees ac-cept spa-tial que
ries, e.g. a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14236--14236
 []@texttt % This mod-ule also pro-vides the type-class re-gion(K) which al-low
s the user to[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14237--14237
 []@texttt % de-fine new re-gions and spa-ces.  Three "builtin" in-stances for 
region(K)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14239--14239
 []@texttt % cor-re-spond-ing to "square" re-gions in one, two and three di-men
-sional spaces[] 
[303] [304] [305]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14359--14359
 []@texttt :- pred rtree.search_first(pred(K, L), pred(V, L), rtree(K, V), L, V
, L).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14366--14366
 []    @texttt % KTest(K).  The same as-sump-tions for KTest from search_genera
l apply[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14369--14369
 []@texttt :- pred rtree.search_general_fold(pred(K), pred(K, V, A, A), rtree(K
, V),[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14376--14376
 []    @texttt % Per-form a traver-sal of the rtree, ap-ply-ing an ac-cu-mu-la-
tor predicate[] 
[306] Chapter 60
Overfull \hbox (32.18782pt too wide) in paragraph at lines 14428--14428
 []@texttt % Copy-right (C) 1995-1997, 1999-2006, 2010-2011 The Uni-ver-sity of
 Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14429--14429
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[307]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 14467--14467
 []    @texttt % `set_bbbtree.count(Set, Count)' is true iff `Set' has `Count' 
elements.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14480--14480
 []    @texttt % `set_bbbtree.is_member(X, Set, Re-sult)' is true iff `X' is a 
member[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14483--14483
 []@texttt :- pred set_bbbtree.is_member(T::in, set_bbbtree(T)::in, bool::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14485--14485
 []    @texttt % `set_bbbtree.contains(Set, X)' is true iff `X' is a mem-ber of
 `Set'.[] 
[308]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 14518--14518
 []@texttt :- pred set_bbbtree.equal(set_bbbtree(T)::in, set_bbbtree(T)::in) is
 semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14520--14520
 []    @texttt % `set_bbbtree.insert(X, Set0, Set)' is true iff `Set' is the un
ion of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14530--14530
 []    @texttt % the union of `Set0' and the set con-tain-ing only the mem-bers
 of `Xs'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14535--14535
 []@texttt :- func set_bbbtree.insert_list(set_bbbtree(T), list(T)) = set_bbbtr
ee(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14537--14537
 []    @texttt % `set_bbbtree.delete(X, Set0, Set)' is true iff `Set' is the re
lative[] 
[309]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14549--14549
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14555--14555
 []@texttt :- func set_bbbtree.delete_list(set_bbbtree(T), list(T)) = set_bbbtr
ee(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14557--14557
 []    @texttt % `set_bbbtree.remove(X, Set0, Set)' is true iff `Set0' con-tain
s `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14562--14562
 []@texttt :- pred set_bbbtree.remove(T::in, set_bbbtree(T)::in, set_bbbtree(T)
::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14574--14574
 []    @texttt % `X' and `Set' is `Set0' and `X' is smaller than all the el-e-m
ents of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14580--14580
 []    @texttt % `set_bbbtree.remove_largest(X, Set0, Set)' is true iff the uni
on if[] 
[310]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14590--14590
 []@texttt :- pred set_bbbtree.list_to_set(list(T)::in, set_bbbtree(T)::out) is
 det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14598--14598
 []    @texttt % `set_bbbtree.sorted_list_to_set(List, Set)' is true iff `Set' 
is the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14613--14613
 []    @texttt % is the length of the list. If the length of the list is al-rea
dy known[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14619--14619
 []@texttt :- pred set_bbbtree.sorted_list_to_set_len(list(T)::in, set_bbbtree(
T)::out,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14631--14631
 []    @texttt % `set_bbbtree.union(SetA, SetB, Set)' is true iff `Set' is the 
union[] 
[311]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14637--14637
 []@texttt :- func set_bbbtree.union(set_bbbtree(T), set_bbbtree(T)) = set_bbbt
ree(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14639--14639
 []    @texttt % `set_bbbtree.union_list(Sets) = Set' is true iff `Set' is the 
union[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14644--14644
 []    @texttt % `set_bbbtree.power_union(Sets, Set)' is true iff `Set' is the 
union[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14650--14650
 []@texttt :- func set_bbbtree.power_union(set_bbbtree(set_bbbtree(T))) = set_b
bbtree(T).[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14658--14658
 []@texttt :- func set_bbbtree.intersect(set_bbbtree(T), set_bbbtree(T)) = set_
bbbtree(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14672--14672
 []@texttt :- func set_bbbtree.intersect_list(list(set_bbbtree(T))) = set_bbbtr
ee(T).[] 
[312]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 14687--14687
 []@texttt :- pred set_bbbtree.subset(set_bbbtree(T)::in, set_bbbtree(T)::in) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14698--14698
 []@texttt :- mode set_bbbtree.fold(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14724--14724
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, in, out) is det
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14726--14726
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, mdi, muo) is de
t, in,[] 
[313]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 14730--14730
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, in, out) is sem
idet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14732--14732
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, mdi, muo) is se
midet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14734--14734
 []@texttt :- mode set_bbbtree.fold3(pred(in, in, out, in, out, di, uo) is semi
det, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14771--14771
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out) is semidet
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14774--14774
 []    @texttt pred(in, in, out, in, out, in, out, in, out, mdi, muo) is semide
t, in,[] 
[314]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 14784--14784
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14787--14787
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14790--14790
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 14793--14793
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14794--14794
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14796--14796
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14797--14797
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14799--14799
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14802--14802
 []@texttt :- func set_bbbtree.map(func(T1) = T2, set_bbbtree(T1)) = set_bbbtre
e(T2).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14806--14806
 []@texttt :- mode set_bbbtree.filter_map(func(in) = out is semidet, in) = out 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14819--14819
 []    @texttt set_bbbtree(T)::in, set_bbbtree(T)::out, set_bbbtree(T)::out) is
 det.[] 
[315] Chapter 61
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14833--14833
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14841--14841
 []@texttt % This mod-ule im-ple-ments sets us-ing 2-3-4 trees ex-tended with e
l-e-ment counts.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14842--14842
 []@texttt % This rep-re-sen-ta-tion has higher con-stant fac-tors for most op-
er-a-tions than[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 14843--14843
 []@texttt % or-dered lists, but it has much bet-ter worst-case com-plex-ity, a
nd is likely[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14846--14846
 []@texttt % - the cost of lookups is only log-a-rith-mic in the size of the se
t, not linear;[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14848--14848
 []@texttt % - for op-er-a-tions that are in-trin-si-cally lin-ear in the size 
of one input[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14849--14849
 []@texttt %   operand or the other, the counts al-low us to choose to be lin-e
ar in the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14869--14869
 []    @texttt % `set_ctree234.singleton_set(Elem, Set)' is true iff `Set' is t
he set[] 
[316]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14886--14886
 []    @texttt % `set_ctree234.member(X, Set)' is true iff `X' is a mem-ber of 
`Set'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14892--14892
 []    @texttt % `set_ctree234.one_member(Set, X)' is true iff `X' is a mem-ber
 of `Set'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14900--14900
 []@texttt :- pred set_ctree234.is_member(set_ctree234(T)::in, T::in, bool::out
) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14902--14902
 []    @texttt % `set_ctree234.contains(Set, X)' is true iff `X' is a mem-ber o
f `Set'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14906--14906
 []    @texttt % `set_ctree234.list_to_set(List) = Set' is true iff `Set' is th
e set[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14914--14914
 []    @texttt % the set con-tain-ing only the mem-bers of `List'. `List' must 
be sorted.[] 
[317]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 14918--14918
 []    @texttt % `set_ctree234.to_sorted_list(Set) = List' is true iff `List' i
s the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14929--14929
 []    @texttt % `set_ctree234.subset(SetA, SetB)' is true iff `SetA' is a sub-
set of[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14945--14945
 []@texttt :- pred set_ctree234.insert(T::in, set_ctree234(T)::in, set_ctree234
(T)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14951--14951
 []@texttt :- func set_ctree234.insert_list(list(T), set_ctree234(T)) = set_ctr
ee234(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 14956--14956
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14961--14961
 []@texttt :- pred set_ctree234.delete(T::in, set_ctree234(T)::in, set_ctree234
(T)::out)[] 
[318]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 14965--14965
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14968--14968
 []@texttt :- func set_ctree234.delete_list(list(T), set_ctree234(T)) = set_ctr
ee234(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14972--14972
 []    @texttt % `set_ctree234.remove(X, Set0, Set)' is true iff `Set0' con-tai
ns `X',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 14977--14977
 []@texttt :- pred set_ctree234.remove(T::in, set_ctree234(T)::in, set_ctree234
(T)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 14989--14989
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 14995--14995
 []    @texttt % `set_ctree234.union(SetA, SetB) = Set' is true iff `Set' is th
e union[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 14998--14998
 []@texttt :- func set_ctree234.union(set_ctree234(T), set_ctree234(T)) = set_c
tree234(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15005--15005
 []@texttt :- func set_ctree234.union_list(list(set_ctree234(T))) = set_ctree23
4(T).[] 
[319]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15017--15017
 []    @texttt % `set_ctree234.intersect(SetA, SetB) = Set' is true iff `Set' i
s the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15034--15034
 []@texttt :- func set_ctree234.intersect_list(list(set_ctree234(T))) = set_ctr
ee234(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15036--15036
 []    @texttt % `set_ctree234.difference(SetA, SetB, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15042--15042
 []@texttt :- pred set_ctree234.difference(set_ctree234(T)::in, set_ctree234(T)
::in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15050--15050
 []@texttt :- func set_ctree234.map(func(T1) = T2, set_ctree234(T1)) = set_ctre
e234(T2).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15054--15054
 []@texttt :- pred set_ctree234.filter_map(pred(T1, T2)::in(pred(in, out) is se
midet),[] 
[320]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 15059--15059
 []@texttt :- mode set_ctree234.filter_map(func(in) = out is semidet, in) = out
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15064--15064
 []@texttt :- mode set_ctree234.fold(pred(in, mdi, muo) is det, in, mdi, muo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15091--15091
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, in, out) is de
t, in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15093--15093
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, mdi, muo) is d
et, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15095--15095
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, di, uo) is det
, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15097--15097
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, in, out) is se
midet, in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15099--15099
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, mdi, muo) is s
emidet, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15101--15101
 []@texttt :- mode set_ctree234.fold3(pred(in, in, out, in, out, di, uo) is sem
idet, in,[] 
[321]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 15107--15107
 []@texttt :- mode set_ctree234.fold4(pred(in, in, out, in, out, in, out, in, o
ut) is det,[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 15109--15109
 []@texttt :- mode set_ctree234.fold4(pred(in, in, out, in, out, in, out, mdi, 
muo) is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15111--15111
 []@texttt :- mode set_ctree234.fold4(pred(in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15149--15149
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15152--15152
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 
[322]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15155--15155
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15158--15158
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15159--15159
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15161--15161
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15162--15162
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15164--15164
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15176--15176
 []    @texttt set_ctree234(T)::in, set_ctree234(T)::out, set_ctree234(T)::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15179--15179
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15184--15184
 []    @texttt set_ctree234(T)::in, set_ctree234(T)::out, set_ctree234(T)::out)
 is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15191--15191
 []@texttt :- pred set_ctree234.divide_by_set(set_ctree234(T)::in, set_ctree234
(T)::in,[] 
Chapter 62 [323]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15208--15208
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[324] [325] [326]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15352--15352
 []@texttt :- pred set.remove_list(list(T)::in, set(T)::in, set(T)::out) is sem
idet.[] 
[327] [328]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 15441--15441
 []@texttt :- mode set.map_fold(pred(in, out, in, out) is det, in, out, in, out
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15442--15442
 []@texttt :- mode set.map_fold(pred(in, out, mdi, muo) is det, in, out, mdi, m
uo) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15443--15443
 []@texttt :- mode set.map_fold(pred(in, out, di, uo) is det, in, out, di, uo) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15484--15484
 []@texttt :- mode set.fold(pred(in, mdi, muo) is semidet, in, mdi, muo) is sem
idet.[] 
[329]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15517--15517
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, in, out) is de
t, in,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15519--15519
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, mdi, muo) is d
et, in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15521--15521
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, di, uo) is det
, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15523--15523
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, in, out) is se
midet, in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15525--15525
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, mdi, muo) is s
emidet, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15527--15527
 []@texttt :- mode set.fold4(pred(in, in, out, in, out, in, out, di, uo) is sem
idet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15530--15530
 []@texttt :- pred set.fold5(pred(T, A, A, B, B, C, C, D, D, E, E), set(T), A, 
A, B, B,[] 
[330]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15554--15554
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15557--15557
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15560--15560
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15563--15563
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15564--15564
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15566--15566
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15567--15567
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15569--15569
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15573--15573
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 
[331]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 15580--15580
 []    @texttt % In-Part con-sists of those el-e-ments of Set which are also in
 DivideBySet;[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15581--15581
 []    @texttt % Out-Part con-sists of those el-e-ments of which are not in Div
ideBySet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15583--15583
 []@texttt :- pred set.divide_by_set(set(T)::in, set(T)::in, set(T)::out, set(T
)::out)[] 
Chapter 63
Overfull \hbox (89.6747pt too wide) in paragraph at lines 15597--15597
 []@texttt % Copy-right (C) 1996-1997,1999-2002, 2004-2006, 2008-2011 The Uni-v
er-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15598--15598
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[332]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15630--15630
 []@texttt :- pred set_ordlist.list_to_set(list(T)::in, set_ordlist(T)::out) is
 det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15638--15638
 []    @texttt % the set con-tain-ing only the mem-bers of `List'.  `List' must
 be sorted.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15651--15651
 []@texttt :- pred set_ordlist.to_sorted_list(set_ordlist(T)::in, list(T)::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15654--15654
 []    @texttt % `set_ordlist.singleton_set(Set, Elem)' is true iff `Set' is th
e set[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15667--15667
 []@texttt :- pred set_ordlist.equal(set_ordlist(T)::in, set_ordlist(T)::in) is
 semidet.[] 
[333]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 15680--15680
 []@texttt :- pred set_ordlist.subset(set_ordlist(T)::in, set_ordlist(T)::in) i
s semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15697--15697
 []@texttt :- pred set_ordlist.is_member(T::in, set_ordlist(T)::in, bool::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15699--15699
 []    @texttt % `set_ordlist.contains(Set, X)' is true iff `X' is a mem-ber of
 `Set'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15706--15706
 []@texttt :- pred set_ordlist.insert(T::in, set_ordlist(T)::in, set_ordlist(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15716--15716
 []@texttt :- func set_ordlist.insert_list(set_ordlist(T), list(T)) = set_ordli
st(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15719--15719
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 
[334]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15723--15723
 []@texttt :- pred set_ordlist.delete(T::in, set_ordlist(T)::in, set_ordlist(T)
::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15728--15728
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15733--15733
 []@texttt :- func set_ordlist.delete_list(set_ordlist(T), list(T)) = set_ordli
st(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15735--15735
 []    @texttt % `set_ordlist.remove(X, Set0, Set)' is true iff `Set0' con-tain
s `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15740--15740
 []@texttt :- pred set_ordlist.remove(T::in, set_ordlist(T)::in, set_ordlist(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15752--15752
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15758--15758
 []    @texttt % `set_ordlist.union(SetA, SetB, Set)' is true iff `Set' is the 
union[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15765--15765
 []@texttt :- func set_ordlist.union(set_ordlist(T), set_ordlist(T)) = set_ordl
ist(T).[] 
[335]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 15770--15770
 []@texttt :- pred set_ordlist.union_list(list(set_ordlist(T))::in, set_ordlist
(T)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15779--15779
 []@texttt :- func set_ordlist.power_union(set_ordlist(set_ordlist(T))) = set_o
rdlist(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15782--15782
 []    @texttt % in-ter-sec-tion of `SetA' and `SetB'. The ef-fi-ciency of the 
intersection[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15785--15785
 []@texttt :- pred set_ordlist.intersect(set_ordlist(T), set_ordlist(T), set_or
dlist(T)).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15802--15802
 []@texttt :- func set_ordlist.intersect_list(list(set_ordlist(T))) = set_ordli
st(T).[] 
[336]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 15835--15835
 []@texttt :- func set_ordlist.map(func(T1) = T2, set_ordlist(T1)) = set_ordlis
t(T2).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15839--15839
 []@texttt :- mode set_ordlist.filter_map(func(in) = out is semidet, in) = out 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15843--15843
 []@texttt :- mode set_ordlist.filter_map(pred(in, out) is semidet, in, out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15848--15848
 []@texttt :- mode set_ordlist.fold(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 
[337]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15874--15874
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, in, out) is det
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15876--15876
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, mdi, muo) is de
t, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15880--15880
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, in, out) is sem
idet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15882--15882
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, mdi, muo) is se
midet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 15884--15884
 []@texttt :- mode set_ordlist.fold3(pred(in, in, out, in, out, di, uo) is semi
det, in,[] 
[338]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15921--15921
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out) is semidet
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15924--15924
 []    @texttt pred(in, in, out, in, out, in, out, in, out, mdi, muo) is semide
t, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15933--15933
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 15936--15936
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15939--15939
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 15942--15942
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15943--15943
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 15945--15945
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 15946--15946
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15948--15948
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15952--15952
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 
[339]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15956--15956
 []    @texttt set_ordlist(T)::in, set_ordlist(T)::out, set_ordlist(T)::out) is
 det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15959--15959
 []    @texttt % In-Part con-sists of those el-e-ments of Set which are also in
 DivideBySet;[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 15960--15960
 []    @texttt % Out-Part con-sists of those el-e-ments of Set which are not in
 DivideBySet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 15962--15962
 []@texttt :- pred set_ordlist.divide_by_set(set_ordlist(T)::in, set_ordlist(T)
::in,[] 
Chapter 64
Overfull \hbox (14.94176pt too wide) in paragraph at lines 15977--15977
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[340]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16004--16004
 []    @texttt % `set_tree234.singleton_set(Elem, Set)' is true iff `Set' is th
e set[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16033--16033
 []@texttt :- pred set_tree234.is_member(set_tree234(T)::in, T::in, bool::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16035--16035
 []    @texttt % `set_tree234.contains(Set, X)' is true iff `X' is a mem-ber of
 `Set'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16047--16047
 []    @texttt % the set con-tain-ing only the mem-bers of `List'. `List' must 
be sorted.[] 
[341]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16059--16059
 []@texttt :- pred set_tree234.equal(set_tree234(T)::in, set_tree234(T)::in) is
 semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16064--16064
 []@texttt :- pred set_tree234.subset(set_tree234(T)::in, set_tree234(T)::in) i
s semidet.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16076--16076
 []@texttt :- pred set_tree234.insert(T::in, set_tree234(T)::in, set_tree234(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16082--16082
 []@texttt :- func set_tree234.insert_list(list(T), set_tree234(T)) = set_tree2
34(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16087--16087
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16092--16092
 []@texttt :- pred set_tree234.delete(T::in, set_tree234(T)::in, set_tree234(T)
::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16096--16096
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 
[342]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 16099--16099
 []@texttt :- func set_tree234.delete_list(list(T), set_tree234(T)) = set_tree2
34(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16103--16103
 []    @texttt % `set_tree234.remove(X, Set0, Set)' is true iff `Set0' con-tain
s `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16108--16108
 []@texttt :- pred set_tree234.remove(T::in, set_tree234(T)::in, set_tree234(T)
::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16120--16120
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16126--16126
 []    @texttt % `set_tree234.union(SetA, SetB) = Set' is true iff `Set' is the
 union[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16129--16129
 []@texttt :- func set_tree234.union(set_tree234(T), set_tree234(T)) = set_tree
234(T).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16137--16137
 []@texttt :- pred set_tree234.union_list(list(set_tree234(T))::in, set_tree234
(T)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16143--16143
 []@texttt :- func set_tree234.power_union(set_tree234(set_tree234(T))) = set_t
ree234(T).[] 
[343]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 16150--16150
 []@texttt :- func set_tree234.intersect(set_tree234(T), set_tree234(T)) = set_
tree234(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16163--16163
 []@texttt :- func set_tree234.intersect_list(list(set_tree234(T))) = set_tree2
34(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16179--16179
 []@texttt :- func set_tree234.map(func(T1) = T2, set_tree234(T1)) = set_tree23
4(T2).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16183--16183
 []@texttt :- pred set_tree234.filter_map(pred(T1, T2)::in(pred(in, out) is sem
idet),[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16188--16188
 []@texttt :- mode set_tree234.filter_map(func(in) = out is semidet, in) = out 
is det.[] 
[344]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16193--16193
 []@texttt :- mode set_tree234.fold(pred(in, mdi, muo) is det, in, mdi, muo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16220--16220
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, in, out) is det
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16222--16222
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, mdi, muo) is de
t, in,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16226--16226
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, in, out) is sem
idet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16228--16228
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, mdi, muo) is se
midet, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16230--16230
 []@texttt :- mode set_tree234.fold3(pred(in, in, out, in, out, di, uo) is semi
det, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16236--16236
 []@texttt :- mode set_tree234.fold4(pred(in, in, out, in, out, in, out, in, ou
t) is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16238--16238
 []@texttt :- mode set_tree234.fold4(pred(in, in, out, in, out, in, out, mdi, m
uo) is det,[] 
[345]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16240--16240
 []@texttt :- mode set_tree234.fold4(pred(in, in, out, in, out, in, out, di, uo
) is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16278--16278
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16281--16281
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16284--16284
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 
[346]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 16287--16287
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16288--16288
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16290--16290
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16291--16291
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16293--16293
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16305--16305
 []    @texttt set_tree234(T)::in, set_tree234(T)::out, set_tree234(T)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16308--16308
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16312--16312
 []    @texttt set_tree234(T)::in, set_tree234(T)::out, set_tree234(T)::out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16319--16319
 []@texttt :- pred set_tree234.divide_by_set(set_tree234(T)::in, set_tree234(T)
::in,[] 
Chapter 65
Overfull \hbox (89.6747pt too wide) in paragraph at lines 16333--16333
 []@texttt % Copy-right (C) 1995-1997,1999-2002, 2004-2006, 2010-2011 The Uni-v
er-sity of Melbourne.[] 
[347]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16334--16334
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16343--16343
 []@texttt % Sets are im-ple-mented here as un-sorted lists, which may con-tain
 duplicates.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16363--16363
 []    @texttt % `set_unordlist.list_to_set(List, Set)' is true iff `Set' is th
e set[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16367--16367
 []@texttt :- pred set_unordlist.list_to_set(list(T)::in, set_unordlist(T)::out
) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16374--16374
 []    @texttt % the set con-tain-ing only the mem-bers of `List'.  `List' must
 be sorted.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16376--16376
 []@texttt :- pred set_unordlist.sorted_list_to_set(list(T)::in, set_unordlist(
T)::out)[] 
[348]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16384--16384
 []    @texttt % `set_unordlist.to_sorted_list(Set, List)' is true iff `List' i
s the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16391--16391
 []    @texttt % `set_unordlist.singleton_set(Set, Elem)' is true iff `Set' is 
the set[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16414--16414
 []    @texttt % `set_unordlist.subset(SetA, SetB)' is true iff `SetA' is a sub
-set of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16423--16423
 []@texttt :- pred set_unordlist.superset(set_unordlist(T)::in, set_unordlist(T
)::in)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16426--16426
 []    @texttt % `set_unordlist.member(X, Set)' is true iff `X' is a mem-ber of
 `Set'.[] 
[349]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16443--16443
 []    @texttt % `set_unordlist.insert(X, Set0, Set)' is true iff `Set' is the 
union[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16452--16452
 []    @texttt % `set_unordlist.insert_list(Xs, Set0, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16462--16462
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y `X', i.e.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16472--16472
 []    @texttt % `set_unordlist.delete_list(Xs, Set0, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16473--16473
 []    @texttt % rel-a-tive com-ple-ment of `Set0' and the set con-tain-ing onl
y the members[] 
[350]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 16482--16482
 []    @texttt % `set_unordlist.remove(X, Set0, Set)' is true iff `Set0' con-ta
ins `X',[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16499--16499
 []    @texttt % least el-e-ment in `Set0', and `Set' is the set which con-tain
s all the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16505--16505
 []    @texttt % `set_unordlist.union(SetA, SetB, Set)' is true iff `Set' is th
e union[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16518--16518
 []@texttt :- func set_unordlist.union_list(list(set_unordlist(T))) = set_unord
list(T).[] 
[351]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16529--16529
 []    @texttt % `set_unordlist.intersect(SetA, SetB, Set)' is true iff `Set' i
s the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16532--16532
 []@texttt :- pred set_unordlist.intersect(set_unordlist(T)::in, set_unordlist(
T)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16541--16541
 []@texttt :- pred set_unordlist.power_intersect(set_unordlist(set_unordlist(T)
)::in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16553--16553
 []    @texttt % `set_unordlist.difference(SetA, SetB, Set)' is true iff `Set' 
is the[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16557--16557
 []@texttt :- pred set_unordlist.difference(set_unordlist(T)::in, set_unordlist
(T)::in,[] 
[352]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16571--16571
 []@texttt :- mode set_unordlist.filter_map(func(in) = out is semidet, in) = ou
t is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16573--16573
 []@texttt :- func set_unordlist.fold(func(T1, T2) = T2, set_unordlist(T1), T2)
 = T2.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16575--16575
 []@texttt :- mode set_unordlist.fold(pred(in, in, out) is det, in, in, out) is
 det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16576--16576
 []@texttt :- mode set_unordlist.fold(pred(in, mdi, muo) is det, in, mdi, muo) 
is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16602--16602
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, in, out) is d
et, in,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16604--16604
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, mdi, muo) is 
det, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16606--16606
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, di, uo) is de
t, in,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16608--16608
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, in, out) is s
emidet, in,[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 16610--16610
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, mdi, muo) is 
semidet, in,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16612--16612
 []@texttt :- mode set_unordlist.fold3(pred(in, in, out, in, out, di, uo) is se
midet, in,[] 
[353]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16649--16649
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out) is semidet
, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16652--16652
 []    @texttt pred(in, in, out, in, out, in, out, in, out, mdi, muo) is semide
t, in,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16662--16662
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s det,[] 
[354]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 16665--16665
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16668--16668
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16671--16671
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, in, out) i
s semidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16672--16672
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, in, out) is sem
idet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16674--16674
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, mdi, muo) 
is semidet,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16675--16675
 []    @texttt in, in, out, in, out, in, out, in, out, in, out, mdi, muo) is se
midet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16677--16677
 []    @texttt pred(in, in, out, in, out, in, out, in, out, in, out, di, uo) is
 semidet,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16689--16689
 []    @texttt set_unordlist(T)::in, set_unordlist(T)::out, set_unordlist(T)::o
ut) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16692--16692
 []    @texttt % TruePart con-sists of those el-e-ments of Set for which Pred s
ucceeds;[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16697--16697
 []    @texttt set_unordlist(T)::in, set_unordlist(T)::out, set_unordlist(T)::o
ut) is det.[] 
Chapter 66 [355]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16711--16711
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16733--16733
 []    @texttt % so-lu-tions_set/2 re-turns them as a set.  un-sorted_solutions
/2 returns[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16735--16735
 []    @texttt % an in-fi-nite num-ber of such lists, this must be called from 
a context[] 
[356]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16792--16792
 []@texttt :- mode ag-gre-gate2(pred(out) is multi, pred(in, in, out, in, out) 
is det,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16796--16796
 []@texttt :- mode ag-gre-gate2(pred(out) is non-det, pred(in, in, out, di, uo)
 is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16798--16798
 []@texttt :- mode ag-gre-gate2(pred(out) is non-det, pred(in, in, out, in, out
) is det,[] 
[357]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 16816--16816
 []@texttt :- mode un-sorted_aggregate(pred(out) is multi, pred(in, in, out) is
 cc_multi,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16820--16820
 []@texttt :- mode un-sorted_aggregate(pred(out) is multi, pred(in, di, uo) is 
cc_multi,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16826--16826
 []@texttt :- mode un-sorted_aggregate(pred(out) is non-det, pred(in, di, uo) i
s cc_multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16828--16828
 []@texttt :- mode un-sorted_aggregate(pred(out) is non-det, pred(in, in, out) 
is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 16830--16830
 []@texttt :- mode un-sorted_aggregate(pred(out) is non-det, pred(in, in, out) 
is cc_multi,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 16832--16832
 []@texttt :- mode un-sorted_aggregate(pred(muo) is non-det, pred(mdi, di, uo) 
is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16851--16851
 []    @texttt pred(in, in, out, in, out) is cc_multi, in, out, in, out) is cc_
multi.[] 
[358]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 16859--16859
 []    @texttt pred(in, in, out, in, out) is cc_multi, in, out, in, out) is cc_
multi.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 16887--16887
 []@texttt :- mode do_while(pred(out) is multi, pred(in, out, in, out) is det, 
in, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16889--16889
 []@texttt :- mode do_while(pred(out) is multi, pred(in, out, di, uo) is det, d
i, uo)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16891--16891
 []@texttt :- mode do_while(pred(out) is multi, pred(in, out, di, uo) is cc_mul
ti, di, uo)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16893--16893
 []@texttt :- mode do_while(pred(out) is non-det, pred(in, out, in, out) is det
, in, out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16895--16895
 []@texttt :- mode do_while(pred(out) is non-det, pred(in, out, di, uo) is det,
 di, uo)[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 16897--16897
 []@texttt :- mode do_while(pred(out) is non-det, pred(in, out, di, uo) is cc_m
ulti, di, uo)[] 
[359] Chapter 67
Overfull \hbox (14.94176pt too wide) in paragraph at lines 16912--16912
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 16928--16928
 []@texttt % For a pair `Off-set - Bits', `Off-set' is a mul-ti-ple of `int.bit
s_per_int'.[] 
[360]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 16979--16979
 []    @texttt % `list_to_set(List)' re-turns a set con-tain-ing only the mem-b
ers of `List'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16985--16985
 []@texttt :- pred list_to_set(list(T)::in, sparse_bitset(T)::out) is det <= en
um(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 16987--16987
 []    @texttt % `sorted_list_to_set(List)' re-turns a set con-tain-ing only th
e members[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 16988--16988
 []    @texttt % of `List'. `List' must be sorted. Takes O(length(List)) time a
nd space.[] 
[361]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 16994--16994
 []    @texttt % `from_set(Set)' re-turns a bit-set con-tain-ing only the mem-b
ers of `Set'.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 16999--16999
 []    @texttt % `to_sorted_list(Set)' re-turns a list con-tain-ing all the mem
-bers of `Set',[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17003--17003
 []@texttt :- pred to_sorted_list(sparse_bitset(T)::in, list(T)::out) is det <=
 enum(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17010--17010
 []    @texttt % `make_singleton_set(Elem)' re-turns a set con-tain-ing just th
e single[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17022--17022
 []    @texttt % Same as `in-ter-sect(Set, Sub-set, Sub-set)', but may be more 
efficient.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17026--17026
 []    @texttt % `su-per-set(Superset, Set)' is true iff `Su-per-set' is a su-p
er-set of `Set'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17027--17027
 []    @texttt % Same as `in-ter-sect(Superset, Set, Set)', but may be more eff
icient.[] 
[362]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 17050--17050
 []    @texttt % `in-sert_list(Set, X)' re-turns the union of `Set' and the set
 containing[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 17051--17051
 []    @texttt % only the mem-bers of `X'. Same as `union(Set, list_to_set(X))'
, but may be[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17054--17054
 []@texttt :- func in-sert_list(sparse_bitset(T), list(T)) = sparse_bitset(T) <
= enum(T).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17055--17055
 []@texttt :- pred in-sert_list(list(T)::in, sparse_bitset(T)::in, sparse_bitse
t(T)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17058--17058
 []    @texttt % `delete(Set, X)' re-turns the dif-fer-ence of `Set' and the se
t containing[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17069--17069
 []@texttt :- func delete_list(sparse_bitset(T), list(T)) = sparse_bitset(T) <=
 enum(T).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17070--17070
 []@texttt :- pred delete_list(list(T)::in, sparse_bitset(T)::in, sparse_bitset
(T)::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17074--17074
 []    @texttt % and the set con-tain-ing only `X', fail-ing if `Set0' does not
 con-tain `X'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17080--17080
 []    @texttt % `re-move_list(X, Set0, Set)' re-turns in `Set' the dif-fer-enc
e of `Set0'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17081--17081
 []    @texttt % and the set con-tain-ing all the el-e-ments of `X', fail-ing i
f any element[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17085--17085
 []@texttt :- pred re-move_list(list(T)::in, sparse_bitset(T)::in, sparse_bitse
t(T)::out)[] 
[363]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 17088--17088
 []    @texttt % `re-move_leq(Set, X)' re-turns `Set' with all el-e-ments less 
than or equal[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17089--17089
 []    @texttt % to `X' re-moved. In other words, it re-turns the set con-tain-
ing all the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17096--17096
 []    @texttt % `re-move_gt(Set, X)' re-turns `Set' with all el-e-ments greate
r than `X'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17097--17097
 []    @texttt % re-moved. In other words, it re-turns the set con-tain-ing all
 the elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17104--17104
 []    @texttt % `re-move_least(Set0, X, Set)' is true iff `X' is the least el-
e-ment in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17105--17105
 []    @texttt % `Set0', and `Set' is the set which con-tains all the el-e-ment
s of `Set0'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17108--17108
 []@texttt :- pred re-move_least(T::out, sparse_bitset(T)::in, sparse_bitset(T)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17119--17119
 []    @texttt % `in-ter-sect(SetA, SetB)' re-turns the in-ter-sec-tion of `Set
A' and `SetB'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17120--17120
 []    @texttt % The ef-fi-ciency of the in-ter-sec-tion op-er-a-tion is not se
n-si-tive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17121--17121
 []    @texttt % ar-gu-ment or-der-ing. Takes O(rep_size(SetA) + rep_size(SetB)
) time and[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17124--17124
 []@texttt :- func in-ter-sect(sparse_bitset(T), sparse_bitset(T)) = sparse_bit
set(T).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17128--17128
 []    @texttt % `dif-fer-ence(SetA, SetB)' re-turns the set con-tain-ing all t
he elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17130--17130
 []    @texttt % O(rep_size(SetA) + rep_size(SetB)) time and O(rep_size(SetA)) 
space.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17132--17132
 []@texttt :- func dif-fer-ence(sparse_bitset(T), sparse_bitset(T)) = sparse_bi
tset(T).[] 
[364]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 17142--17142
 []    @texttt % (in sorted or-der) and an ac-cu-mu-la-tor (with the ini-tial v
alue of `Start'),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17155--17155
 []@texttt :- pred foldl2(pred(T, U, U, V, V), sparse_bitset(T), U, U, V, V) <=
 enum(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17156--17156
 []@texttt :- mode foldl2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17157--17157
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 17158--17158
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17159--17159
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17161--17161
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17165--17165
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17167--17167
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17171--17171
 []    @texttt % (in re-verse sorted or-der) and an ac-cu-mu-la-tor (with the i
ni-tial value[] 
[365]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 17184--17184
 []@texttt :- pred foldr2(pred(T, U, U, V, V), sparse_bitset(T), U, U, V, V) <=
 enum(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17185--17185
 []@texttt :- mode foldr2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17186--17186
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 17187--17187
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17188--17188
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17190--17190
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17194--17194
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17196--17196
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17199--17199
 []    @texttt % `fil-ter(Pred, Set) = True-Set' re-turns the el-e-ments of Set
 for which[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17208--17208
 []@texttt :- pred fil-ter(pred(T), sparse_bitset(T), sparse_bitset(T), sparse_
bitset(T))[] 
Chapter 68
Overfull \hbox (66.67995pt too wide) in paragraph at lines 17223--17223
 []@texttt % Copy-right (C) 1994-1995, 1997-1999, 2005-2006, 2011 The Uni-ver-s
ity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17224--17224
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[366]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17271--17271
 []@texttt :- pred stack.push_list(stack(T)::in, list(T)::in, stack(T)::out) is
 det.[] 
[367] Chapter 69
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17323--17323
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[368] [369] Chapter 70
Overfull \hbox (32.18782pt too wide) in paragraph at lines 17409--17409
 []@texttt % Copy-right (C) 1994-1997, 2000-2008, 2010-2011 The Uni-ver-sity of
 Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17410--17410
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17419--17419
 []@texttt % A store can be con-sid-ered a map-ping from ab-stract keys to thei
r values.[] 
[370]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17423--17423
 []@texttt % Stores may be used to im-ple-ment cyclic data struc-tures such as 
circular[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17428--17428
 []@texttt % The dif-fer-ence be-tween mut-vars and refs is that mut-vars can o
nly be updated[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17430--17430
 []@texttt % ref-er-ence one at a time (pre-sum-ing the ref-er-ence refers to a
 structured[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17446--17446
 []    @texttt % type sys-tem to en-sure at com-pile time that you never at-tem
pt to use[] 
[371]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 17476--17476
 []    @texttt % Cre-ate a new mu-ta-ble vari-able, ini-tial-ized with the spec
-i-fied value.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17481--17481
 []    @texttt % copy_mutvar(OldMutvar, New-Mut-var, S0, S) is equiv-a-lent to 
the sequence[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17485--17485
 []@texttt :- pred store.copy_mutvar(generic_mutvar(T, S)::in, generic_mutvar(T
, S)::out,[] 
[372] [373] [374]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 17620--17620
 []@texttt % Use them only as a last re-sort, only if per-for-mance is crit-i-c
al, and only if[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17639--17639
 []@texttt :- pred store.unsafe_new_arg_ref(T::di, int::in, generic_ref(ArgT, S
)::out,[] 
Chapter 71
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17654--17654
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[375] [376]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 17738--17738
 []        @texttt pred name(Stream::in, stream.name::out, State::di, State::uo
) is det[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17748--17748
 []@texttt :- type-class stream.input(Stream, State) <= stream(Stream, State) w
here [].[] 
[377]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17766--17766
 []    @texttt % that stream re-turn an er-ror, al-though not nec-es-sar-ily th
e same one.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17775--17775
 []    @texttt % A bulk_reader stream is a sub-class of spe-cific in-put stream
 that can[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17776--17776
 []    @texttt % be used to read mul-ti-ple items of data of a spe-cific type f
rom that[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17777--17777
 []    @texttt % in-put stream into a spec-i-fied con-tainer.  For ex-am-ple, b
i-nary input[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17785--17785
 []    @texttt % bulk_get(Stream, In-dex, Nu-mItems, !Store, Nu-mItem-sRead, Re
-sult, !State).[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17790--17790
 []    @texttt % If the read suc-ceeds, Re-sult is `ok' and Nu-mItem-sRead equa
ls NumItems.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 17792--17792
 []    @texttt % On end-of-stream, bulk_get/9 puts as many items as it can into
 !Store.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17795--17795
 []    @texttt % If an er-ror is de-tected, bulk_get/9 puts as many items as it
 can into[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 17796--17796
 []    @texttt % !Store.  Nu-mItem-sRead is less than Nu-mItems, and Re-sult is
 `error(Err)'.[] 
[378]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 17801--17801
 []    @texttt % Throws an ex-cep-tion if In-dex given is out of range or Nu-mI
tems units[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17804--17804
 []    @texttt % If a call to bulk_get/4 re-turns less than Nu-mItems items, al
l further[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17805--17805
 []    @texttt % calls to get/4 or bulk_get/4 for that stream re-turn no items.
  If a[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17806--17806
 []    @texttt % call to bulk_get/9 re-turns `er-ror(...)', all fur-ther calls 
to get/4[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 17807--17807
 []    @texttt % or bulk_get/9 for that stream re-turn an er-ror, al-though not
 necessarily[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 17815--17815
 []    @texttt % XXX These should be di and uo, but with the cur-rent state of 
the mode[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17816--17816
 []    @texttt % sys-tem an un-safe_promise_unique call would be re-quired at e
ach call[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17840--17840
 []    @texttt % A writer stream is a sub-class of spe-cific out-put stream tha
t can be[] 
[379]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 17848--17848
 []    @texttt % Blocks if the whole unit can't be writ-ten to the stream at th
e time[] 
[380]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 17913--17913
 []    @texttt pred seek(Stream::in, stream.whence::in, int::in, State::di, Sta
te::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17922--17922
 []    @texttt % A line ori-ented stream is a stream that keeps track of line n
umbers.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 17924--17924
 []@texttt :- type-class stream.line_oriented(Stream, State) <= stream(Stream, 
State)[] 
[381]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 17960--17960
 []@texttt :- mode stream.input_stream_fold_state(in, in(pred(in, di, uo) is cc
_multi),[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 17967--17967
 []    @texttt pred(Unit, T, T, State, State), T, stream.maybe_partial_res(T, E
rror),[] 
[382]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18013--18013
 []@texttt :- mode put_list(in, pred(in, in, di, uo) is det, pred(in, di, uo) i
s det,[] 
Chapter 72
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18032--18032
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[383]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18068--18068
 []    @texttt State::di, State::uo) is det <= stream.writer(Stream, string, St
ate).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18079--18079
 []    @texttt % If the ar-gu-ment is just a sin-gle string or char-ac-ter, it 
will be printed[] 
[384]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18080--18080
 []    @texttt % out ex-actly as is (un-quoted). If the ar-gu-ment is of type u
niv, then[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18085--18085
 []    @texttt % print/4 im-plic-itly spec-ify `canon-i-cal-ize' as the method 
for handling[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18086--18086
 []    @texttt % non-canonical types. This means that for higher-order types, o
r types[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18087--18087
 []    @texttt % with user-defined equal-ity ax-ioms, or types de-fined us-ing 
the foreign[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18088--18088
 []    @texttt % lan-guage in-ter-face (i.e. pragma for-eign_type), the text ou
t-put will[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18092--18092
 []    @texttt % `in-clude_details_cc' rather than `canon-i-cal-ize'. This mean
s that it will[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18093--18093
 []    @texttt % print the de-tails of non-canonical types. How-ever, it has de
terminism[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18096--18096
 []    @texttt % Note that even if `in-clude_details_cc' is spec-i-fied, some i
mplementations[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18097--18097
 []    @texttt % may not be able to print all the de-tails for higher-order typ
es or types[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18118--18118
 []    @texttt % of any type. The ar-gu-ment is writ-ten in a for-mat that is i
n-tended to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18121--18121
 []    @texttt % Strings and char-ac-ters are al-ways printed out in quotes, us
-ing backslash[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18123--18123
 []    @texttt % us-ing the for-eign lan-guage in-ter-face (pragma for-eign_cod
e), the text[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18124--18124
 []    @texttt % out-put will only de-scribe the type that is be-ing printed, n
ot the value,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18126--18126
 []    @texttt % con-tain-ing ex-is-ten-tial quan-ti-fiers, the type `type_desc
' and closure[] 
[385]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18127--18127
 []    @texttt % types, the re-sult may not be parsable by `read', ei-ther. But
 in all[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18128--18128
 []    @texttt % other cases the for-mat used is stan-dard Mer-cury syn-tax, an
d if you append[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18129--18129
 []    @texttt % a pe-riod and new-line (".\n"), then the re-sults can be read 
in again[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18134--18134
 []    @texttt % is the same as write/4 ex-cept that it spec-i-fies `include_de
tails_cc'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18141--18141
 []@texttt :- pred write(Stream, de-con-struct.noncanon_handling, T, State, Sta
te) is det[] 
Chapter 73
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18165--18165
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[386]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18178--18178
 []@texttt % string builder state, us-ing string.builder.handle as the stream a
rgument.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18179--18179
 []@texttt % Once you've fin-ished writ-ing to the string builder you can get t
he final[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18185--18185
 []@texttt %     stream.string_writer.put_int(string.builder.handle, 5, State0,
 State),[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18209--18209
 []@texttt :- in-stance stream.writer(string.builder.handle, string, string.bui
lder.state).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18210--18210
 []@texttt :- in-stance stream.writer(string.builder.handle, char, string.build
er.state).[] 
Chapter 74 [387]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18226--18226
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18236--18236
 []@texttt % Un-ex-pected null char-ac-ters em-bed-ded in the mid-dle of string
s can be a source[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18237--18237
 []@texttt % of se-cu-rity vul-ner-a-bil-i-ties, so the Mer-cury li-brary pred-
i-cates and functions[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18238--18238
 []@texttt % which cre-ate strings from (lists of) char-ac-ters throw an ex-cep
-tion if a null[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18243--18243
 []@texttt % char-ac-ter as the string ter-mi-na-tor.  A sin-gle code point re-
quires one to four[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18246--18246
 []@texttt % When Mer-cury is com-piled to Java, strings are rep-re-sented as J
ava `String's.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18254--18254
 []@texttt % The builtin com-par-i-son op-er-a-tion on strings is also im-ple-m
en-ta-tion dependent.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18258--18258
 []@texttt % String.compareTo() method.  When Mer-cury is com-piled to C#, stri
ng comparison[] 
[388]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 18279--18279
 []    @texttt % This type is used for defin-ing stream type-class in-stances w
here the raw[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18282--18282
 []    @texttt % - a pos-si-bly empty se-quence of non-newline char-ac-ters ter
-mi-nated by a[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18284--18284
 []    @texttt % - a non-empty se-quence of non-newline char-ac-ters ter-mi-nat
ed by the end[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18290--18290
 []    @texttt % This type is used for defin-ing stream type-class in-stances w
here the raw[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18291--18291
 []    @texttt % string type would be am-bigu-ous. A text file is a pos-si-bly 
empty sequence[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18300--18300
 []    @texttt % NOTE: code points (char-ac-ters) are en-coded us-ing one or mo
re code units,[] 
[389]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18327--18327
 []@texttt :- pred string.codepoint_offset(string::in, int::in, int::out) is se
midet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18332--18332
 []    @texttt % Re-turn the off-set into `String' where, start-ing from `Start
Offset',[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18333--18333
 []    @texttt % `Code-Point-Count' code points are skipped.  Fails if ei-ther 
`StartOffset'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18348--18348
 []@texttt % The fol-low-ing mode is semidet in the sense that it doesn't suc-c
eed more[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18349--18349
 []@texttt % than once - but it does cre-ate a choice-point, which means it's i
nefficient[] 
[390]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 18364--18364
 []@texttt :- pred string.remove_suffix(string::in, string::in, string::out) is
 semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18377--18377
 []    @texttt % string.remove_suffix_if_present(Suffix, String) re-turns `Stri
ng' minus[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18383--18383
 []    @texttt % This is a syn-onym for string.append(Prefix, Suf-fix, String) 
but with[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18384--18384
 []    @texttt % the ar-gu-ments in a more con-ve-nient or-der for use with hig
her-order code.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18386--18386
 []@texttt :- pred string.remove_prefix(string::in, string::in, string::out) is
 semidet.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18388--18388
 []    @texttt % string.remove_prefix_if_present(Prefix, String) = Suf-fix re-t
urns `String'[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18389--18389
 []    @texttt % mi-nus `Pre-fix' if `String' be-gins with `Pre-fix', `String' 
otherwise.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18393--18393
 []    @texttt % string.prefix(String, Pre-fix) is true iff Pre-fix is a pre-fi
x of String.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18400--18400
 []    @texttt % string.suffix(String, Suf-fix) is true iff Suf-fix is a suf-fi
x of String.[] 
[391]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 18422--18422
 []    @texttt % - `do_not_allow' will throw an ex-cep-tion if (any sub-term of
) the argument[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18426--18426
 []    @texttt % - `in-clude_details_cc' will show the struc-ture of any non-ca
nonical[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18427--18427
 []    @texttt %   sub-terms, but can only be called from a com-mit-ted choice 
context.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18429--18429
 []@texttt :- pred string.string_ops_noncanon(noncanon_handling, ops.table, T, 
string).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18430--18430
 []@texttt :- mode string.string_ops_noncanon(in(do_not_allow), in, in, out) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18431--18431
 []@texttt :- mode string.string_ops_noncanon(in(canonicalize), in, in, out) is
 det.[] 
[392]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18465--18465
 []@texttt :- func string.int_to_base_string(int::in, int::in) = (string::uo) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18472--18472
 []    @texttt % If Grou-pLength is less than one then no sep-a-ra-tors will ap
-pear in the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18480--18480
 []    @texttt % In the cur-rent im-ple-men-ta-tion the re-sult-ing float will 
be in the form[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18484--18484
 []    @texttt % The pre-ci-sion cho-sen from this range will be such to al-low
 a successful[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18494--18494
 []    @texttt % Con-vert a c_pointer to a string.  The for-mat is "c_pointer(0
xXXXX)"[] 
[393]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18504--18504
 []    @texttt % string.first_char(String, Char, Rest) is true iff Char is the 
first[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18507--18507
 []    @texttt % WARN-ING: string.first_char makes a copy of Rest be-cause the 
garbage[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18532--18532
 []@texttt :- func string.replace_all(string::in, string::in, string::in) = (st
ring::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18534--18534
 []@texttt :- pred string.replace_all(string::in, string::in, string::in, strin
g::uo)[] 
[394]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 18566--18566
 []    @texttt % Throws an ex-cep-tion if the list of char-ac-ters con-tains a 
null character.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18568--18568
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18576--18576
 []    @texttt % Throws an ex-cep-tion if the list of char-ac-ters con-tains a 
null character.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18578--18578
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18588--18588
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18590--18590
 []@texttt :- pred string.semidet_from_char_list(list(char)::in, string::uo) is
 semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18594--18594
 []    @texttt % Throws an ex-cep-tion if the list of char-ac-ters con-tains a 
null character.[] 
[395]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 18596--18596
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18604--18604
 []    @texttt % NOTE: in fu-ture the same treat-ment may be af-forded sur-ro-g
ate code points.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18617--18617
 []@texttt :- pred string.from_code_unit_list(list(int)::in, string::uo) is sem
idet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18625--18625
 []    @texttt % Con-vert a string to an int. The string must con-tain only dig
-its [0-

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18632--18632
 []    @texttt % Con-vert a string in the spec-i-fied base (2-36) to an int. Th
e string[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18635--18635
 []    @texttt % are rep-re-sented by the let-ters A-Z or a-z. If the string do
es not match[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18639--18639
 []@texttt :- pred string.base_string_to_int(int::in, string::in, int::out) is 
semidet.[] 
[396]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18642--18642
 []    @texttt % if the string ar-gu-ment is not pre-cisely an op-tional sign f
ol-lowed by[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18643--18643
 []    @texttt % a non-empty string of base N dig-its and, if the base is 10, t
he number[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18648--18648
 []    @texttt % Con-vert a string to a float. Throws an ex-cep-tion if the str
ing is not[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 18653--18653
 []    @texttt % Con-vert a string to a float. If the string is not a syn-tac-t
i-cally correct[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18678--18678
 []    @texttt % True if Test-Pred is true when ap-plied to each char-ac-ter (c
ode point) in[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18681--18681
 []@texttt :- pred string.all_match(pred(char)::in(pred(in) is semidet), string
::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18685--18685
 []    @texttt % In-sert `Pad-Char's at the left of `String0' un-til it is at l
east as long[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18686--18686
 []    @texttt % as `Width', giv-ing `String'.  Width is cur-rently mea-sured a
s the number[] 
[397]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18690--18690
 []@texttt :- pred string.pad_left(string::in, char::in, int::in, string::out) 
is det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18693--18693
 []    @texttt % In-sert `Pad-Char's at the right of `String0' un-til it is at 
least as long[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18694--18694
 []    @texttt % as `Width', giv-ing `String'.  Width is cur-rently mea-sured a
s the number[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18698--18698
 []@texttt :- pred string.pad_right(string::in, char::in, int::in, string::out)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18724--18724
 []    @texttt % Calls er-ror/1 if `In-dex' is out of range (neg-a-tive, or gre
ater than[] 
[398]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18758--18758
 []    @texttt % Like `string.index'/3 but also re-turns the po-si-tion of the 
code unit[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18762--18762
 []@texttt :- pred string.index_next(string::in, int::in, int::out, char::uo) i
s semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18766--18766
 []    @texttt % code unit `In-dex'. `Nex-tIn-dex' is the off-set fol-low-ing t
he encoding[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18771--18771
 []@texttt :- pred string.unsafe_index_next(string::in, int::in, int::out, char
::uo)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18775--18775
 []    @texttt % `Char' is the char-ac-ter (code point) in `String' im-me-di-at
ely _before_[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18776--18776
 []    @texttt % the code unit `In-dex'.  Fails if `In-dex' is out of range (no
n-positive,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 18779--18779
 []@texttt :- pred string.prev_index(string::in, int::in, int::out, char::uo) i
s semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18782--18782
 []    @texttt % `Char' is the char-ac-ter (code point) in `String' im-me-di-at
ely _before_[] 
[399]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18783--18783
 []    @texttt % the code unit `In-dex'. `CharIndex' is the off-set of the be-g
in-ning of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18788--18788
 []@texttt :- pred string.unsafe_prev_index(string::in, int::in, int::out, char
::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 18796--18796
 []@texttt :- pred string.unsafe_index_code_unit(string::in, int::in, int::out)
 is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18804--18804
 []    @texttt % `String' mi-nus any ini-tial white-space char-ac-ters in the A
SCII range.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18809--18809
 []    @texttt % `String' mi-nus any trail-ing white-space char-ac-ters in the 
ASCII range.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 18814--18814
 []    @texttt % `String' mi-nus any ini-tial and trail-ing white-space char-ac
-ters in the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18820--18820
 []    @texttt % `String' mi-nus the max-i-mal pre-fix con-sist-ing en-tirely o
f characters[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18823--18823
 []@texttt :- func string.lstrip_pred(pred(char)::in(pred(in) is semidet), stri
ng::in)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18827--18827
 []    @texttt % `String' mi-nus the max-i-mal suf-fix con-sist-ing en-tirely o
f characters[] 
[400]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18830--18830
 []@texttt :- func string.rstrip_pred(pred(char)::in(pred(in) is semidet), stri
ng::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18834--18834
 []    @texttt % The length (in code units) of the max-i-mal pre-fix of `String
' consisting[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18837--18837
 []@texttt :- func string.prefix_length(pred(char)::in(pred(in) is semidet), st
ring::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18841--18841
 []    @texttt % The length (in code units) of the max-i-mal suf-fix of `String
' consisting[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18844--18844
 []@texttt :- func string.suffix_length(pred(char)::in(pred(in) is semidet), st
ring::in)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 18850--18850
 []    @texttt % Fails if `In-dex' is out of range (neg-a-tive, or greater than
 or equal to[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18862--18862
 []    @texttt % Calls er-ror/1 if `In-dex' is out of range (neg-a-tive, or gre
ater than[] 
[401]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 18900--18900
 []    @texttt % `Clo-sure' is an ac-cu-mu-la-tor pred-i-cate which is to be ca
lled for each[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18902--18902
 []    @texttt % value of the ac-cu-mu-la-tor is `!.Acc' and the fi-nal value i
s `!:Acc'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 18912--18912
 []@texttt :- mode string.foldl(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18913--18913
 []@texttt :- mode string.foldl(pred(in, in, out) is non-det, in, in, out) is n
ondet.[] 
[402]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 18939--18939
 []@texttt :- func string.foldl_between(func(char, A) = A, string, int, int, A)
 = A.[] 
[403]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 18979--18979
 []@texttt :- mode string.foldr(pred(in, in, out) is semidet, in, in, out) is s
emidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18980--18980
 []@texttt :- mode string.foldr(pred(in, in, out) is non-det, in, in, out) is n
ondet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 18989--18989
 []@texttt :- func string.foldr_between(func(char, T) = T, string, int, int, T)
 = T.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19007--19007
 []@texttt :- func string.foldl_substring(func(char, A) = A, string, int, int, 
A) = A.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19008--19008
 []@texttt :- pred string.foldl_substring(pred(char, A, A), string, int, int, A
, A).[] 
[404]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 19020--19020
 []    @texttt % string.foldl2_substring(Closure, String, Start, Count, !Acc1, 
!Acc2)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19044--19044
 []@texttt :- func string.foldr_substring(func(char, T) = T, string, int, int, 
T) = T.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19045--19045
 []@texttt :- pred string.foldr_substring(pred(char, T, T), string, int, int, T
, T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19059--19059
 []    @texttt % by non-empty se-quences of char-ac-ters (code points) matched 
by SepP.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19062--19062
 []    @texttt % string.words_separator(char.is_whitespace, " the cat  sat on t
he  mat") =[] 
[405]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 19079--19079
 []    @texttt % string.split_at_separator(char.is_whitespace, " a cat  sat on 
the  mat")[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19092--19092
 []    @texttt % string.split_at_string(Separator, String) re-turns the list of
 substrings[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19095--19095
 []    @texttt % string.split_at_string("|||", "|||fld2|||fld3") = ["", "fld2",
 [fld3"][] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19097--19097
 []    @texttt % Al-ways the first match of Sep-a-ra-tor is used to break the S
tring, for[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19098--19098
 []    @texttt % ex-am-ple: string.split_at_string("aa", "xaaayaaaz") = ["x", "
ay", "az"][] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19104--19104
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19107--19107
 []@texttt :- pred string.split(string::in, int::in, string::uo, string::uo) is
 det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19109--19109
 []    @texttt % string.split_by_codepoint(String, Count, Left-Sub-string, Righ
tSubstring):[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19110--19110
 []    @texttt % `Left-Sub-string' is the left-most `Count' char-ac-ters (code 
points) of[] 
[406]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 19112--19112
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19115--19115
 []@texttt :- pred string.split_by_codepoint(string::in, int::in, string::uo, s
tring::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19120--19120
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19127--19127
 []    @texttt % `Left-Sub-string' is the left-most `Count' char-ac-ters (code 
points) of[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19129--19129
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19132--19132
 []@texttt :- func string.left_by_codepoint(string::in, int::in) = (string::uo)
 is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19133--19133
 []@texttt :- pred string.left_by_codepoint(string::in, int::in, string::uo) is
 det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19136--19136
 []    @texttt % `Right-Sub-string' is the right-most `Count' code _units_ of `
String'.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19137--19137
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19144--19144
 []    @texttt % `Right-Sub-string' is the right-most `Count' char-ac-ters (cod
e points) of[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19146--19146
 []    @texttt % (If `Count' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19149--19149
 []@texttt :- func string.right_by_codepoint(string::in, int::in) = (string::uo
) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19150--19150
 []@texttt :- pred string.right_by_codepoint(string::in, int::in, string::uo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19153--19153
 []    @texttt % `Sub-string' con-sists of the seg-ment of `String' within the 
half-open[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19154--19154
 []    @texttt % in-ter-val [Start, End), where `Start' and `End' are code unit
 offsets.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19155--19155
 []    @texttt % (If `Start' is out of the range [0, length of `String'], it is
 treated[] 
[407]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 19160--19160
 []@texttt :- func string.between(string::in, int::in, int::in) = (string::uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19168--19168
 []@texttt :- func string.substring(string::in, int::in, int::in) = (string::uo
) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19169--19169
 []@texttt :- pred string.substring(string::in, int::in, int::in, string::uo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19172--19172
 []    @texttt % `Sub-string' is the part of `String' be-tween the code point p
ositions[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19174--19174
 []    @texttt % (If `Start' is out of the range [0, length of `String'], it is
 treated[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19181--19181
 []@texttt :- pred string.between_codepoints(string::in, int::in, int::in, stri
ng::uo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19185--19185
 []    @texttt % `Sub-string' con-sists of the seg-ment of `String' within the 
half-open[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19186--19186
 []    @texttt % in-ter-val [Start, End), where `Start' and `End' are code unit
 offsets.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19190--19190
 []    @texttt % This ver-sion takes time pro-por-tional to the length of the s
ubstring,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19194--19194
 []@texttt :- func string.unsafe_between(string::in, int::in, int::in) = (strin
g::uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19204--19204
 []@texttt :- func string.unsafe_substring(string::in, int::in, int::in) = (str
ing::uo)[] 
[408]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19206--19206
 []@texttt :- pred string.unsafe_substring(string::in, int::in, int::in, string
::uo)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19216--19216
 []    @texttt % ad-ja-cent strings. If Strings is the empty list, re-turns the
 empty string.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19218--19218
 []@texttt :- func string.join_list(string::in, list(string)::in) = (string::uo
) is det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19234--19234
 []@texttt :- pred string.sub_string_search(string::in, string::in, int::out) i
s semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19238--19238
 []    @texttt % oc-cur-rence of `Sub-String' oc-curs such that 'In-dex' is gre
ater than or[] 
[409]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 19274--19274
 []    @texttt % An op-tion of zero will cause any padding to be ze-ros rather 
than spaces.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19278--19278
 []    @texttt % and char-ac-ter out-put. A ' ' causes a space to be printed be
-fore a thing[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19279--19279
 []    @texttt % if there is no sign there. The other op-tion is the '#', which
 modifies[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19280--19280
 []    @texttt % the out-put string's for-mat. These op-tions are nor-mally put
 directly[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19290--19290
 []    @texttt % Num-bers are now rounded by pre-ci-sion value, not trun-cated 
as previously.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19292--19292
 []    @texttt % The im-ple-men-ta-tion uses the sprintf() func-tion in C grade
s, so the actual[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19296--19296
 []@texttt :- pred string.format(string::in, list(string.poly_type)::in, string
::out)[] 
[410]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 19306--19306
 []    @texttt % for-mat_table/2 takes a list of columns and a col-umn sep-a-ra
-tor and returns[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19307--19307
 []    @texttt % a for-mat-ted ta-ble, where each field in each col-umn has bee
n aligned[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19308--19308
 []    @texttt % and fields are sep-a-rated with Sep-a-ra-tor. A new-line char-
ac-ter is inserted[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19310--19310
 []    @texttt % an ex-cep-tion is thrown. Lengths are cur-rently mea-sured in 
terms of code[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19315--19315
 []    @texttt % for-mat_table([right(["a", "bb", "ccc"]), left(["1", "22", "33
3"])],[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19324--19324
 []    @texttt % for-mat_table_max(Columns, Sep-a-ra-tor) does the same job as 
format_table,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19325--19325
 []    @texttt % but al-lows the caller to as-so-ciate an max-i-mum width with 
each column.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19327--19327
 []@texttt :- func string.format_table_max(assoc_list(justified_column, maybe(i
nt)),[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19335--19335
 []    @texttt % Wrapped is Str with new-lines in-serted be-tween words (sep-a-
rated by ASCII[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19336--19336
 []    @texttt % space char-ac-ters) so that at most N code points ap-pear on a
 line and each[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19338--19338
 []    @texttt % code point in length then it will be bro-ken over two (or more
) lines.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19345--19345
 []    @texttt % need to be bro-ken up over mul-ti-ple lines have Word-Sep-a-ra
-tor inserted[] 
[411] Chapter 75
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19367--19367
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19373--19373
 []@texttt % This file pro-vides an in-ter-face to the 'ar-ray' ADT that is con
-ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19374--19374
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19375--19375
 []@texttt % their coun-ter-parts in the ar-ray mod-ule; the only dif-fer-ence 
is the order[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19393--19393
 []@texttt :- pred svar-ray.set(int::in, T::in, ar-ray(T)::array_di, array(T)::
array_uo)[] 
[412]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19406--19406
 []    @texttt % re-quired to be unique, so the im-ple-men-ta-tion may not be a
ble to use[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19417--19417
 []    @texttt % re-quired to be unique, so the im-ple-men-ta-tion may not be a
ble to use[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19423--19423
 []@texttt %:- mode svar-ray.semidet_slow_set(in, in, ar-ray_ui, ar-ray_uo) is 
semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19432--19432
 []@texttt :- pred svar-ray.resize(int::in, T::in, ar-ray(T)::array_di, array(T
)::array_uo)[] 
[413] Chapter 76
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19455--19455
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19461--19461
 []@texttt % This file pro-vides an in-ter-face to the 'bag' ADT that is con-du
cive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19462--19462
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19463--19463
 []@texttt % their coun-ter-parts in the bag mod-ule; the only dif-fer-ence is 
the or-der of the[] 
[414]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 19517--19517
 []@texttt :- pred svbag.remove_list(list(T)::in, bag(T)::in, bag(T)::out) is s
emidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19524--19524
 []@texttt :- pred svbag.det_remove_list(list(T)::in, bag(T)::in, bag(T)::out) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19530--19530
 []@texttt :- pred svbag.remove_set(set(T)::in, bag(T)::in, bag(T)::out) is sem
idet.[] 
[415]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19536--19536
 []@texttt :- pred svbag.det_remove_set(set(T)::in, bag(T)::in, bag(T)::out) is
 det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19569--19569
 []@texttt :- pred svbag.remove_smallest(T::out, bag(T)::in, bag(T)::out) is se
midet.[] 
Chapter 77
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19583--19583
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[416]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 19589--19589
 []@texttt % This file pro-vides an in-ter-face to the 'bimap' ADT that is con-
ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19590--19590
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19591--19591
 []@texttt % their coun-ter-parts in the bimap mod-ule; the only dif-fer-ence i
s the order[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19609--19609
 []@texttt :- pred svbimap.det_insert(K::in, V::in, bimap(K, V)::in, bimap(K, V
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19613--19613
 []@texttt :- pred svbimap.set(K::in, V::in, bimap(K, V)::in, bimap(K, V)::out)
 is det.[] 
Chapter 78
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19627--19627
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[417]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19635--19635
 []@texttt % This file pro-vides an in-ter-face to the 'eqv-class' ADT that is 
conducive[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19636--19636
 []@texttt % to the use of state vari-able no-ta-tion. The pred-i-cates here do
 the same thing[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19637--19637
 []@texttt % as their coun-ter-parts in the eqv-class mod-ule; the only dif-fer
-ence is the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19655--19655
 []@texttt :- pred sve-qv-class.ensure_element(T::in, eqv-class(T)::in, eqvclas
s(T)::out)[] 
[418] Chapter 79
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19700--19700
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19708--19708
 []@texttt % This file pro-vides an in-ter-face to the 'list' ADT that is con-d
ucive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19709--19709
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19710--19710
 []@texttt % their coun-ter-parts in the pqueue mod-ule; the only dif-fer-ence 
is the order[] 
[419]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 19734--19734
 []    @texttt % svlist.delete_first(Elem, List0, List) is true iff Elem oc-cur
s in List0[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19737--19737
 []@texttt :- pred svlist.delete_first(T::in, list(T)::in, list(T)::out) is sem
idet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19739--19739
 []    @texttt % svlist.delete_elems(Elems, List0, List) is true iff List is Li
st0 with[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19742--19742
 []@texttt :- pred svlist.delete_elems(list(T)::in, list(T)::in, list(T)::out) 
is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19760--19760
 []@texttt :- pred svlist.replace_all(T::in, T::in, list(T)::in, list(T)::out) 
is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19762--19762
 []    @texttt % svlist.det_replace_nth(N, R, List0, List) is true iff List is 
List0[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19767--19767
 []@texttt :- pred svlist.det_replace_nth(int::in, T::in, list(T)::in, list(T):
:out)[] 
Chapter 80 [420]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19782--19782
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19790--19790
 []@texttt % This file pro-vides an in-ter-face to the 'map' ADT that is con-du
cive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 19791--19791
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 19792--19792
 []@texttt % their coun-ter-parts in the map mod-ule; the only dif-fer-ence is 
the or-der of the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19811--19811
 []@texttt :- pred svmap.insert(K::in, V::in, map(K, V)::in, map(K, V)::out) is
 semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19817--19817
 []@texttt :- pred svmap.det_insert(K::in, V::in, map(K, V)::in, map(K, V)::out
) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 19819--19819
 []    @texttt % Ap-ply map.det_insert to key - value pairs from cor-re-spond-i
ng lists.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19822--19822
 []@texttt :- pred svmap.det_insert_from_corresponding_lists(list(K)::in, list(
V)::in,[] 
[421]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 19845--19845
 []@texttt :- pred svmap.update(K::in, V::in, map(K, V)::in, map(K, V)::out) is
 semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19851--19851
 []@texttt :- pred svmap.det_update(K::in, V::in, map(K, V)::in, map(K, V)::out
) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19868--19868
 []@texttt :- pred svmap.delete_list(list(K)::in, map(K, V)::in, map(K, V)::out
) is det.[] 
[422]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 19874--19874
 []@texttt :- pred svmap.remove(K::in, V::out, map(K, V)::in, map(K, V)::out) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19880--19880
 []@texttt :- pred svmap.det_remove(K::in, V::out, map(K, V)::in, map(K, V)::ou
t) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 19886--19886
 []@texttt :- pred svmap.remove_smallest(K::out, V::out, map(K, V)::in, map(K, 
V)::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 19891--19891
 []@texttt % Ev-ery-thing be-low here is not in-tended to be part of the pub-li
c interface,[] 
Chapter 81 [423]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 19922--19922
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 19930--19930
 []@texttt % This file pro-vides an in-ter-face to the 'multi_map' ADT that is 
con-ducive to[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19931--19931
 []@texttt % the use of state vari-able no-ta-tion. The pred-i-cates here do th
e same thing as[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 19932--19932
 []@texttt % their coun-ter-parts in the multi_map mod-ule; the only dif-fer-en
ce is the order[] 
[424]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 19996--19996
 []@texttt :- pred sv-multi_map.delete(K::in, multi_map(K, V)::in, multi_map(K,
 V)::out)[] 
[425] Chapter 82
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20040--20040
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20048--20048
 []@texttt % This file pro-vides an in-ter-face to the 'pqueue' ADT that is con
-ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20049--20049
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20050--20050
 []@texttt % their coun-ter-parts in the pqueue mod-ule; the only dif-fer-ence 
is the order[] 
[426]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20066--20066
 []@texttt :- pred svpqueue.insert(K::in, V::in, pqueue(K, V)::in, pqueue(K, V)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20072--20072
 []@texttt :- pred svpqueue.remove(K::out, V::out, pqueue(K, V)::in, pqueue(K, 
V)::out)[] 
Chapter 83
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20087--20087
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20095--20095
 []@texttt % This file pro-vides an in-ter-face to the 'queue' ADT that is con-
ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20096--20096
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20097--20097
 []@texttt % their coun-ter-parts in the queue mod-ule; the only dif-fer-ence i
s the order[] 
[427]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20123--20123
 []@texttt :- pred svqueue.put_list(list(T)::in, queue(T)::in, queue(T)::out) i
s det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20151--20151
 []@texttt :- pred svqueue.put_list_on_front(list(T)::in, queue(T)::in, queue(T
)::out)[] 
[428]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 20158--20158
 []@texttt :- pred svqueue.get_from_back(T::out, queue(T)::in, queue(T)::out) i
s semidet.[] 
Chapter 84 Chapter 85
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20180--20180
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20188--20188
 []@texttt % This file pro-vides an in-ter-face to the 'set' ADT that is con-du
cive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20189--20189
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20190--20190
 []@texttt % their coun-ter-parts in the set mod-ule; the only dif-fer-ence is 
the or-der of[] 
[429]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20208--20208
 []    @texttt % `svset.insert_list(Xs, Set0, Set)' is true iff `Set' is the un
ion of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20222--20222
 []    @texttt % `svset.delete_list(Xs, Set0, Set)' is true iff `Set' is the re
lative[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20243--20243
 []@texttt :- pred svset.remove_list(list(T)::in, set(T)::in, set(T)::out) is s
emidet.[] 
[430] Chapter 86
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20266--20266
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20274--20274
 []@texttt % This file pro-vides an in-ter-face to the 'stack' ADT that is con-
ducive to the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20275--20275
 []@texttt % use of state vari-able no-ta-tion. The pred-i-cates here do the sa
me thing as[] 
[431]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 20299--20299
 []@texttt :- pred svs-tack.push_list(list(T)::in, stack(T)::in, stack(T)::out)
 is det.[] 
Chapter 87
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20324--20324
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20332--20332
 []@texttt % This file pro-vides an in-ter-face to the 'varset' ADT that is con
-ducive to the[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20333--20333
 []@texttt % user of state vari-able no-ta-tion.  The pred-i-cates here do the 
same thing as[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20334--20334
 []@texttt % their coun-ter-parts in the varset mod-ule; the only dif-fer-ence 
is the or-
[432]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 20354--20354
 []@texttt :- pred sv-varset.new_var(var(T)::out, varset(T)::in, varset(T)::out
) is det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20384--20384
 []@texttt :- pred sv-varset.delete_var(var(T)::in, varset(T)::in, varset(T)::o
ut) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20389--20389
 []@texttt :- pred sv-varset.delete_vars(list(var(T))::in, varset(T)::in, varse
t(T)::out)[] 
[433]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 20408--20408
 []@texttt :- pred sv-varset.bind_vars(substitution(T)::in, varset(T)::in, vars
et(T)::out)[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 20415--20415
 []@texttt :- pred sv-varset.select(set(var(T))::in, varset(T)::in, varset(T)::
out) is det.[] 
Chapter 88
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20429--20429
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20437--20437
 []@texttt % This file is au-to-mat-i-cally im-ported, as if via `use_module', 
into every[] 
[434]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20440--20440
 []@texttt % the data struc-ture that this pred-i-cate will re-turn, and some o
perations[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20456--20456
 []                @texttt maybe_answer_table_stats    :: maybe(table_stats_cur
r_prev)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20472--20472
 []    @texttt % The def-i-ni-tion of this type be an enum whose im-ple-men-ta-
tion matches[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20473--20473
 []    @texttt % the type MR_TableTrieStep in run-time/mercury_tabling.h. It sh
ould also[] 
[435]
Overfull \hbox (43.6852pt too wide) in paragraph at lines 20497--20497
 []                @texttt ta-ble_step_detail                   :: table_step_s
tat_details[] 
[436] Chapter 89
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20575--20575
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[437]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20606--20606
 []@texttt % :- type op_type ---> fx; fy; xf; yf; xfx; xfy; yfx; fxx; fxy; fyx;
 fyy.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20611--20611
 []@texttt % :- pred term_io.op(int::in, op_type::in, string::in, io::di, io::u
o) is det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20617--20617
 []@texttt % :- pred term_io.current_ops(list(op_details)::out, io::di, io::uo)
 is det.[] 
[438]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20641--20641
 []    @texttt % Writes a term to stan-dard out-put. Uses the vari-able names s
pecified[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20644--20644
 []@texttt :- pred term_io.write_term(varset(T)::in, term(T)::in, io::di, io::u
o) is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20649--20649
 []@texttt :- pred term_io.write_term_with_op_table(Ops::in, varset(T)::in, ter
m(T)::in,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20654--20654
 []@texttt :- pred term_io.write_term_nl(varset(T)::in, term(T)::in, io::di, io
::uo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20672--20672
 []@texttt :- pred term_io.write_variable(var(T)::in, varset(T)::in, io::di, io
::uo)[] 
[439]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 20695--20695
 []    @texttt % Given an atom-name A, write A, en-closed in single-quotes if n
ecessary,[] 
[440]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20733--20733
 []    @texttt % Like term_io.write_escaped_char, but re-turn the re-sult in a 
string.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20753--20753
 []    @texttt % Like term_io.write_escaped_char, but re-turn the re-sult in a 
string.[] 
Chapter 90
Overfull \hbox (14.94176pt too wide) in paragraph at lines 20769--20769
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[441] [442]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 20855--20855
 []@texttt :- pred try_term_to_type(term(U)::in, term_to_type_result(T, U)::out
) is det.[] 
[443]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 20892--20892
 []    @texttt % Con-vert the value stored in the univ (as dis-tinct from the u
niv itself)[] 
[444]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20916--20916
 []    @texttt % ob-tained by travers-ing the list of terms depth-first, left-t
o-right.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20923--20923
 []    @texttt % True if Term con-tains Var. On back-track-ing re-turns all the
 variables[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 20932--20932
 []    @texttt % True if TermList con-tains Var. On back-track-ing re-turns all
 the variables[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 20944--20944
 []    @texttt % Unify (with oc-cur check) two terms with re-spect to a set of 
bindings[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20950--20950
 []    @texttt % As above, but unify the cor-re-spond-ing el-e-ments of two lis
ts of terms.[] 
[445]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 20958--20958
 []    @texttt % Unify (with oc-cur check) two terms with re-spect to a set of 
bindings[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20959--20959
 []    @texttt % and pos-si-bly up-date the set of bind-ings. Fails if any of t
he variables[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20965--20965
 []    @texttt % As above, but unify the cor-re-spond-ing el-e-ments of two lis
ts of terms.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 20969--20969
 []    @texttt list(var(T))::in, sub-sti-tu-tion(T)::in, sub-sti-tu-tion(T)::ou
t) is semidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 20972--20972
 []    @texttt % Terms1 sub-sumes (is more gen-eral than) Terms2, pro-duc-ing a
 substitution[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 20995--20995
 []    @texttt % Re-place all oc-cur-rences of vari-ables in Vars with the corr
esponding[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 20997--20997
 []    @texttt % du-pli-cates, or if Vars is not the same length as Re-pls, the
 behaviour[] 
[446]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21005--21005
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21014--21014
 []    @texttt % Re-cur-sively ap-ply sub-sti-tu-tion to Term0 un-til no more s
ubstitutions[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21021--21021
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21036--21036
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21044--21044
 []    @texttt % True iff Var oc-curs in the term re-sult-ing af-ter ap-ply-ing
 Substitution[] 
[447]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 21056--21056
 []    @texttt % Re-place all oc-cur-rences of Old-Var in Term0 with New-Var an
d put the result[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21060--21060
 []@texttt :- pred re-la-bel_variable(term(T)::in, var(T)::in, var(T)::in, term
(T)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21063--21063
 []    @texttt % As above, ex-cept ap-plies to a list of terms rather than a si
n-gle term.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21066--21066
 []@texttt :- func re-la-bel_variables(list(term(T)), var(T), var(T)) = list(te
rm(T)).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21098--21098
 []    @texttt % is_ground_in_bindings(Term, Bind-ings) is true iff no vari-abl
es contained[] 
[448]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21101--21101
 []@texttt :- pred is_ground_in_bindings(term(T)::in, sub-sti-tu-tion(T)::in) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21124--21124
 []@texttt :- pred cre-ate_var(var(T)::out, var_supply(T)::in, var_supply(T)::o
ut) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21134--21134
 []    @texttt % from_int/1 should only be ap-plied to in-te-gers re-turned by 
to_int/1.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21135--21135
 []    @texttt % This in-stance dec-la-ra-tion is needed to al-low sets of vari
-ables to be[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21139--21139
 []    @texttt % Con-vert a vari-able to an int. Dif-fer-ent vari-ables map to 
dif-fer-ent ints.[] 
[449]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 21172--21172
 []@texttt :- pred term_list_to_var_list(list(term(T))::in, list(var(T))::out) 
is semidet.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21178--21178
 []@texttt :- pred var_list_to_term_list(list(var(T))::in, list(term(T))::out) 
is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21184--21184
 []    @texttt % it doesn't mat-ter what the type of a term is, and pass-ing it
 to this[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21185--21185
 []    @texttt % pred-i-cate will ground the type avoid-ing un-bound type vari-
able warnings.[] 
[450] Chapter 91
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21216--21216
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21229--21229
 []@texttt % The first method re-quires a type to be an in-stance of the xm-lab
le typeclass[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21237--21237
 []@texttt % The sec-ond method is less flex-i-ble than the first, but it al-lo
ws for the[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21239--21239
 []@texttt % Each func-tor in a term is given a cor-re-spond-ing well-formed el
-e-ment name in[] 
[451]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21246--21246
 []@texttt % Method 1 al-lows val-ues of a spe-cific type to be mapped to ar-bi
-trary XML[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21248--21248
 []@texttt % In method 2 each func-tor in a term can be mapped to only one XML 
element.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21250--21250
 []@texttt % In method 2 a DTD can be au-to-mat-i-cally gen-er-ated. In method 
1 DTDs cannot[] 
[452] [453]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21339--21339
 []    @texttt --->    pub-lic(string)                  % For-mal Pub-lic Iden-
ti-fier (FPI)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21361--21361
 []    @texttt % Val-ues of this type in-di-cate whether a stylesheet ref-er-en
ce should be[] 
[454]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21409--21409
 []    @texttt % If May-beEn-cod-ing is yes(Encoding), then in-clude `encoding=
"Encoding"'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21413--21413
 []    @texttt State::di, State::uo) is det <= stream.writer(Stream, string, St
ate).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21420--21420
 []    @texttt % Val-ues of this type spec-ify which map-ping from func-tors to
 elements[] 
[455]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 21457--21457
 []    @texttt % A cus-tom map-ping can be pro-vided us-ing the `cus-tom' func-
tor. See the[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21458--21458
 []    @texttt % doc-u-men-ta-tion for the el-e-ment_pred type be-low for more 
information.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21470--21470
 []    @texttt % De-ter-min-is-tic pro-ce-dures with the fol-low-ing sig-na-tur
e can be used as[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21471--21471
 []    @texttt % cus-tom func-tor to el-e-ment map-pings. The in-puts to the pr
o-ce-dure are[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21474--21474
 []    @texttt % formed XML el-e-ment name and a list of at-tributes that shoul
d be set[] 
[456] [457]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 21529--21529
 []    @texttt % To sup-port third par-ties gen-er-at-ing XML which is com-pat-
i-ble with the[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21531--21531
 []    @texttt % gen-er-ated. A DTD for a given type and functor-to-element map
-ping may[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21547--21547
 []    @texttt % The gen-er-ated DTD is also a good ref-er-ence when cre-at-ing
 a stylesheet[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21551--21551
 []    @texttt % Val-ues of the fol-low-ing type in-di-cate whether a DTD was s
uccessfully[] 
[458]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21573--21573
 []            @texttt % char-ac-ters and floats. If a type is not sup-ported, 
then it is[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21577--21577
 []            @texttt % If one of the ar-gu-ments of a func-tor is ex-is-ten-t
ially typed,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21580--21580
 []            @texttt % Since the val-ues of ex-is-ten-tially typed ar-gu-ment
s can be of[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21581--21581
 []            @texttt % any type (pro-vided any type-class con-straints are sa
tisfied)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21582--21582
 []            @texttt % it is not gen-er-ally pos-si-ble to gen-er-ate DTD rul
es for functors[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21593--21593
 []    @texttt % not pos-si-ble to gen-er-ate a DTD for Term us-ing El-e-mentMa
p-ping, then a[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21594--21594
 []    @texttt % value other than `ok' is re-turned in DT-DResult and noth-ing 
is written[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21600--21600
 []    @texttt maybe_dtd::in, dtd_generation_result::out, State::di, State::uo)
 is det[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21603--21603
 []    @texttt % write_xml_doc_general_cc(Stream, Term, El-e-mentMap-ping, Mayb
eStyleSheet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21606--21606
 []    @texttt % Write Term to the cur-rent file out-put stream as an XML doc-u
-ment using[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21611--21611
 []    @texttt % it is not pos-si-ble to gen-er-ate a DTD for Term us-ing Eleme
ntMapping,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21612--21612
 []    @texttt % then a value other than `ok' is re-turned in DT-DResult and no
th-ing is[] 
[459]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21624--21624
 []    @texttt % functor-to-element map-ping scheme El-e-mentMap-ping. Re-turn 
`ok' if it[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21626--21626
 []    @texttt % dtd_generation_result type for the mean-ing of the re-turn val
ue when[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21634--21634
 []    @texttt % Write a DTD for the given term to the cur-rent file out-put st
ream using[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21646--21646
 []    @texttt % write_dtd_for_type(Stream, Type, El-e-mentMap-ping, DT-DResult
, !State):[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21656--21656
 []    @texttt State::di, State::uo) is det <= stream.writer(Stream, string, St
ate).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21658--21658
 []    @texttt % write_xml_element_general(Stream, Non-Canon, Ma-keEle-ment, In
dentLevel,[] 
[460]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 21667--21667
 []    @texttt % mod-ule in the stan-dard li-brary for more in-for-ma-tion on t
his argument.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21672--21672
 []@texttt :- mode write_xml_element_general(in, in(do_not_allow), in(element_m
apping),[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21674--21674
 []@texttt :- mode write_xml_element_general(in, in(canonicalize), in(element_m
apping),[] 
Chapter 92
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21693--21693
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 21701--21701
 []@texttt % A mvar can only con-tain a sin-gle value, a chan-nel on the other 
hand provides[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21704--21704
 []@texttt % For ex-am-ple a pro-gram could con-sist of 2 worker threads and on
e logging[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21705--21705
 []@texttt % thread.  The worker threads can place mes-sages into the chan-nel,
 and they[] 
[461]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 21737--21737
 []@texttt :- pred chan-nel.try_take(channel(T)::in, maybe(T)::out, io::di, io:
:uo) is det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21742--21742
 []@texttt :- pred chan-nel.duplicate(channel(T)::in, chan-nel(T)::out, io::di,
 io::uo)[] 
Chapter 93 [462]
Overfull \hbox (89.6747pt too wide) in paragraph at lines 21760--21760
 []@texttt % Copy-right (C) 2000-2001,2003-2004, 2006-2008, 2010-2011 The Uni-v
er-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21761--21761
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 21771--21771
 []@texttt % The term `con-cur-rency' here refers to threads, not nec-es-sar-il
y to parallel[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21772--21772
 []@texttt % ex-e-cu-tion.  (The lat-ter is also pos-si-ble if you are us-ing o
ne of the .par[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 21794--21794
 []    @texttt % trans-ac-tions that is an in-ter-leav-ing of those per-formed 
by `Closure'[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21795--21795
 []    @texttt % and those con-tained in `IO' - the list of trans-ac-tions per-
formed by[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21805--21805
 []    @texttt % NOTE: this is not yet im-ple-mented in the hl*.par.gc grades; 
currently[] 
[463] Chapter 94
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21822--21822
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21830--21830
 []@texttt % This mod-ule pro-vides a Mer-cury ver-sion of Haskell mu-ta-ble va
ri-ables.  A[] 
[464]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 21868--21868
 []@texttt :- pred mvar.try_take(mvar(T)::in, maybe(T)::out, io::di, io::uo) is
 det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 21875--21875
 []    @texttt % Place the value of type T into an empty mvar, re-turn-ing yes 
on success.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 21878--21878
 []@texttt :- pred mvar.try_put(mvar(T)::in, T::in, bool::out, io::di, io::uo) 
is det.[] 
Chapter 95
Overfull \hbox (89.6747pt too wide) in paragraph at lines 21897--21897
 []@texttt % Copy-right (C) 2000-2001,2003-2004, 2006-2007, 2009-2011 The Uni-v
er-sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21898--21898
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[465]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 21934--21934
 []    @texttt % Re-turns a new semaphore `Sem' with its counter ini-tial-ized 
to Count.[] 
[466]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21953--21953
 []@texttt :- pred semaphore.try_wait(semaphore::in, bool::out, io::di, io::uo)
 is det.[] 
Chapter 96
Overfull \hbox (66.67995pt too wide) in paragraph at lines 21976--21976
 []@texttt % Some por-tions are Copy-right (C) 1999-2007,2009-2011 The Uni-ver-
sity of Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 21977--21977
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[467]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 21999--21999
 []    @texttt % NOTE: the unit used for a value of this type de-pends on wheth
er it was[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22000--22000
 []    @texttt % re-turned by `time.clock' or `time.times'.  See the com-ments 
on these[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22030--22030
 []                @texttt tm_mon  :: int,         % Month (num-ber since Jan-u
ary, 0-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22035--22035
 []                                        @texttt % (60 and 61 are for leap se
conds)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22036--22036
 []                @texttt tm_yday :: int,         % Year-Day (num-ber since Ja
n 1st, 0-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22037--22037
 []                @texttt tm_wday :: int,         % Week-Day (num-ber since Su
n-day, 0-
[468]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 22055--22055
 []    @texttt % Re-turns the elapsed pro-ces-sor time (num-ber of clock ticks)
. The base time[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22056--22056
 []    @texttt % is ar-bi-trary but doesn't change within a sin-gle pro-cess. I
f the time[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22057--22057
 []    @texttt % can-not be ob-tained, this pro-ce-dure will throw a time_error
 exception.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22058--22058
 []    @texttt % To ob-tain a time in sec-onds, di-vide Re-sult by `time.clocks
_per_sec'.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22066--22066
 []    @texttt % Re-turns the num-ber of "clocks" per sec-ond as de-fined by CL
OCKS_PER_SEC.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22067--22067
 []    @texttt % A `clock_t' value re-turned by `time.clock' can be di-vided by
 this value[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22068--22068
 []    @texttt % to ob-tain a time in sec-onds. Note that the value of this fun
c-tion does[] 
[469]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 22090--22090
 []    @texttt % elapsed real time rel-a-tive to an ar-bi-trary base in the `cl
ock_t' value.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22092--22092
 []    @texttt % If the time can-not be ob-tained, this pro-ce-dure will throw 
a time_error[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22118--22118
 []    @texttt % Com-putes the num-ber of sec-onds elapsed be-tween `Time1' and
 `Time0'.[] 
[470]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22139--22139
 []    @texttt % It also nor-malises the value by fill-ing in day of week and d
ay of year[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22155--22155
 []    @texttt % Con-verts the cal-en-dar time value `Time' to a string in a st
an-dard format[] 
Chapter 97
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22171--22171
 []@texttt % Copy-right (C) 1994-1997,1999-2000,2002-2011 The Uni-ver-sity of M
elbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22172--22172
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[471]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22213--22213
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22216--22216
 []@texttt :- pred tree234.lower_bound_search(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22220--22220
 []    @texttt % for the given key, re-turns the pair for the next lower key in
stead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22223--22223
 []@texttt :- pred tree234.lower_bound_lookup(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22227--22227
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 
[472]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22230--22230
 []@texttt :- pred tree234.upper_bound_search(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22234--22234
 []    @texttt % for the given key, re-turns the pair for the next higher key i
nstead.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22237--22237
 []@texttt :- pred tree234.upper_bound_lookup(tree234(K, V)::in, K::in, K::out,
 V::out)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22244--22244
 []@texttt :- pred tree234.insert(K::in, V::in, tree234(K, V)::in, tree234(K, V
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22252--22252
 []@texttt :- pred tree234.delete(K::in, tree234(K, V)::in, tree234(K, V)::out)
 is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22269--22269
 []@texttt :- pred tree234.update(K::in, V::in, tree234(K, V)::in, tree234(K, V
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22276--22276
 []@texttt :- pred tree234.transform_value(pred(V, V)::in(pred(in, out) is det)
, K::in,[] 
[473]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22300--22300
 []@texttt :- mode tree234.foldl(pred(in, in, mdi, muo) is det, in, mdi, muo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22315--22315
 []@texttt :- pred tree234.foldl2(pred(K, V, A, A, B, B), tree234(K, V), A, A, 
B, B).[] 
[474]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22351--22351
 []@texttt :- mode tree234.foldl3(pred(in, in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22353--22353
 []@texttt :- mode tree234.foldl3(pred(in, in, in, out, in, out, mdi, muo) is s
emidet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22355--22355
 []@texttt :- mode tree234.foldl3(pred(in, in, in, out, in, out, di, uo) is sem
idet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22358--22358
 []@texttt :- pred tree234.foldl4(pred(K, V, A, A, B, B, C, C, D, D), tree234(K
, V),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22366--22366
 []@texttt :- mode tree234.foldl4(pred(in, in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22368--22368
 []@texttt :- mode tree234.foldl4(pred(in, in, in, out, in, out, di, uo, di, uo
) is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22370--22370
 []@texttt :- mode tree234.foldl4(pred(in, in, in, out, di, uo, di, uo, di, uo)
 is det,[] 
[475]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 22372--22372
 []@texttt :- mode tree234.foldl4(pred(in, in, di, uo, di, uo, di, uo, di, uo) 
is det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22376--22376
 []@texttt :- mode tree234.foldl_values(pred(in, in, out) is det, in, in, out) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22377--22377
 []@texttt :- mode tree234.foldl_values(pred(in, mdi, muo) is det, in, mdi, muo
) is det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22378--22378
 []@texttt :- mode tree234.foldl_values(pred(in, di, uo) is det, in, di, uo) is
 det.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22381--22381
 []@texttt :- mode tree234.foldl_values(pred(in, mdi, muo) is semidet, in, mdi,
 muo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22389--22389
 []@texttt :- mode tree234.foldl_values(pred(in, mdi, muo) is cc_multi, in, mdi
, muo)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22396--22396
 []@texttt :- mode tree234.foldr(pred(in, in, mdi, muo) is det, in, mdi, muo) i
s det.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22411--22411
 []@texttt :- pred tree234.foldr2(pred(K, V, A, A, B, B), tree234(K, V), A, A, 
B, B).[] 
[476]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22425--22425
 []@texttt :- mode tree234.foldr3(pred(in, in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22434--22434
 []@texttt :- pred tree234.foldr4(pred(K, V, A, A, B, B, C, C, D, D), tree234(K
, V),[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22442--22442
 []@texttt :- mode tree234.foldr4(pred(in, in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22444--22444
 []@texttt :- mode tree234.foldr4(pred(in, in, in, out, in, out, di, uo, di, uo
) is det,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22446--22446
 []@texttt :- mode tree234.foldr4(pred(in, in, in, out, di, uo, di, uo, di, uo)
 is det,[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22448--22448
 []@texttt :- mode tree234.foldr4(pred(in, in, di, uo, di, uo, di, uo, di, uo) 
is det,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22451--22451
 []@texttt :- func tree234.map_values(func(K, V) = W, tree234(K, V)) = tree234(
K, W).[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22455--22455
 []@texttt :- mode tree234.map_values(pred(in, in, out) is semidet, in, out) is
 semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22457--22457
 []@texttt :- func tree234.map_values_only(func(V) = W, tree234(K, V)) = tree23
4(K, W).[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22459--22459
 []@texttt :- pred tree234.map_values_only(pred(V, W), tree234(K, V), tree234(K
, W)).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22461--22461
 []@texttt :- mode tree234.map_values_only(pred(in, out) is semidet, in, out) i
s semidet.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22463--22463
 []@texttt :- pred tree234.map_foldl(pred(K, V, W, A, A), tree234(K, V), tree23
4(K, W),[] 
[477]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22480--22480
 []@texttt :- mode tree234.map_foldl2(pred(in, in, out, in, out, in, out) is se
midet,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22485--22485
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, di, uo, di, uo, di, uo)
 is det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22487--22487
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, in, out, di, uo, di, uo
) is det,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22489--22489
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, in, out, in, out, di, u
o) is det,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22491--22491
 []@texttt :- mode tree234.map_foldl3(pred(in, in, out, in, out, in, out, in, o
ut) is det,[] 
[478]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22512--22512
 []@texttt :- mode tree234.map_values_foldl2(pred(in, out, in, out, in, out) is
 det,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22514--22514
 []@texttt :- mode tree234.map_values_foldl2(pred(in, out, in, out, in, out) is
 semidet,[] 
Chapter 98 [479]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22568--22568
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22577--22577
 []@texttt % If the in-te-gers stored are closely grouped, a tree_bitset is mor
e compact[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22578--22578
 []@texttt % than the rep-re-sen-ta-tion pro-vided by set.m, and the op-er-a-ti
ons will be much[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22579--22579
 []@texttt % faster. Com-pared to sparse_bitset.m, the op-er-a-tions pro-vided 
by this module[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22580--22580
 []@texttt % for con-tains, union, in-ter-sec-tion and dif-fer-ence can be ex-p
ected to have[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22581--22581
 []@texttt % lower asymp-totic com-plex-ity (of-ten log-a-rith-mic in the num-b
er of el-e-ments in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22582--22582
 []@texttt % the sets, rather than lin-ear). The price for this is a rep-re-sen
-ta-tion that[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22583--22583
 []@texttt % re-quires more mem-ory, higher con-stant fac-tors, and an ad-di-ti
onal factor[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22584--22584
 []@texttt % rep-re-sent-ing the tree in the com-plex-ity of the op-er-a-tions 
that construct[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22585--22585
 []@texttt % tree_bitsets. How-ever, since the depth of the tree has a small up
-per bound,[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22586--22586
 []@texttt % we will fold this into the "higher con-stant fac-tors" in the de-s
crip-tions of[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22589--22589
 []@texttt % All this means that us-ing a tree_bitset in pref-er-ence to a spar
se_bitset[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22590--22590
 []@texttt % is likely to be a good idea only when the sizes of the sets to be 
manipulated[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22593--22593
 []@texttt % For the time be-ing, this mod-ule can only han-dle items that map 
to nonnegative[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22594--22594
 []@texttt % in-te-gers. This may change once un-signed in-te-ger op-er-a-tions
 are available.[] 
[480]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22627--22627
 []@texttt :- pred equal(tree_bitset(T)::in, tree_bitset(T)::in) is semidet <= 
enum(T).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22629--22629
 []    @texttt % `list_to_set(List)' re-turns a set con-tain-ing only the mem-b
ers of `List'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22634--22634
 []    @texttt % `sorted_list_to_set(List)' re-turns a set con-tain-ing only th
e members[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22635--22635
 []    @texttt % of `List'. `List' must be sorted. Takes O(length(List)) time a
nd space.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22639--22639
 []    @texttt % `from_set(Set)' re-turns a bit-set con-tain-ing only the mem-b
ers of `Set'.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22644--22644
 []    @texttt % `to_sorted_list(Set)' re-turns a list con-tain-ing all the mem
-bers of `Set',[] 
[481]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22654--22654
 []    @texttt % `make_singleton_set(Elem)' re-turns a set con-tain-ing just th
e single[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22664--22664
 []    @texttt % Same as `in-ter-sect(Set, Sub-set, Sub-set)', but may be more 
efficient.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22668--22668
 []    @texttt % `su-per-set(Superset, Set)' is true iff `Su-per-set' is a su-p
er-set of `Set'.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22669--22669
 []    @texttt % Same as `in-ter-sect(Superset, Set, Set)', but may be more eff
icient.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22692--22692
 []    @texttt % `in-sert_list(Set, X)' re-turns the union of `Set' and the set
 containing[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22693--22693
 []    @texttt % only the mem-bers of `X'. Same as `union(Set, list_to_set(X))'
, but may be[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22696--22696
 []@texttt :- func in-sert_list(tree_bitset(T), list(T)) = tree_bitset(T) <= en
um(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22697--22697
 []@texttt :- pred in-sert_list(list(T)::in, tree_bitset(T)::in, tree_bitset(T)
::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22700--22700
 []    @texttt % `delete(Set, X)' re-turns the dif-fer-ence of `Set' and the se
t containing[] 
[482]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22711--22711
 []@texttt :- func delete_list(tree_bitset(T), list(T)) = tree_bitset(T) <= enu
m(T).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22712--22712
 []@texttt :- pred delete_list(list(T)::in, tree_bitset(T)::in, tree_bitset(T):
:out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22716--22716
 []    @texttt % and the set con-tain-ing only `X', fail-ing if `Set0' does not
 con-tain `X'.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22722--22722
 []    @texttt % `re-move_list(X, Set0, Set)' re-turns in `Set' the dif-fer-enc
e of `Set0'[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22723--22723
 []    @texttt % and the set con-tain-ing all the el-e-ments of `X', fail-ing i
f any element[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22727--22727
 []@texttt :- pred re-move_list(list(T)::in, tree_bitset(T)::in, tree_bitset(T)
::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22730--22730
 []    @texttt % `re-move_leq(Set, X)' re-turns `Set' with all el-e-ments less 
than or equal[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22731--22731
 []    @texttt % to `X' re-moved. In other words, it re-turns the set con-tain-
ing all the[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22732--22732
 []    @texttt % el-e-ments of `Set' which are greater than `X'. Takes O(log(ca
rd(Set)))[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22737--22737
 []    @texttt % `re-move_gt(Set, X)' re-turns `Set' with all el-e-ments greate
r than `X'[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22738--22738
 []    @texttt % re-moved. In other words, it re-turns the set con-tain-ing all
 the elements[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22739--22739
 []    @texttt % of `Set' which are less than or equal to `X'. Takes O(log(card
(Set)))[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22744--22744
 []    @texttt % `re-move_least(Set0, X, Set)' is true iff `X' is the least el-
e-ment in[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22745--22745
 []    @texttt % `Set0', and `Set' is the set which con-tains all the el-e-ment
s of `Set0'[] 
[483]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 22753--22753
 []    @texttt % or-der-ing. Takes some-where be-tween O(log(card(SetA)) + log(
card(SetB)))[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22757--22757
 []@texttt :- pred union(tree_bitset(T)::in, tree_bitset(T)::in, tree_bitset(T)
::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22760--22760
 []    @texttt % `in-ter-sect(SetA, SetB)' re-turns the in-ter-sec-tion of `Set
A' and `SetB'.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22761--22761
 []    @texttt % The ef-fi-ciency of the in-ter-sec-tion op-er-a-tion is not se
n-si-tive to the[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22763--22763
 []    @texttt % O(log(card(SetA)) + log(card(SetB))) and O(card(SetA) + card(S
etB)) time,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22767--22767
 []@texttt :- pred in-ter-sect(tree_bitset(T)::in, tree_bitset(T)::in, tree_bit
set(T)::out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22770--22770
 []    @texttt % `dif-fer-ence(SetA, SetB)' re-turns the set con-tain-ing all t
he elements[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22771--22771
 []    @texttt % of `SetA' ex-cept those that oc-cur in `SetB'. Takes some-wher
e between[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22772--22772
 []    @texttt % O(log(card(SetA)) + log(card(SetB))) and O(card(SetA) + card(S
etB)) time,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22776--22776
 []@texttt :- pred dif-fer-ence(tree_bitset(T)::in, tree_bitset(T)::in, tree_bi
tset(T)::out)[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22787--22787
 []    @texttt % In-Part con-sists of those el-e-ments of Set which are also in
 DivideBySet;[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22788--22788
 []    @texttt % Out-Part con-sists of those el-e-ments of Set which are not in
 DivideBySet.[] 
[484]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 22799--22799
 []    @texttt % (in sorted or-der) and an ac-cu-mu-la-tor (with the ini-tial v
alue of `Start'),[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22816--22816
 []@texttt :- pred foldl2(pred(T, U, U, V, V), tree_bitset(T), U, U, V, V) <= e
num(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22817--22817
 []@texttt :- mode foldl2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22818--22818
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22819--22819
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22820--22820
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22822--22822
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22826--22826
 []@texttt :- mode foldl2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22828--22828
 []@texttt :- mode foldl2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22832--22832
 []    @texttt % (in re-verse sorted or-der) and an ac-cu-mu-la-tor (with the i
ni-tial value[] 
[485]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 22845--22845
 []@texttt :- pred foldr2(pred(T, U, U, V, V), tree_bitset(T), U, U, V, V) <= e
num(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22846--22846
 []@texttt :- mode foldr2(pred(in, di, uo, di, uo) is det, in, di, uo, di, uo) 
is det.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22847--22847
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is det, in, in, out, di, uo
) is det.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22848--22848
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is det, in, in, out, in, o
ut) is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22849--22849
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is semidet, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22851--22851
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is non-det, in, in, out, i
n, out)[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22855--22855
 []@texttt :- mode foldr2(pred(in, in, out, di, uo) is cc_multi, in, in, out, d
i, uo)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 22857--22857
 []@texttt :- mode foldr2(pred(in, in, out, in, out) is cc_multi, in, in, out, 
in, out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22860--22860
 []    @texttt % `fil-ter(Pred, Set) = True-Set' re-turns the el-e-ments of Set
 for which[] 
Chapter 99
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22885--22885
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[486]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 22917--22917
 []    @texttt % type vari-able may be ei-ther uni-ver-sally or ex-is-ten-tiall
y quantified.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22919--22919
 []    @texttt % mean-ing be-yond the fact that two type vari-ables will be rep
resented[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22920--22920
 []    @texttt % by iden-ti-cal in-te-gers if and only if they are the same typ
e variable.[] 
[487]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 22941--22941
 []    @texttt % Con-vert a pseudo_type_desc de-scrib-ing a ground type to a ty
pe_desc.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22944--22944
 []@texttt :- func ground_pseudo_type_desc_to_type_desc(pseudo_type_desc) = typ
e_desc[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22947--22947
 []    @texttt % Con-vert a pseudo_type_desc de-scrib-ing a ground type to a ty
pe_desc.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22950--22950
 []@texttt :- func det_ground_pseudo_type_desc_to_type_desc(pseudo_type_desc) =
 type_desc.[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 22955--22955
 []@texttt :- func ground_pseudo_type_desc_to_type_desc_det(pseudo_type_desc) =
 type_desc.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22960--22960
 []    @texttt % (Note: it is not pos-si-ble for the type of a vari-able to be 
an unbound[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22961--22961
 []    @texttt % type vari-able; if there are no con-straints on a type vari-ab
le, then the[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22962--22962
 []    @texttt % type-checker will use the type `void'. `void' is a spe-cial (b
uiltin) type[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22964--22964
 []    @texttt % type `void'. `void' is not con-sid-ered to be a dis-crim-i-nat
ed union, so[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22970--22970
 []    @texttt % The pred-i-cate has_type/2 is ba-si-cally an ex-is-ten-tially 
typed inverse[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 22971--22971
 []    @texttt % to the func-tion type_of/1. It con-strains the type of the fir
st argument[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 22976--22976
 []    @texttt % The pred-i-cate same_type/2 en-sures type iden-tity of the two
 arguments.[] 
[488]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 22990--22990
 []    @texttt % True iff `Type-C-tor' is a rep-re-sen-ta-tion of the top-level
 type constructor[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22991--22991
 []    @texttt % for `Type', and `Ty-peArgs' is a list of the cor-re-spond-ing 
type arguments[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 22994--22994
 []    @texttt % For ex-am-ple, type_ctor_and_args(type_of([2,3]), Type-C-tor, 
TypeArgs)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 22995--22995
 []    @texttt % will bind `Type-C-tor' to a rep-re-sen-ta-tion of the type con
-struc-tor list/1,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 22999--22999
 []    @texttt % Note that the re-quire-ment that `Type-C-tor' not be an equiv-
a-lence type[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23000--23000
 []    @texttt % is ful-filled by fully ex-pand-ing any equiv-a-lence types. Fo
r example,[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23003--23003
 []    @texttt % con-struc-tor `bar/0', not `foo/0'. (If you don't want them ex
panded,[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23011--23011
 []    @texttt % True iff `Type-C-tor' is a rep-re-sen-ta-tion of the top-level
 type constructor[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23012--23012
 []    @texttt % for `Type', and `Ty-peArgs' is a list of the cor-re-spond-ing 
type arguments[] 
[489]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 23039--23039
 []@texttt :- func pseudo_type_args(pseudo_type_desc) = list(pseudo_type_desc) 
is semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23041--23041
 []    @texttt % type_ctor_name(TypeCtor) re-turns the name of spec-i-fied type
 constructor.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23046--23046
 []    @texttt % type_ctor_module_name(TypeCtor) re-turns the mod-ule name of s
pecified[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23068--23068
 []    @texttt % True iff `Type' is a type con-structed by ap-ply-ing the type 
constructor[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23071--23071
 []    @texttt % Op-er-a-tionally, the for-wards mode re-turns the type formed 
by applying[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23072--23072
 []    @texttt % the spec-i-fied type con-struc-tor to the spec-i-fied ar-gu-me
nt types, or fails[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23073--23073
 []    @texttt % if the length of Ty-peArgs is not the same as the ar-ity of Ty
peCtor.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23074--23074
 []    @texttt % The re-verse mode re-turns a type con-struc-tor and its ar-gu-
ment types,[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23075--23075
 []    @texttt % given a type_desc; the type con-struc-tor re-turned may be an 
equivalence[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23076--23076
 []    @texttt % type (and hence this re-verse mode of make_type/2 may be more 
useful[] 
[490]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23086--23086
 []    @texttt % to the spec-i-fied ar-gu-ment types. Aborts if the length of `
TypeArgs'[] 
Chapter 100
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23103--23103
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[491] Chapter 101
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23137--23137
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23157--23157
 []    @texttt % An ob-ject of type `univ' can hold the type and value of an ob
-ject of any[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23164--23164
 []    @texttt % True iff the type stored in `Univ' is the same as the type of 
`Object',[] 
[492]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23184--23184
 []    @texttt % The func-tion univ/1 pro-vides the same func-tion-al-ity as ty
pe_to_univ/2.[] 
Chapter 102 [493]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23222--23222
 []@texttt % Copy-right (C) 1993-2000,2002-2007, 2009-2011 The Uni-ver-sity of 
Melbourne.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23223--23223
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23240--23240
 []@texttt % There may be some de-sign flaws in the re-la-tion-ship be-tween va
rset.m, and[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23242--23242
 []@texttt % will need to re-think the de-sign;  we may end up mod-i-fy-ing the
se modules[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23243--23243
 []@texttt % con-sid-er-ably, or we may end up mak-ing new single-threaded ver-
sions of these[] 
[494]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 23276--23276
 []@texttt :- pred varset.new_var(var(T)::out, varset(T)::in, varset(T)::out) i
s det.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23302--23302
 []@texttt :- pred varset.delete_var(var(T)::in, varset(T)::in, varset(T)::out)
 is det.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23307--23307
 []@texttt :- pred varset.delete_vars(list(var(T))::in, varset(T)::in, varset(T
)::out)[] 
[495]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 23325--23325
 []@texttt :- pred varset.lookup_name(varset(T)::in, var(T)::in, string::out) i
s det.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23331--23331
 []@texttt :- pred varset.lookup_name(varset(T)::in, var(T)::in, string::in, st
ring::out)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23337--23337
 []@texttt :- pred varset.search_name(varset(T)::in, var(T)::in, string::out) i
s semidet.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23354--23354
 []@texttt :- pred varset.search_var(varset(T)::in, var(T)::in, term(T)::out) i
s semidet.[] 
[496]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23363--23363
 []    @texttt % iff VarSet is the varset that re-sults from join-ing a suit-ab
ly renamed[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23364--23364
 []    @texttt % ver-sion of New-VarSet to VarSet0. (Any bind-ings in New-VarSe
t are ignored.)[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23368--23368
 []@texttt :- pred varset.merge_renaming(varset(T)::in, varset(T)::in, varset(T
)::out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23371--23371
 []    @texttt % Does the same job as varset.merge_renaming, but re-turns the r
enaming[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23372--23372
 []    @texttt % as a gen-eral sub-sti-tu-tion in which all the terms in the ra
nge happen[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23382--23382
 []    @texttt % As varset.merge_renaming, ex-cept in-stead of re-turn-ing the 
renaming,[] 
[497]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23432--23432
 []@texttt :- pred varset.create_name_var_map(varset(T)::in, map(string, var(T)
)::out)[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23440--23440
 []@texttt :- pred varset.var_name_list(varset(T)::in, as-soc_list(var(T), stri
ng)::out)[] 
[498]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 23458--23458
 []@texttt :- pred varset.select(set(var(T))::in, varset(T)::in, varset(T)::out
) is det.[] 
Chapter 103
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23484--23484
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23495--23495
 []@texttt % See the header com-ments in ver-sion_array.m for more de-tails abo
ut version[] 
[499]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23508--23508
 []    @texttt % A ver-sion_array2d is a two-dimensional ver-sion ar-ray stored
 in row-

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23509--23509
 []    @texttt % or-der (that is, the el-e-ments of the first row in left-to-ri
ght order,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23514--23514
 []    @texttt % ver-sion_array2d([[X11, ..., X1N], ..., [XM1, ..., XMN]]) con-
structs a 2d[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23518--23518
 []    @texttt % An ex-cep-tion is thrown if the sub-lists are not all the same
 length.[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23522--23522
 []    @texttt % init(M, N, X) = ver-sion_array2d([[X11, ..., X1N], ..., [XM1, 
..., XMN]])[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23529--23529
 []    @texttt % new(M, N, X) = ver-sion_array2d([[X11, ..., X1N], ..., [XM1, .
.., XMN]])[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23537--23537
 []    @texttt % ver-sion_array2d([[X11, ..., X1N], ..., [XM1, ..., XMN]]) ^ el
em(I, J) = X[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23538--23538
 []    @texttt % where X is the J+1th el-e-ment of the I+1th row (i.e. in-dices
 start from[] 
[500]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23553--23553
 []@texttt :- func ( ver-sion_array2d(T) ^ elem(int, int) := T  ) = version_arr
ay2d(T).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23557--23557
 []    @texttt % bounds(version_array2d([[X11, ..., X1N], ..., [XM1, ..., XMN])
, M, N)[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23561--23561
 []    @texttt % in_bounds(version_array2d([[X11, ..., X1N], ..., [XM1, ..., XM
N]), I, J)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23583--23583
 []    @texttt % un-safe_rewind(VA2D) re-turns a new 2d ver-sion ar-ray with O(
1) access[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23584--23584
 []    @texttt % times, at the cost of ren-der-ing VA2D and its de-scen-dants u
ndefined.[] 
Chapter 104 [501]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23602--23602
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23611--23611
 []@texttt % Ver-sion types are ef-fi-cient pure im-ple-men-ta-tions of typ-i-c
ally imperative[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23613--23613
 []@texttt % guar-an-teed for the "lat-est" ver-sion of a given struc-ture.  An
 older version[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23616--23616
 []@texttt % For ex-am-ple, if A0 is a ver-sion ar-ray, and A1 is cre-ated by u
p-dat-ing A0,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23617--23617
 []@texttt % and A2 is cre-ated by up-dat-ing A1, ..., and An is cre-ated by up
-dat-ing An-

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23618--23618
 []@texttt % then ac-cesses to An cost O(1) (as-sum-ing no fur-ther ver-sions o
f the array[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23621--23621
 []@texttt % Most ver-sion data struc-tures come with im-pure, un-safe means to
 "rewind"[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23623--23623
 []@texttt % leav-ing later ver-sions un-de-fined (i.e. only do this if you are
 discarding[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23626--23626
 []@texttt % The mo-ti-va-tion for us-ing ver-sion types is that they are or-di
-nary ground[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23627--23627
 []@texttt % struc-tures and do not de-pend upon unique-ness, while in many cir
cumstances[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23635--23635
 []@texttt % The ad-van-tage of ver-sion ar-rays is that in the com-mon, singly
 threaded,[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23641--23641
 []@texttt % XXX This im-ple-men-ta-tion is not yet guar-an-teed to work with t
he agc (accurate[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23642--23642
 []@texttt % garbage col-lec-tion) grades.  Specif-i-cally, MR_deep_copy and MR
_agc_deep_copy[] 
[502]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 23662--23662
 []    @texttt % init(N, X re-turns an ar-ray of size N with each item ini-tial
ised to X.[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23666--23666
 []    @texttt % new(N, X) re-turns an ar-ray of size N with each item ini-tial
ised to X.[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23671--23671
 []    @texttt % Same as empty/0 ex-cept the re-sult-ing ver-sion_array is not 
thread safe.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23673--23673
 []    @texttt % That is your pro-gram can seg-fault if you at-tempt to con-cur
-rently access[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23674--23674
 []    @texttt % or up-date the ar-ray from dif-fer-ent threads, or any two ar-
rays produced[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23675--23675
 []    @texttt % from op-er-a-tions on the same orig-i-nal ar-ray.  How-ever th
is ver-sion is much[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23676--23676
 []    @texttt % quicker if you guar-an-tee that you never con-cur-rently ac-ce
ss the version[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 23681--23681
 []    @texttt % Same as new(N, X) ex-cept the re-sult-ing ver-sion_array is no
t thread safe.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23683--23683
 []    @texttt % That is your pro-gram can seg-fault if you at-tempt to con-cur
-rently access[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 23684--23684
 []    @texttt % or up-date the ar-ray from dif-fer-ent threads, or any two ar-
rays produced[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23685--23685
 []    @texttt % from op-er-a-tions on the same orig-i-nal ar-ray.  How-ever th
is ver-sion is much[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23686--23686
 []    @texttt % quicker if you guar-an-tee that you never con-cur-rently ac-ce
ss the version[] 
[503]
Overfull \hbox (49.43388pt too wide) in paragraph at lines 23691--23691
 []    @texttt % ver-sion_array(Xs) re-turns an ar-ray con-structed from the it
ems in the list[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23733--23733
 []@texttt :- pred re-size(int::in, T::in, ver-sion_array(T)::in, version_array
(T)::out)[] 
[504]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23762--23762
 []@texttt :- pred foldl2(pred(T1, T2, T2, T3, T3), ver-sion_array(T1), T2, T2,
 T3, T3).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23765--23765
 []@texttt :- mode foldl2(pred(in, in, out, mdi, muo) is det, in, in, out, mdi,
 muo)[] 
[505]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23788--23788
 []@texttt :- pred foldr2(pred(T1, T2, T2, T3, T3), ver-sion_array(T1), T2, T2,
 T3, T3).[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23791--23791
 []@texttt :- mode foldr2(pred(in, in, out, mdi, muo) is det, in, in, out, mdi,
 muo)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23806--23806
 []    @texttt % un-safe_rewind(A) pro-duces a ver-sion of A for which all ac-c
esses are[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23807--23807
 []    @texttt % O(1).  In-vok-ing this pred-i-cate ren-ders A and all later ve
r-sions undefined[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23808--23808
 []    @texttt % that were de-rived by per-form-ing in-di-vid-ual up-dates.  On
ly use this when[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23809--23809
 []    @texttt % you are ab-so-lutely cer-tain there are no live ref-er-ences t
o A or later[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23813--23813
 []@texttt :- pred un-safe_rewind(version_array(T)::in, ver-sion_array(T)::out)
 is det.[] 
Chapter 105 [506]
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23835--23835
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23844--23844
 []@texttt % (See the header com-ments in ver-sion_array.m for an ex-pla-na-tio
n of version[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 23849--23849
 []@texttt % The ad-van-tage of ver-sion bit-maps is that in the com-mon, singl
y threaded,[] 
[507] [508]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 23935--23935
 []@texttt :- pred re-size(int::in, bool::in, ver-sion_bitmap::in, version_bitm
ap::out)[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 23938--23938
 []    @texttt % un-safe_rewind(B) pro-duces a ver-sion of B for which all ac-c
esses are[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23939--23939
 []    @texttt % O(1).  In-vok-ing this pred-i-cate ren-ders B and all later ve
r-sions undefined[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 23940--23940
 []    @texttt % that were de-rived by per-form-ing in-di-vid-ual up-dates.  On
ly use this when[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23941--23941
 []    @texttt % you are ab-so-lutely cer-tain there are no live ref-er-ences t
o B or later[] 
Chapter 106
Overfull \hbox (14.94176pt too wide) in paragraph at lines 23962--23962
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 23970--23970
 []@texttt % (See the header com-ments in ver-sion_array.m for an ex-pla-na-tio
n of version[] 

Overfull \hbox (49.43388pt too wide) in paragraph at lines 23973--23973
 []@texttt % Ver-sion hash ta-bles.  The "lat-est" ver-sion of the hash ta-ble 
pro-vides roughly[] 
[509]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 23975--23975
 []@texttt % ver-sions of the hash ta-ble are still ac-ces-si-ble, but will in-
curr a growing[] 

Overfull \hbox (55.18257pt too wide) in paragraph at lines 24015--24015
 []    @texttt % Like init/3, but the con-structed hash ta-ble is backed by a n
on-thread safe[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24016--24016
 []    @texttt % ver-sion ar-ray. It is un-safe to con-cur-rently ac-cess or up
-date the hash[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24017--24017
 []    @texttt % ta-ble from dif-fer-ent threads, or any two hash ta-bles which
 were produced[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24019--24019
 []    @texttt % How-ever, if the hash ta-ble or its de-scen-dents will not be 
used in such a[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24020--24020
 []    @texttt % man-ner, a non-thread safe hash ta-ble can be much faster than
 a thread[] 
[510]
Overfull \hbox (55.18257pt too wide) in paragraph at lines 24043--24043
 []    @texttt % non-thread safe ver-sion ar-ray. See the de-scrip-tion of un-s
afe_init/3 above.[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 24056--24056
 []    @texttt % De-fault hash_preds for ints and strings and ev-ery-thing (buw
ahahaha!)[] 
[511]
Overfull \hbox (37.93651pt too wide) in paragraph at lines 24084--24084
 []@texttt :- func 'elem :='(K, ver-sion_hash_table(K, V), V) = ver-sion_hash_t
able(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24090--24090
 []@texttt :- func det_insert(version_hash_table(K, V), K, V) = ver-sion_hash_t
able(K, V).[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24099--24099
 []@texttt :- func det_update(version_hash_table(K, V), K, V) = ver-sion_hash_t
able(K, V).[] 
[512]
Overfull \hbox (32.18782pt too wide) in paragraph at lines 24133--24133
 []@texttt :- func from_assoc_list(hash_pred(K)::in(hash_pred), as-soc_list(K, 
V)::in) =[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24146--24146
 []@texttt :- mode fold(in(pred(in, in, in, out) is semidet), in, in, out) is s
emidet.[] 

Overfull \hbox (37.93651pt too wide) in paragraph at lines 24147--24147
 []@texttt :- mode fold(in(pred(in, in, mdi, muo) is semidet), in, mdi, muo) is
 semidet.[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 24148--24148
 []@texttt :- mode fold(in(pred(in, in, di, uo) is semidet), in, di, uo) is sem
idet.[] 
Chapter 107
Overfull \hbox (14.94176pt too wide) in paragraph at lines 24162--24162
 []@texttt % This file may only be copied un-der the terms of the GNU Li-brary 
General[] 
[513]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 24170--24170
 []@texttt % (See the header com-ments in ver-sion_array.m for an ex-pla-na-tio
n of version[] 

Overfull \hbox (14.94176pt too wide) in paragraph at lines 24173--24173
 []@texttt % A ver-sion_store is sim-i-lar to, al-beit slightly slower than, an
 ordinary[] 

Overfull \hbox (43.6852pt too wide) in paragraph at lines 24176--24176
 []@texttt % Note that, un-like or-di-nary stores, live-ness of data is via the
 ver-sion store[] 
[514]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 24214--24214
 []@texttt :- pred new_cyclic_mutvar((func(mutvar(T, S)) = T)::in, mut-var(T, S
)::out,[] 

Overfull \hbox (20.69044pt too wide) in paragraph at lines 24239--24239
 []@texttt :- func ( ver-sion_store(S) ^ elem(mutvar(T, S)) := T ) = version_st
ore(S).[] 

Overfull \hbox (26.43913pt too wide) in paragraph at lines 24249--24249
 []    @texttt % un-safe_rewind(VS) pro-duces a ver-sion of VS for which all ac
-cesses are[] 

Overfull \hbox (32.18782pt too wide) in paragraph at lines 24251--24251
 []    @texttt % ver-sions un-de-fined that were de-rived by per-form-ing in-di
-vid-ual updates.[] 
[515]
Overfull \hbox (20.69044pt too wide) in paragraph at lines 24258--24258
 []@texttt :- pred un-safe_rewind(version_store(T)::in, ver-sion_store(T)::out)
 is det.[] 
) [516] )
(see the transcript file for additional information)
Output written on library.dvi (524 pages, 1153488 bytes).
Transcript written on library.log.
