xref: /freebsd/lib/libc++/module.modulemap (revision 9768746b)
1// define the module for __config outside of the top level 'std' module
2// since __config may be included from C headers which may create an
3// include cycle.
4module std_config [system] [extern_c] {
5  header "__config"
6  export *
7}
8
9module std [system] {
10  export std_config
11  // FIXME: The standard does not require that each of these submodules
12  // re-exports its imported modules. We should provide an alternative form of
13  // export that issues a warning if a name from the submodule is used, and
14  // use that to provide a 'strict mode' for libc++.
15
16  // Deprecated C-compatibility headers. These can all be included from within
17  // an 'extern "C"' context.
18  module depr [extern_c] {
19    // <assert.h> provided by C library.
20    module ctype_h {
21      header "ctype.h"
22      export *
23    }
24    module errno_h {
25      header "errno.h"
26      export *
27    }
28    module fenv_h {
29      header "fenv.h"
30      export *
31    }
32    // <float.h> provided by compiler or C library.
33    module inttypes_h {
34      header "inttypes.h"
35      export stdint_h
36      export *
37    }
38    // <iso646.h> provided by compiler.
39    // <limits.h> provided by compiler or C library.
40    module locale_h {
41
42      header "locale.h"
43      export *
44    }
45    module math_h {
46      header "math.h"
47      export *
48    }
49    module setjmp_h {
50      header "setjmp.h"
51      export *
52    }
53    module stdatomic_h {
54
55      requires cplusplus23
56      header "stdatomic.h"
57      export *
58    }
59    // FIXME: <stdalign.h> is missing.
60    // <signal.h> provided by C library.
61    // <stdarg.h> provided by compiler.
62    module stdbool_h {
63      // <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
64      textual header "stdbool.h"
65    }
66    module stddef_h {
67      // <stddef.h>'s __need_* macros require textual inclusion.
68      textual header "stddef.h"
69    }
70    module stdint_h {
71      header "stdint.h"
72      export *
73      // FIXME: This module only exists on OS X and for some reason the
74      // wildcard above doesn't export it.
75      export Darwin.C.stdint
76    }
77    module stdio_h {
78      // <stdio.h>'s __need_* macros require textual inclusion.
79      textual header "stdio.h"
80      export *
81      export Darwin.C.stdio
82    }
83    module stdlib_h {
84      // <stdlib.h>'s __need_* macros require textual inclusion.
85      textual header "stdlib.h"
86      export *
87    }
88    module string_h {
89      header "string.h"
90      export *
91    }
92    module uchar_h {
93      header "uchar.h"
94      export *
95    }
96    // <time.h> provided by C library.
97    module wchar_h {
98
99      // <wchar.h>'s __need_* macros require textual inclusion.
100      textual header "wchar.h"
101      export *
102    }
103    module wctype_h {
104
105      header "wctype.h"
106      export *
107    }
108  }
109
110  // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
111  // allow their use in extern "C" contexts.
112  module complex_h {
113    header "complex.h"
114    export ccomplex
115    export *
116  }
117  module tgmath_h {
118    header "tgmath.h"
119    export ccomplex
120    export cmath
121    export *
122  }
123
124  // C compatibility headers.
125  module compat {
126    module cassert {
127      // <cassert>'s use of NDEBUG requires textual inclusion.
128      textual header "cassert"
129    }
130    module ccomplex {
131      header "ccomplex"
132      export complex
133      export *
134    }
135    module cctype {
136      header "cctype"
137      export *
138    }
139    module cerrno {
140      header "cerrno"
141      export *
142    }
143    module cfenv {
144      header "cfenv"
145      export *
146    }
147    module cfloat {
148      header "cfloat"
149      export *
150    }
151    module cinttypes {
152      header "cinttypes"
153      export cstdint
154      export *
155    }
156    module ciso646 {
157      header "ciso646"
158      export *
159    }
160    module climits {
161      header "climits"
162      export *
163    }
164    module clocale {
165
166      header "clocale"
167      export *
168    }
169    module cmath {
170      header "cmath"
171      export *
172    }
173    module csetjmp {
174      header "csetjmp"
175      export *
176    }
177    module csignal {
178      header "csignal"
179      export *
180    }
181    // FIXME: <cstdalign> is missing.
182    module cstdarg {
183      header "cstdarg"
184      export *
185    }
186    module cstdbool {
187      header "cstdbool"
188      export *
189    }
190    module cstddef {
191      header "cstddef"
192      export *
193    }
194    module cstdint {
195      header "cstdint"
196      export depr.stdint_h
197      export *
198    }
199    module cstdio {
200      header "cstdio"
201      export *
202    }
203    module cstdlib {
204      header "cstdlib"
205      export *
206    }
207    module cstring {
208      header "cstring"
209      export *
210    }
211    module ctgmath {
212      header "ctgmath"
213      export ccomplex
214      export cmath
215      export *
216    }
217    module ctime {
218      header "ctime"
219      export *
220    }
221    module cuchar {
222      header "cuchar"
223      export *
224    }
225    module cwchar {
226
227      header "cwchar"
228      export depr.stdio_h
229      export *
230    }
231    module cwctype {
232
233      header "cwctype"
234      export *
235    }
236  }
237
238  module algorithm {
239    header "algorithm"
240    export initializer_list
241    export *
242
243    module __algorithm {
244      module adjacent_find                   { private header "__algorithm/adjacent_find.h" }
245      module all_of                          { private header "__algorithm/all_of.h" }
246      module any_of                          { private header "__algorithm/any_of.h" }
247      module binary_search                   { private header "__algorithm/binary_search.h" }
248      module clamp                           { private header "__algorithm/clamp.h" }
249      module comp                            { private header "__algorithm/comp.h" }
250      module comp_ref_type                   { private header "__algorithm/comp_ref_type.h" }
251      module copy                            { private header "__algorithm/copy.h" }
252      module copy_backward                   { private header "__algorithm/copy_backward.h" }
253      module copy_if                         { private header "__algorithm/copy_if.h" }
254      module copy_n                          { private header "__algorithm/copy_n.h" }
255      module count                           { private header "__algorithm/count.h" }
256      module count_if                        { private header "__algorithm/count_if.h" }
257      module equal                           { private header "__algorithm/equal.h" }
258      module equal_range                     { private header "__algorithm/equal_range.h" }
259      module fill                            { private header "__algorithm/fill.h" }
260      module fill_n                          { private header "__algorithm/fill_n.h" }
261      module find                            { private header "__algorithm/find.h" }
262      module find_end                        { private header "__algorithm/find_end.h" }
263      module find_first_of                   { private header "__algorithm/find_first_of.h" }
264      module find_if                         { private header "__algorithm/find_if.h" }
265      module find_if_not                     { private header "__algorithm/find_if_not.h" }
266      module for_each                        { private header "__algorithm/for_each.h" }
267      module for_each_n                      { private header "__algorithm/for_each_n.h" }
268      module generate                        { private header "__algorithm/generate.h" }
269      module generate_n                      { private header "__algorithm/generate_n.h" }
270      module half_positive                   { private header "__algorithm/half_positive.h" }
271      module in_found_result                 { private header "__algorithm/in_found_result.h" }
272      module in_fun_result                   { private header "__algorithm/in_fun_result.h" }
273      module in_in_out_result                { private header "__algorithm/in_in_out_result.h" }
274      module in_in_result                    { private header "__algorithm/in_in_result.h" }
275      module in_out_out_result               { private header "__algorithm/in_out_out_result.h" }
276      module in_out_result                   { private header "__algorithm/in_out_result.h" }
277      module includes                        { private header "__algorithm/includes.h" }
278      module inplace_merge                   { private header "__algorithm/inplace_merge.h" }
279      module is_heap                         { private header "__algorithm/is_heap.h" }
280      module is_heap_until                   { private header "__algorithm/is_heap_until.h" }
281      module is_partitioned                  { private header "__algorithm/is_partitioned.h" }
282      module is_permutation                  { private header "__algorithm/is_permutation.h" }
283      module is_sorted                       { private header "__algorithm/is_sorted.h" }
284      module is_sorted_until                 { private header "__algorithm/is_sorted_until.h" }
285      module iter_swap                       { private header "__algorithm/iter_swap.h" }
286      module iterator_operations             { private header "__algorithm/iterator_operations.h" }
287      module lexicographical_compare         { private header "__algorithm/lexicographical_compare.h" }
288      module lower_bound                     { private header "__algorithm/lower_bound.h" }
289      module make_heap                       { private header "__algorithm/make_heap.h" }
290      module make_projected                  { private header "__algorithm/make_projected.h" }
291      module max                             { private header "__algorithm/max.h" }
292      module max_element                     { private header "__algorithm/max_element.h" }
293      module merge                           { private header "__algorithm/merge.h" }
294      module min                             { private header "__algorithm/min.h" }
295      module min_element                     { private header "__algorithm/min_element.h" }
296      module min_max_result                  { private header "__algorithm/min_max_result.h" }
297      module minmax                          { private header "__algorithm/minmax.h" }
298      module minmax_element                  { private header "__algorithm/minmax_element.h" }
299      module mismatch                        { private header "__algorithm/mismatch.h" }
300      module move                            { private header "__algorithm/move.h" }
301      module move_backward                   { private header "__algorithm/move_backward.h" }
302      module next_permutation                { private header "__algorithm/next_permutation.h" }
303      module none_of                         { private header "__algorithm/none_of.h" }
304      module nth_element                     { private header "__algorithm/nth_element.h" }
305      module partial_sort                    { private header "__algorithm/partial_sort.h" }
306      module partial_sort_copy               { private header "__algorithm/partial_sort_copy.h" }
307      module partition                       { private header "__algorithm/partition.h" }
308      module partition_copy                  { private header "__algorithm/partition_copy.h" }
309      module partition_point                 { private header "__algorithm/partition_point.h" }
310      module pop_heap                        { private header "__algorithm/pop_heap.h" }
311      module prev_permutation                { private header "__algorithm/prev_permutation.h" }
312      module push_heap                       { private header "__algorithm/push_heap.h" }
313      module ranges_adjacent_find            { private header "__algorithm/ranges_adjacent_find.h" }
314      module ranges_all_of                   { private header "__algorithm/ranges_all_of.h" }
315      module ranges_any_of                   { private header "__algorithm/ranges_any_of.h" }
316      module ranges_binary_search            { private header "__algorithm/ranges_binary_search.h" }
317      module ranges_clamp                    { private header "__algorithm/ranges_clamp.h" }
318      module ranges_copy                     { private header "__algorithm/ranges_copy.h" }
319      module ranges_copy_backward            { private header "__algorithm/ranges_copy_backward.h" }
320      module ranges_copy_if                  { private header "__algorithm/ranges_copy_if.h" }
321      module ranges_copy_n                   { private header "__algorithm/ranges_copy_n.h" }
322      module ranges_count                    { private header "__algorithm/ranges_count.h" }
323      module ranges_count_if                 { private header "__algorithm/ranges_count_if.h" }
324      module ranges_equal                    { private header "__algorithm/ranges_equal.h" }
325      module ranges_equal_range              { private header "__algorithm/ranges_equal_range.h" }
326      module ranges_fill                     { private header "__algorithm/ranges_fill.h" }
327      module ranges_fill_n                   { private header "__algorithm/ranges_fill_n.h" }
328      module ranges_find                     { private header "__algorithm/ranges_find.h" }
329      module ranges_find_end                 { private header "__algorithm/ranges_find_end.h" }
330      module ranges_find_first_of            { private header "__algorithm/ranges_find_first_of.h" }
331      module ranges_find_if                  { private header "__algorithm/ranges_find_if.h" }
332      module ranges_find_if_not              { private header "__algorithm/ranges_find_if_not.h" }
333      module ranges_for_each                 { private header "__algorithm/ranges_for_each.h" }
334      module ranges_for_each_n               { private header "__algorithm/ranges_for_each_n.h" }
335      module ranges_generate                 { private header "__algorithm/ranges_generate.h" }
336      module ranges_generate_n               { private header "__algorithm/ranges_generate_n.h" }
337      module ranges_includes                 { private header "__algorithm/ranges_includes.h" }
338      module ranges_inplace_merge            { private header "__algorithm/ranges_inplace_merge.h" }
339      module ranges_is_heap                  { private header "__algorithm/ranges_is_heap.h" }
340      module ranges_is_heap_until            { private header "__algorithm/ranges_is_heap_until.h" }
341      module ranges_is_partitioned           { private header "__algorithm/ranges_is_partitioned.h" }
342      module ranges_is_permutation           { private header "__algorithm/ranges_is_permutation.h" }
343      module ranges_is_sorted                { private header "__algorithm/ranges_is_sorted.h" }
344      module ranges_is_sorted_until          { private header "__algorithm/ranges_is_sorted_until.h" }
345      module ranges_iterator_concept         { private header "__algorithm/ranges_iterator_concept.h" }
346      module ranges_lexicographical_compare  { private header "__algorithm/ranges_lexicographical_compare.h" }
347      module ranges_lower_bound              { private header "__algorithm/ranges_lower_bound.h" }
348      module ranges_make_heap                { private header "__algorithm/ranges_make_heap.h" }
349      module ranges_max                      { private header "__algorithm/ranges_max.h" }
350      module ranges_max_element              { private header "__algorithm/ranges_max_element.h" }
351      module ranges_merge                    { private header "__algorithm/ranges_merge.h" }
352      module ranges_min                      { private header "__algorithm/ranges_min.h" }
353      module ranges_min_element              { private header "__algorithm/ranges_min_element.h" }
354      module ranges_minmax                   { private header "__algorithm/ranges_minmax.h" }
355      module ranges_minmax_element           { private header "__algorithm/ranges_minmax_element.h" }
356      module ranges_mismatch                 { private header "__algorithm/ranges_mismatch.h" }
357      module ranges_move                     { private header "__algorithm/ranges_move.h" }
358      module ranges_move_backward            { private header "__algorithm/ranges_move_backward.h" }
359      module ranges_next_permutation         { private header "__algorithm/ranges_next_permutation.h" }
360      module ranges_none_of                  { private header "__algorithm/ranges_none_of.h" }
361      module ranges_nth_element              { private header "__algorithm/ranges_nth_element.h" }
362      module ranges_partial_sort             { private header "__algorithm/ranges_partial_sort.h" }
363      module ranges_partial_sort_copy        { private header "__algorithm/ranges_partial_sort_copy.h" }
364      module ranges_partition                { private header "__algorithm/ranges_partition.h" }
365      module ranges_partition_copy           { private header "__algorithm/ranges_partition_copy.h" }
366      module ranges_partition_point          { private header "__algorithm/ranges_partition_point.h" }
367      module ranges_pop_heap                 { private header "__algorithm/ranges_pop_heap.h" }
368      module ranges_prev_permutation         { private header "__algorithm/ranges_prev_permutation.h" }
369      module ranges_push_heap                { private header "__algorithm/ranges_push_heap.h" }
370      module ranges_remove                   { private header "__algorithm/ranges_remove.h" }
371      module ranges_remove_copy              { private header "__algorithm/ranges_remove_copy.h" }
372      module ranges_remove_copy_if           { private header "__algorithm/ranges_remove_copy_if.h" }
373      module ranges_remove_if                { private header "__algorithm/ranges_remove_if.h" }
374      module ranges_replace                  { private header "__algorithm/ranges_replace.h" }
375      module ranges_replace_copy             { private header "__algorithm/ranges_replace_copy.h" }
376      module ranges_replace_copy_if          { private header "__algorithm/ranges_replace_copy_if.h" }
377      module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
378      module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
379      module ranges_reverse_copy             { private header "__algorithm/ranges_reverse_copy.h" }
380      module ranges_rotate                   { private header "__algorithm/ranges_rotate.h" }
381      module ranges_rotate_copy              { private header "__algorithm/ranges_rotate_copy.h" }
382      module ranges_sample                   { private header "__algorithm/ranges_sample.h" }
383      module ranges_search                   { private header "__algorithm/ranges_search.h" }
384      module ranges_search_n                 { private header "__algorithm/ranges_search_n.h" }
385      module ranges_set_difference           { private header "__algorithm/ranges_set_difference.h" }
386      module ranges_set_intersection         { private header "__algorithm/ranges_set_intersection.h" }
387      module ranges_set_symmetric_difference { private header "__algorithm/ranges_set_symmetric_difference.h" }
388      module ranges_set_union                { private header "__algorithm/ranges_set_union.h" }
389      module ranges_shuffle                  { private header "__algorithm/ranges_shuffle.h" }
390      module ranges_sort                     { private header "__algorithm/ranges_sort.h" }
391      module ranges_sort_heap                { private header "__algorithm/ranges_sort_heap.h" }
392      module ranges_stable_partition         { private header "__algorithm/ranges_stable_partition.h" }
393      module ranges_stable_sort              { private header "__algorithm/ranges_stable_sort.h" }
394      module ranges_swap_ranges              { private header "__algorithm/ranges_swap_ranges.h" }
395      module ranges_transform                { private header "__algorithm/ranges_transform.h" }
396      module uniform_random_bit_generator_adaptor {
397        private header "__algorithm/uniform_random_bit_generator_adaptor.h"
398      }
399      module ranges_unique                   { private header "__algorithm/ranges_unique.h" }
400      module ranges_unique_copy              { private header "__algorithm/ranges_unique_copy.h" }
401      module ranges_upper_bound              { private header "__algorithm/ranges_upper_bound.h" }
402      module remove                          { private header "__algorithm/remove.h" }
403      module remove_copy                     { private header "__algorithm/remove_copy.h" }
404      module remove_copy_if                  { private header "__algorithm/remove_copy_if.h" }
405      module remove_if                       { private header "__algorithm/remove_if.h" }
406      module replace                         { private header "__algorithm/replace.h" }
407      module replace_copy                    { private header "__algorithm/replace_copy.h" }
408      module replace_copy_if                 { private header "__algorithm/replace_copy_if.h" }
409      module replace_if                      { private header "__algorithm/replace_if.h" }
410      module reverse                         { private header "__algorithm/reverse.h" }
411      module reverse_copy                    { private header "__algorithm/reverse_copy.h" }
412      module rotate                          { private header "__algorithm/rotate.h" }
413      module rotate_copy                     { private header "__algorithm/rotate_copy.h" }
414      module sample                          { private header "__algorithm/sample.h" }
415      module search                          { private header "__algorithm/search.h" }
416      module search_n                        { private header "__algorithm/search_n.h" }
417      module set_difference                  { private header "__algorithm/set_difference.h" }
418      module set_intersection                { private header "__algorithm/set_intersection.h" }
419      module set_symmetric_difference        { private header "__algorithm/set_symmetric_difference.h" }
420      module set_union                       { private header "__algorithm/set_union.h" }
421      module shift_left                      { private header "__algorithm/shift_left.h" }
422      module shift_right                     { private header "__algorithm/shift_right.h" }
423      module shuffle                         { private header "__algorithm/shuffle.h" }
424      module sift_down                       { private header "__algorithm/sift_down.h" }
425      module sort                            { private header "__algorithm/sort.h" }
426      module sort_heap                       { private header "__algorithm/sort_heap.h" }
427      module stable_partition                { private header "__algorithm/stable_partition.h" }
428      module stable_sort                     { private header "__algorithm/stable_sort.h" }
429      module swap_ranges                     { private header "__algorithm/swap_ranges.h" }
430      module transform                       { private header "__algorithm/transform.h" }
431      module unique                          { private header "__algorithm/unique.h" }
432      module unique_copy                     { private header "__algorithm/unique_copy.h" }
433      module unwrap_iter                     { private header "__algorithm/unwrap_iter.h" }
434      module unwrap_range                    { private header "__algorithm/unwrap_range.h" }
435      module upper_bound                     { private header "__algorithm/upper_bound.h" }
436    }
437  }
438  module any {
439    header "any"
440    export *
441  }
442  module array {
443    header "array"
444    export initializer_list
445    export *
446  }
447  module atomic {
448    header "atomic"
449    export *
450  }
451  module barrier {
452
453    header "barrier"
454    export *
455  }
456  module bit {
457    header "bit"
458    export *
459
460    module __bit {
461      module bit_cast { private header "__bit/bit_cast.h" }
462      module byteswap { private header "__bit/byteswap.h" }
463    }
464  }
465  module bitset {
466    header "bitset"
467    export string
468    export iosfwd
469    export *
470  }
471  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
472  module charconv {
473    header "charconv"
474    export *
475
476    module __charconv {
477      module chars_format      { private header "__charconv/chars_format.h" }
478      module from_chars_result { private header "__charconv/from_chars_result.h" }
479      module tables            { private header "__charconv/tables.h" }
480      module to_chars_base_10  { private header "__charconv/to_chars_base_10.h" }
481      module to_chars_result   { private header "__charconv/to_chars_result.h" }
482    }
483
484  }
485  module chrono {
486    header "chrono"
487    export *
488
489    module __chrono {
490      module calendar              { private header "__chrono/calendar.h" }
491      module convert_to_timespec   { private header "__chrono/convert_to_timespec.h" }
492      module day                   { private header "__chrono/day.h" }
493      module duration              { private header "__chrono/duration.h" }
494      module file_clock            { private header "__chrono/file_clock.h" }
495      module hh_mm_ss              { private header "__chrono/hh_mm_ss.h" }
496      module high_resolution_clock {
497        private header "__chrono/high_resolution_clock.h"
498        export steady_clock
499        export system_clock
500      }
501      module literals              { private header "__chrono/literals.h" }
502      module month                 { private header "__chrono/month.h" }
503      module month_weekday         { private header "__chrono/month_weekday.h" }
504      module monthday              { private header "__chrono/monthday.h" }
505      module steady_clock          { private header "__chrono/steady_clock.h" }
506      module system_clock          { private header "__chrono/system_clock.h" }
507      module time_point            { private header "__chrono/time_point.h" }
508      module weekday               { private header "__chrono/weekday.h" }
509      module year                  { private header "__chrono/year.h" }
510      module year_month            { private header "__chrono/year_month.h" }
511      module year_month_day        { private header "__chrono/year_month_day.h" }
512      module year_month_weekday    { private header "__chrono/year_month_weekday.h" }
513    }
514  }
515  module codecvt {
516
517    header "codecvt"
518    export *
519  }
520  module compare {
521    header "compare"
522    export *
523
524    module __compare {
525      module common_comparison_category     { private header "__compare/common_comparison_category.h" }
526      module compare_partial_order_fallback { private header "__compare/compare_partial_order_fallback.h" }
527      module compare_strong_order_fallback  { private header "__compare/compare_strong_order_fallback.h" }
528      module compare_three_way              { private header "__compare/compare_three_way.h" }
529      module compare_three_way_result       { private header "__compare/compare_three_way_result.h" }
530      module compare_weak_order_fallback    { private header "__compare/compare_weak_order_fallback.h" }
531      module is_eq                          { private header "__compare/is_eq.h" }
532      module ordering                       { private header "__compare/ordering.h" }
533      module partial_order                  { private header "__compare/partial_order.h" }
534      module strong_order                   { private header "__compare/strong_order.h" }
535      module synth_three_way                { private header "__compare/synth_three_way.h" }
536      module three_way_comparable           { private header "__compare/three_way_comparable.h" }
537      module weak_order                     { private header "__compare/weak_order.h" }
538    }
539  }
540  module complex {
541    header "complex"
542    export *
543  }
544  module concepts {
545    header "concepts"
546    export *
547
548    module __concepts {
549      module arithmetic                 { private header "__concepts/arithmetic.h" }
550      module assignable                 { private header "__concepts/assignable.h" }
551      module boolean_testable           { private header "__concepts/boolean_testable.h" }
552      module class_or_enum              { private header "__concepts/class_or_enum.h" }
553      module common_reference_with      { private header "__concepts/common_reference_with.h" }
554      module common_with                { private header "__concepts/common_with.h" }
555      module constructible              { private header "__concepts/constructible.h" }
556      module convertible_to             { private header "__concepts/convertible_to.h" }
557      module copyable                   { private header "__concepts/copyable.h" }
558      module derived_from               { private header "__concepts/derived_from.h" }
559      module destructible               { private header "__concepts/destructible.h" }
560      module different_from             { private header "__concepts/different_from.h" }
561      module equality_comparable        { private header "__concepts/equality_comparable.h" }
562      module invocable                  { private header "__concepts/invocable.h" }
563      module movable                    { private header "__concepts/movable.h" }
564      module predicate                  { private header "__concepts/predicate.h" }
565      module regular                    { private header "__concepts/regular.h" }
566      module relation                   { private header "__concepts/relation.h" }
567      module same_as                    { private header "__concepts/same_as.h" }
568      module semiregular                { private header "__concepts/semiregular.h" }
569      module swappable                  { private header "__concepts/swappable.h" }
570      module totally_ordered            { private header "__concepts/totally_ordered.h" }
571    }
572  }
573  module condition_variable {
574    header "condition_variable"
575    export *
576  }
577  module coroutine {
578    requires coroutines
579    header "coroutine"
580    export compare
581    export *
582
583    module __coroutine {
584      module coroutine_handle           { private header "__coroutine/coroutine_handle.h" }
585      module coroutine_traits           { private header "__coroutine/coroutine_traits.h" }
586      module noop_coroutine_handle      { private header "__coroutine/noop_coroutine_handle.h" }
587      module trivial_awaitables         { private header "__coroutine/trivial_awaitables.h" }
588    }
589  }
590  module deque {
591    header "deque"
592    export initializer_list
593    export *
594  }
595  module exception {
596    header "exception"
597    export *
598  }
599  module execution {
600    header "execution"
601    export *
602  }
603  module filesystem {
604
605    header "filesystem"
606    export *
607
608    module __filesystem {
609      module copy_options                 { private header "__filesystem/copy_options.h" }
610      module directory_entry              { private header "__filesystem/directory_entry.h" }
611      module directory_iterator           { private header "__filesystem/directory_iterator.h" }
612      module directory_options            { private header "__filesystem/directory_options.h" }
613      module file_status                  { private header "__filesystem/file_status.h" }
614      module file_time_type               { private header "__filesystem/file_time_type.h" }
615      module file_type                    { private header "__filesystem/file_type.h" }
616      module filesystem_error             { private header "__filesystem/filesystem_error.h" }
617      module operations                   { private header "__filesystem/operations.h" }
618      module path                         { private header "__filesystem/path.h" }
619      module path_iterator                { private header "__filesystem/path_iterator.h" }
620      module perm_options                 { private header "__filesystem/perm_options.h" }
621      module perms                        { private header "__filesystem/perms.h" }
622      module recursive_directory_iterator { private header "__filesystem/recursive_directory_iterator.h" }
623      module space_info                   { private header "__filesystem/space_info.h" }
624      module u8path                       { private header "__filesystem/u8path.h" }
625    }
626  }
627  module format {
628    header "format"
629    export *
630
631    module __format {
632      module buffer                          { private header "__format/buffer.h" }
633      module concepts                        { private header "__format/concepts.h" }
634      module enable_insertable               { private header "__format/enable_insertable.h" }
635      module extended_grapheme_cluster_table { private header "__format/extended_grapheme_cluster_table.h" }
636      module format_arg                      { private header "__format/format_arg.h" }
637      module format_arg_store                { private header "__format/format_arg_store.h" }
638      module format_args                     { private header "__format/format_args.h" }
639      module format_context {
640        private header "__format/format_context.h"
641        export optional
642        export locale
643      }
644      module format_error                    { private header "__format/format_error.h" }
645      module format_fwd                      { private header "__format/format_fwd.h" }
646      module format_parse_context            { private header "__format/format_parse_context.h" }
647      module format_string                   { private header "__format/format_string.h" }
648      module format_to_n_result              { private header "__format/format_to_n_result.h" }
649      module formatter                       { private header "__format/formatter.h" }
650      module formatter_bool                  { private header "__format/formatter_bool.h" }
651      module formatter_char                  { private header "__format/formatter_char.h" }
652      module formatter_floating_point        { private header "__format/formatter_floating_point.h" }
653      module formatter_integer               { private header "__format/formatter_integer.h" }
654      module formatter_integral              { private header "__format/formatter_integral.h" }
655      module formatter_output                { private header "__format/formatter_output.h" }
656      module formatter_pointer               { private header "__format/formatter_pointer.h" }
657      module formatter_string                { private header "__format/formatter_string.h" }
658      module parser_std_format_spec          { private header "__format/parser_std_format_spec.h" }
659      module unicode                         { private header "__format/unicode.h" }
660    }
661  }
662  module forward_list {
663    header "forward_list"
664    export initializer_list
665    export *
666  }
667  module fstream {
668
669    header "fstream"
670    export *
671  }
672  module functional {
673    header "functional"
674    export *
675
676    module __functional {
677      module binary_function            { private header "__functional/binary_function.h" }
678      module binary_negate              { private header "__functional/binary_negate.h" }
679      module bind                       { private header "__functional/bind.h" }
680      module bind_back                  { private header "__functional/bind_back.h" }
681      module bind_front                 { private header "__functional/bind_front.h" }
682      module binder1st                  { private header "__functional/binder1st.h" }
683      module binder2nd                  { private header "__functional/binder2nd.h" }
684      module boyer_moore_searcher       { private header "__functional/boyer_moore_searcher.h" }
685      module compose                    { private header "__functional/compose.h" }
686      module default_searcher           { private header "__functional/default_searcher.h" }
687      module function                   { private header "__functional/function.h" }
688      module hash                       { private header "__functional/hash.h" }
689      module identity                   { private header "__functional/identity.h" }
690      module invoke                     { private header "__functional/invoke.h" }
691      module is_transparent             { private header "__functional/is_transparent.h" }
692      module mem_fn                     { private header "__functional/mem_fn.h" }
693      module mem_fun_ref                { private header "__functional/mem_fun_ref.h" }
694      module not_fn                     { private header "__functional/not_fn.h" }
695      module operations                 { private header "__functional/operations.h" }
696      module perfect_forward            { private header "__functional/perfect_forward.h" }
697      module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
698      module pointer_to_unary_function  { private header "__functional/pointer_to_unary_function.h" }
699      module ranges_operations          { private header "__functional/ranges_operations.h" }
700      module reference_wrapper          { private header "__functional/reference_wrapper.h" }
701      module unary_function             { private header "__functional/unary_function.h" }
702      module unary_negate               { private header "__functional/unary_negate.h" }
703      module unwrap_ref                 { private header "__functional/unwrap_ref.h" }
704      module weak_result_type           { private header "__functional/weak_result_type.h" }
705    }
706  }
707  module future {
708
709    header "future"
710    export *
711  }
712  module initializer_list {
713    header "initializer_list"
714    export *
715  }
716  module iomanip {
717
718    header "iomanip"
719    export *
720  }
721  module ios {
722
723    header "ios"
724    export iosfwd
725    export *
726
727    module __ios {
728      module fpos { private header "__ios/fpos.h" }
729    }
730  }
731  module iosfwd {
732    header "iosfwd"
733    export *
734  }
735  module iostream {
736
737    header "iostream"
738    export ios
739    export streambuf
740    export istream
741    export ostream
742    export *
743  }
744  module istream {
745
746    header "istream"
747    // FIXME: should re-export ios, streambuf?
748    export *
749  }
750  module iterator {
751    header "iterator"
752    export *
753
754    module __iterator {
755      module access                { private header "__iterator/access.h" }
756      module advance               { private header "__iterator/advance.h" }
757      module back_insert_iterator  { private header "__iterator/back_insert_iterator.h" }
758      module bounded_iter          { private header "__iterator/bounded_iter.h" }
759      module common_iterator       { private header "__iterator/common_iterator.h" }
760      module concepts              { private header "__iterator/concepts.h" }
761      module counted_iterator      { private header "__iterator/counted_iterator.h" }
762      module data                  { private header "__iterator/data.h" }
763      module default_sentinel      { private header "__iterator/default_sentinel.h" }
764      module distance              { private header "__iterator/distance.h" }
765      module empty                 { private header "__iterator/empty.h" }
766      module erase_if_container    { private header "__iterator/erase_if_container.h" }
767      module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
768      module incrementable_traits  { private header "__iterator/incrementable_traits.h" }
769      module indirectly_comparable { private header "__iterator/indirectly_comparable.h" }
770      module insert_iterator       { private header "__iterator/insert_iterator.h" }
771      module istream_iterator      { private header "__iterator/istream_iterator.h" }
772      module istreambuf_iterator   { private header "__iterator/istreambuf_iterator.h" }
773      module iter_move             { private header "__iterator/iter_move.h" }
774      module iter_swap             { private header "__iterator/iter_swap.h" }
775      module iterator              { private header "__iterator/iterator.h" }
776      module iterator_traits       { private header "__iterator/iterator_traits.h" }
777      module mergeable             { private header "__iterator/mergeable.h" }
778      module move_iterator         { private header "__iterator/move_iterator.h" }
779      module move_sentinel         { private header "__iterator/move_sentinel.h" }
780      module next                  { private header "__iterator/next.h" }
781      module ostream_iterator      { private header "__iterator/ostream_iterator.h" }
782      module ostreambuf_iterator   {
783        private header "__iterator/ostreambuf_iterator.h"
784        export iosfwd
785      }
786      module permutable            { private header "__iterator/permutable.h" }
787      module prev                  { private header "__iterator/prev.h" }
788      module projected             { private header "__iterator/projected.h" }
789      module readable_traits       { private header "__iterator/readable_traits.h" }
790      module reverse_access        { private header "__iterator/reverse_access.h" }
791      module reverse_iterator      { private header "__iterator/reverse_iterator.h" }
792      module size                  { private header "__iterator/size.h" }
793      module sortable              { private header "__iterator/sortable.h" }
794      module unreachable_sentinel  { private header "__iterator/unreachable_sentinel.h" }
795      module wrap_iter             { private header "__iterator/wrap_iter.h" }
796    }
797  }
798  module latch {
799
800    header "latch"
801    export *
802  }
803
804  module __debug_utils {
805    module randomize_range { private header "__debug_utils/randomize_range.h" }
806  }
807
808  module limits {
809    header "limits"
810    export *
811  }
812  module list {
813    header "list"
814    export initializer_list
815    export *
816  }
817  module locale {
818
819    header "locale"
820    export *
821  }
822  module map {
823    header "map"
824    export initializer_list
825    export *
826  }
827  module memory {
828    header "memory"
829    export *
830
831    module __memory {
832      module addressof                       { private header "__memory/addressof.h" }
833      module allocate_at_least               { private header "__memory/allocate_at_least.h" }
834      module allocation_guard                { private header "__memory/allocation_guard.h" }
835      module allocator                       { private header "__memory/allocator.h" }
836      module allocator_arg_t                 { private header "__memory/allocator_arg_t.h" }
837      module allocator_traits                { private header "__memory/allocator_traits.h" }
838      module assume_aligned                  { private header "__memory/assume_aligned.h" }
839      module auto_ptr                        { private header "__memory/auto_ptr.h" }
840      module compressed_pair                 { private header "__memory/compressed_pair.h" }
841      module concepts                        { private header "__memory/concepts.h" }
842      module construct_at                    { private header "__memory/construct_at.h" }
843      module pointer_traits                  { private header "__memory/pointer_traits.h" }
844      module ranges_construct_at             { private header "__memory/ranges_construct_at.h" }
845      module ranges_uninitialized_algorithms { private header "__memory/ranges_uninitialized_algorithms.h" }
846      module raw_storage_iterator            { private header "__memory/raw_storage_iterator.h" }
847      module shared_ptr                      { private header "__memory/shared_ptr.h" }
848      module swap_allocator                  { private header "__memory/swap_allocator.h" }
849      module temporary_buffer                { private header "__memory/temporary_buffer.h" }
850      module uninitialized_algorithms        { private header "__memory/uninitialized_algorithms.h" }
851      module unique_ptr                      { private header "__memory/unique_ptr.h" }
852      module uses_allocator                  { private header "__memory/uses_allocator.h" }
853      module voidify                         { private header "__memory/voidify.h" }
854    }
855  }
856  module mutex {
857
858    header "mutex"
859    export *
860  }
861  module new {
862    header "new"
863    export *
864  }
865  module numbers {
866    header "numbers"
867    export *
868  }
869  module numeric {
870    header "numeric"
871    export *
872
873    module __numeric {
874      module accumulate               { private header "__numeric/accumulate.h" }
875      module adjacent_difference      { private header "__numeric/adjacent_difference.h" }
876      module exclusive_scan           { private header "__numeric/exclusive_scan.h" }
877      module gcd_lcm                  { private header "__numeric/gcd_lcm.h" }
878      module inclusive_scan           { private header "__numeric/inclusive_scan.h" }
879      module inner_product            { private header "__numeric/inner_product.h" }
880      module iota                     { private header "__numeric/iota.h" }
881      module midpoint                 { private header "__numeric/midpoint.h" }
882      module partial_sum              { private header "__numeric/partial_sum.h" }
883      module reduce                   { private header "__numeric/reduce.h" }
884      module transform_exclusive_scan { private header "__numeric/transform_exclusive_scan.h" }
885      module transform_inclusive_scan { private header "__numeric/transform_inclusive_scan.h" }
886      module transform_reduce         { private header "__numeric/transform_reduce.h" }
887    }
888  }
889  module optional {
890    header "optional"
891    export *
892  }
893  module ostream {
894
895    header "ostream"
896    // FIXME: should re-export ios, streambuf?
897    export *
898  }
899  module queue {
900    header "queue"
901    export initializer_list
902    export *
903  }
904  module random {
905    header "random"
906    export initializer_list
907    export *
908
909    module __random {
910      module bernoulli_distribution          { private header "__random/bernoulli_distribution.h" }
911      module binomial_distribution           { private header "__random/binomial_distribution.h" }
912      module cauchy_distribution             { private header "__random/cauchy_distribution.h" }
913      module chi_squared_distribution        { private header "__random/chi_squared_distribution.h" }
914      module clamp_to_integral               { private header "__random/clamp_to_integral.h" }
915      module default_random_engine           { private header "__random/default_random_engine.h" }
916      module discard_block_engine            { private header "__random/discard_block_engine.h" }
917      module discrete_distribution           { private header "__random/discrete_distribution.h" }
918      module exponential_distribution        { private header "__random/exponential_distribution.h" }
919      module extreme_value_distribution      { private header "__random/extreme_value_distribution.h" }
920      module fisher_f_distribution           { private header "__random/fisher_f_distribution.h" }
921      module gamma_distribution              { private header "__random/gamma_distribution.h" }
922      module generate_canonical              { private header "__random/generate_canonical.h" }
923      module geometric_distribution          { private header "__random/geometric_distribution.h" }
924      module independent_bits_engine         { private header "__random/independent_bits_engine.h" }
925      module is_seed_sequence                { private header "__random/is_seed_sequence.h" }
926      module is_valid                        { private header "__random/is_valid.h" }
927      module knuth_b                         { private header "__random/knuth_b.h" }
928      module linear_congruential_engine      { private header "__random/linear_congruential_engine.h" }
929      module log2                            { private header "__random/log2.h" }
930      module lognormal_distribution          { private header "__random/lognormal_distribution.h" }
931      module mersenne_twister_engine         { private header "__random/mersenne_twister_engine.h" }
932      module negative_binomial_distribution  { private header "__random/negative_binomial_distribution.h" }
933      module normal_distribution             { private header "__random/normal_distribution.h" }
934      module piecewise_constant_distribution { private header "__random/piecewise_constant_distribution.h" }
935      module piecewise_linear_distribution   { private header "__random/piecewise_linear_distribution.h" }
936      module poisson_distribution            { private header "__random/poisson_distribution.h" }
937      module random_device                   { private header "__random/random_device.h" }
938      module ranlux                          { private header "__random/ranlux.h" }
939      module seed_seq                        { private header "__random/seed_seq.h" }
940      module shuffle_order_engine            { private header "__random/shuffle_order_engine.h" }
941      module student_t_distribution          { private header "__random/student_t_distribution.h" }
942      module subtract_with_carry_engine      { private header "__random/subtract_with_carry_engine.h" }
943      module uniform_int_distribution        { private header "__random/uniform_int_distribution.h" }
944      module uniform_random_bit_generator    { private header "__random/uniform_random_bit_generator.h" }
945      module uniform_real_distribution       { private header "__random/uniform_real_distribution.h" }
946      module weibull_distribution            { private header "__random/weibull_distribution.h" }
947    }
948  }
949  module ranges {
950    header "ranges"
951    export compare
952    export initializer_list
953    export iterator
954    export *
955
956    module __ranges {
957      module access                 { private header "__ranges/access.h" }
958      module all                    {
959        private header "__ranges/all.h"
960        export functional.__functional.compose
961        export functional.__functional.perfect_forward
962      }
963      module common_view            { private header "__ranges/common_view.h" }
964      module concepts               { private header "__ranges/concepts.h" }
965      module copyable_box           { private header "__ranges/copyable_box.h" }
966      module counted                {
967        private header "__ranges/counted.h"
968        export span
969      }
970      module dangling               { private header "__ranges/dangling.h" }
971      module data                   { private header "__ranges/data.h" }
972      module drop_view              { private header "__ranges/drop_view.h" }
973      module empty                  { private header "__ranges/empty.h" }
974      module empty_view             { private header "__ranges/empty_view.h" }
975      module enable_borrowed_range  { private header "__ranges/enable_borrowed_range.h" }
976      module enable_view            { private header "__ranges/enable_view.h" }
977      module filter_view            { private header "__ranges/filter_view.h" }
978      module iota_view              { private header "__ranges/iota_view.h" }
979      module join_view              { private header "__ranges/join_view.h" }
980      module lazy_split_view        { private header "__ranges/lazy_split_view.h" }
981      module non_propagating_cache  { private header "__ranges/non_propagating_cache.h" }
982      module owning_view            { private header "__ranges/owning_view.h" }
983      module range_adaptor          { private header "__ranges/range_adaptor.h" }
984      module rbegin                 { private header "__ranges/rbegin.h" }
985      module ref_view               { private header "__ranges/ref_view.h" }
986      module rend                   { private header "__ranges/rend.h" }
987      module reverse_view           { private header "__ranges/reverse_view.h" }
988      module single_view            { private header "__ranges/single_view.h" }
989      module size                   { private header "__ranges/size.h" }
990      module subrange               { private header "__ranges/subrange.h" }
991      module take_view              { private header "__ranges/take_view.h" }
992      module transform_view         {
993        private header "__ranges/transform_view.h"
994        export functional.__functional.bind_back
995        export functional.__functional.perfect_forward
996      }
997      module view_interface         { private header "__ranges/view_interface.h" }
998      module views                  { private header "__ranges/views.h" }
999      module zip_view               { private header "__ranges/zip_view.h" }
1000    }
1001  }
1002  module ratio {
1003    header "ratio"
1004    export *
1005  }
1006  module regex {
1007
1008    header "regex"
1009    export initializer_list
1010    export *
1011  }
1012  module scoped_allocator {
1013    header "scoped_allocator"
1014    export *
1015  }
1016  module semaphore {
1017
1018    header "semaphore"
1019    export *
1020  }
1021  module set {
1022    header "set"
1023    export initializer_list
1024    export *
1025  }
1026  module shared_mutex {
1027
1028    header "shared_mutex"
1029    export version
1030  }
1031  module span {
1032    header "span"
1033    export ranges.__ranges.enable_borrowed_range
1034    export version
1035    module span_fwd { private header "__fwd/span.h" }
1036  }
1037  module sstream {
1038
1039    header "sstream"
1040    // FIXME: should re-export istream, ostream, ios, streambuf, string?
1041    export *
1042  }
1043  module stack {
1044    header "stack"
1045    export initializer_list
1046    export *
1047  }
1048  module stdexcept {
1049    header "stdexcept"
1050    export *
1051  }
1052  module streambuf {
1053
1054    header "streambuf"
1055    export *
1056  }
1057  module string {
1058    header "string"
1059    export initializer_list
1060    export string_view
1061    module __string {
1062      module char_traits           { private header "__string/char_traits.h" }
1063      module extern_template_lists { private header "__string/extern_template_lists.h" }
1064    }
1065    export *
1066  }
1067  module string_view {
1068    header "string_view"
1069    export initializer_list
1070    export *
1071    module string_view_fwd { private header "__fwd/string_view.h" }
1072  }
1073  module strstream {
1074
1075    header "strstream"
1076    export *
1077  }
1078  module system_error {
1079    header "system_error"
1080    export *
1081  }
1082  module thread {
1083
1084    header "thread"
1085    export *
1086
1087    module __thread {
1088      module poll_with_backoff    { private header "__thread/poll_with_backoff.h" }
1089      module timed_backoff_policy { private header "__thread/timed_backoff_policy.h" }
1090    }
1091  }
1092  module tuple {
1093    header "tuple"
1094    export *
1095  }
1096  module type_traits {
1097    header "type_traits"
1098    export functional.__functional.unwrap_ref
1099    export *
1100
1101    module add_const                          { private header "__type_traits/add_const.h" }
1102    module add_cv                             { private header "__type_traits/add_cv.h" }
1103    module add_lvalue_reference               { private header "__type_traits/add_lvalue_reference.h" }
1104    module add_pointer                        { private header "__type_traits/add_pointer.h" }
1105    module add_rvalue_reference               { private header "__type_traits/add_rvalue_reference.h" }
1106    module add_volatile                       { private header "__type_traits/add_volatile.h" }
1107    module aligned_storage                    { private header "__type_traits/aligned_storage.h" }
1108    module aligned_union                      { private header "__type_traits/aligned_union.h" }
1109    module alignment_of                       { private header "__type_traits/alignment_of.h" }
1110    module apply_cv                           { private header "__type_traits/apply_cv.h" }
1111    module common_reference                   { private header "__type_traits/common_reference.h" }
1112    module common_type                        { private header "__type_traits/common_type.h" }
1113    module conditional                        { private header "__type_traits/conditional.h" }
1114    module conjunction                        { private header "__type_traits/conjunction.h" }
1115    module copy_cv                            { private header "__type_traits/copy_cv.h" }
1116    module copy_cvref                         { private header "__type_traits/copy_cvref.h" }
1117    module decay                              { private header "__type_traits/decay.h" }
1118    module disjunction                        { private header "__type_traits/disjunction.h" }
1119    module enable_if                          { private header "__type_traits/enable_if.h" }
1120    module extent                             { private header "__type_traits/extent.h" }
1121    module has_unique_object_representation   { private header "__type_traits/has_unique_object_representation.h" }
1122    module has_virtual_destructor             { private header "__type_traits/has_virtual_destructor.h" }
1123    module integral_constant                  { private header "__type_traits/integral_constant.h" }
1124    module is_abstract                        { private header "__type_traits/is_abstract.h" }
1125    module is_aggregate                       { private header "__type_traits/is_aggregate.h" }
1126    module is_arithmetic                      { private header "__type_traits/is_arithmetic.h" }
1127    module is_array                           { private header "__type_traits/is_array.h" }
1128    module is_assignable                      { private header "__type_traits/is_assignable.h" }
1129    module is_base_of                         { private header "__type_traits/is_base_of.h" }
1130    module is_bounded_array                   { private header "__type_traits/is_bounded_array.h" }
1131    module is_callable                        { private header "__type_traits/is_callable.h" }
1132    module is_class                           { private header "__type_traits/is_class.h" }
1133    module is_compound                        { private header "__type_traits/is_compound.h" }
1134    module is_const                           { private header "__type_traits/is_const.h" }
1135    module is_constant_evaluated              { private header "__type_traits/is_constant_evaluated.h" }
1136    module is_constructible                   { private header "__type_traits/is_constructible.h" }
1137    module is_convertible                     { private header "__type_traits/is_convertible.h" }
1138    module is_copy_assignable                 { private header "__type_traits/is_copy_assignable.h" }
1139    module is_copy_constructible              { private header "__type_traits/is_copy_constructible.h" }
1140    module is_core_convertible                { private header "__type_traits/is_core_convertible.h" }
1141    module is_default_constructible           { private header "__type_traits/is_default_constructible.h" }
1142    module is_destructible                    { private header "__type_traits/is_destructible.h" }
1143    module is_empty                           { private header "__type_traits/is_empty.h" }
1144    module is_enum                            { private header "__type_traits/is_enum.h" }
1145    module is_final                           { private header "__type_traits/is_final.h" }
1146    module is_floating_point                  { private header "__type_traits/is_floating_point.h" }
1147    module is_function                        { private header "__type_traits/is_function.h" }
1148    module is_fundamental                     { private header "__type_traits/is_fundamental.h" }
1149    module is_integral                        { private header "__type_traits/is_integral.h" }
1150    module is_literal_type                    { private header "__type_traits/is_literal_type.h" }
1151    module is_member_function_pointer         { private header "__type_traits/is_member_function_pointer.h" }
1152    module is_member_object_pointer           { private header "__type_traits/is_member_object_pointer.h" }
1153    module is_member_pointer                  { private header "__type_traits/is_member_pointer.h" }
1154    module is_move_assignable                 { private header "__type_traits/is_move_assignable.h" }
1155    module is_move_constructible              { private header "__type_traits/is_move_constructible.h" }
1156    module is_nothrow_assignable              { private header "__type_traits/is_nothrow_assignable.h" }
1157    module is_nothrow_constructible           { private header "__type_traits/is_nothrow_constructible.h" }
1158    module is_nothrow_convertible             { private header "__type_traits/is_nothrow_convertible.h" }
1159    module is_nothrow_copy_assignable         { private header "__type_traits/is_nothrow_copy_assignable.h" }
1160    module is_nothrow_copy_constructible      { private header "__type_traits/is_nothrow_copy_constructible.h" }
1161    module is_nothrow_default_constructible   { private header "__type_traits/is_nothrow_default_constructible.h" }
1162    module is_nothrow_destructible            { private header "__type_traits/is_nothrow_destructible.h" }
1163    module is_nothrow_move_assignable         { private header "__type_traits/is_nothrow_move_assignable.h" }
1164    module is_nothrow_move_constructible      { private header "__type_traits/is_nothrow_move_constructible.h" }
1165    module is_null_pointer                    { private header "__type_traits/is_null_pointer.h" }
1166    module is_object                          { private header "__type_traits/is_object.h" }
1167    module is_pod                             { private header "__type_traits/is_pod.h" }
1168    module is_pointer                         { private header "__type_traits/is_pointer.h" }
1169    module is_polymorphic                     { private header "__type_traits/is_polymorphic.h" }
1170    module is_primary_template                { private header "__type_traits/is_primary_template.h" }
1171    module is_reference                       { private header "__type_traits/is_reference.h" }
1172    module is_reference_wrapper               { private header "__type_traits/is_reference_wrapper.h" }
1173    module is_referenceable                   { private header "__type_traits/is_referenceable.h" }
1174    module is_same                            { private header "__type_traits/is_same.h" }
1175    module is_scalar                          { private header "__type_traits/is_scalar.h" }
1176    module is_scoped_enum                     { private header "__type_traits/is_scoped_enum.h" }
1177    module is_signed                          { private header "__type_traits/is_signed.h" }
1178    module is_signed_integer                  { private header "__type_traits/is_signed_integer.h" }
1179    module is_standard_layout                 { private header "__type_traits/is_standard_layout.h" }
1180    module is_trivial                         { private header "__type_traits/is_trivial.h" }
1181    module is_trivially_assignable            { private header "__type_traits/is_trivially_assignable.h" }
1182    module is_trivially_constructible         { private header "__type_traits/is_trivially_constructible.h" }
1183    module is_trivially_copy_assignable       { private header "__type_traits/is_trivially_copy_assignable.h" }
1184    module is_trivially_copy_constructible    { private header "__type_traits/is_trivially_copy_constructible.h" }
1185    module is_trivially_copyable              { private header "__type_traits/is_trivially_copyable.h" }
1186    module is_trivially_default_constructible { private header "__type_traits/is_trivially_default_constructible.h" }
1187    module is_trivially_destructible          { private header "__type_traits/is_trivially_destructible.h" }
1188    module is_trivially_move_assignable       { private header "__type_traits/is_trivially_move_assignable.h" }
1189    module is_trivially_move_constructible    { private header "__type_traits/is_trivially_move_constructible.h" }
1190    module is_unbounded_array                 { private header "__type_traits/is_unbounded_array.h" }
1191    module is_union                           { private header "__type_traits/is_union.h" }
1192    module is_unsigned                        { private header "__type_traits/is_unsigned.h" }
1193    module is_unsigned_integer                { private header "__type_traits/is_unsigned_integer.h" }
1194    module is_valid_expansion                 { private header "__type_traits/is_valid_expansion.h" }
1195    module is_void                            { private header "__type_traits/is_void.h" }
1196    module is_volatile                        { private header "__type_traits/is_volatile.h" }
1197    module lazy                               { private header "__type_traits/lazy.h" }
1198    module make_32_64_or_128_bit              { private header "__type_traits/make_32_64_or_128_bit.h" }
1199    module make_signed                        { private header "__type_traits/make_signed.h" }
1200    module make_unsigned                      { private header "__type_traits/make_unsigned.h" }
1201    module nat                                { private header "__type_traits/nat.h" }
1202    module negation                           { private header "__type_traits/negation.h" }
1203    module promote                            { private header "__type_traits/promote.h" }
1204    module rank                               { private header "__type_traits/rank.h" }
1205    module remove_all_extents                 { private header "__type_traits/remove_all_extents.h" }
1206    module remove_const                       { private header "__type_traits/remove_const.h" }
1207    module remove_cv                          { private header "__type_traits/remove_cv.h" }
1208    module remove_cvref                       { private header "__type_traits/remove_cvref.h" }
1209    module remove_extent                      { private header "__type_traits/remove_extent.h" }
1210    module remove_pointer                     { private header "__type_traits/remove_pointer.h" }
1211    module remove_reference                   { private header "__type_traits/remove_reference.h" }
1212    module remove_volatile                    { private header "__type_traits/remove_volatile.h" }
1213    module type_identity                      { private header "__type_traits/type_identity.h" }
1214    module type_list                          { private header "__type_traits/type_list.h" }
1215    module underlying_type                    { private header "__type_traits/underlying_type.h" }
1216    module void_t                             { private header "__type_traits/void_t.h" }
1217  }
1218  module typeindex {
1219    header "typeindex"
1220    export *
1221  }
1222  module typeinfo {
1223    header "typeinfo"
1224    export *
1225  }
1226  module unordered_map {
1227    header "unordered_map"
1228    export initializer_list
1229    export *
1230  }
1231  module unordered_set {
1232    header "unordered_set"
1233    export initializer_list
1234    export *
1235  }
1236  module utility {
1237    header "utility"
1238    export initializer_list
1239    export *
1240
1241    module __utility {
1242      module as_const            { private header "__utility/as_const.h" }
1243      module auto_cast           { private header "__utility/auto_cast.h" }
1244      module cmp                 { private header "__utility/cmp.h" }
1245      module declval             { private header "__utility/declval.h" }
1246      module exchange            { private header "__utility/exchange.h" }
1247      module forward             { private header "__utility/forward.h" }
1248      module in_place            { private header "__utility/in_place.h" }
1249      module integer_sequence    { private header "__utility/integer_sequence.h" }
1250      module move                { private header "__utility/move.h" }
1251      module pair                { private header "__utility/pair.h" }
1252      module piecewise_construct { private header "__utility/piecewise_construct.h" }
1253      module priority_tag        { private header "__utility/priority_tag.h" }
1254      module rel_ops             { private header "__utility/rel_ops.h" }
1255      module swap                { private header "__utility/swap.h" }
1256      module to_underlying       { private header "__utility/to_underlying.h" }
1257      module transaction         { private header "__utility/transaction.h" }
1258      module unreachable         { private header "__utility/unreachable.h" }
1259    }
1260  }
1261  module valarray {
1262    header "valarray"
1263    export initializer_list
1264    export *
1265  }
1266  module variant {
1267    header "variant"
1268    export *
1269
1270    module __variant {
1271      module monostate { private header "__variant/monostate.h" }
1272    }
1273  }
1274  module vector {
1275    header "vector"
1276    export initializer_list
1277    export *
1278  }
1279  module version {
1280    header "version"
1281    export *
1282  }
1283
1284  // FIXME: These should be private.
1285  module __assert            {         header "__assert"            export * }
1286  module __availability      { private header "__availability"      export * }
1287  module __bit_reference     { private header "__bit_reference"     export * }
1288  module __bits              { private header "__bits"              export * }
1289  module __debug             {         header "__debug"             export * }
1290  module __errc              { private header "__errc"              export * }
1291  module __hash_table        {         header "__hash_table"        export * }
1292  module __locale            {
1293
1294    private header "__locale" export *
1295  }
1296  module __mbstate_t         { private header "__mbstate_t.h"       export * }
1297  module __mutex_base        { private header "__mutex_base"        export * }
1298  module __node_handle       { private header "__node_handle"       export * }
1299  module __split_buffer      { private header "__split_buffer"      export * }
1300  module __std_stream        {
1301
1302    private header "__std_stream" export *
1303  }
1304  module __threading_support {         header "__threading_support" export * }
1305  module __tree              {         header "__tree"              export * }
1306  module __tuple             { private header "__tuple"             export * }
1307  module __undef_macros      {         header "__undef_macros"      export * }
1308  module __verbose_abort     {         header "__verbose_abort"     export * }
1309
1310  module experimental {
1311    requires cplusplus11
1312
1313    module algorithm {
1314      header "experimental/algorithm"
1315      export *
1316    }
1317    module coroutine {
1318      requires coroutines
1319      header "experimental/coroutine"
1320      export *
1321    }
1322    module deque {
1323      header "experimental/deque"
1324      export *
1325    }
1326    module forward_list {
1327      header "experimental/forward_list"
1328      export *
1329    }
1330    module functional {
1331      header "experimental/functional"
1332      export *
1333    }
1334    module iterator {
1335      header "experimental/iterator"
1336      export *
1337    }
1338    module list {
1339      header "experimental/list"
1340      export *
1341    }
1342    module map {
1343      header "experimental/map"
1344      export *
1345    }
1346    module memory_resource {
1347      header "experimental/memory_resource"
1348      export *
1349    }
1350    module propagate_const {
1351      header "experimental/propagate_const"
1352      export *
1353    }
1354    module regex {
1355
1356      header "experimental/regex"
1357      export *
1358    }
1359    module simd {
1360      header "experimental/simd"
1361      export *
1362    }
1363    module set {
1364      header "experimental/set"
1365      export *
1366    }
1367    module span {
1368      header "span"
1369      export *
1370    }
1371    module string {
1372      header "experimental/string"
1373      export *
1374    }
1375    module type_traits {
1376      header "experimental/type_traits"
1377      export *
1378    }
1379    module unordered_map {
1380      header "experimental/unordered_map"
1381      export *
1382    }
1383    module unordered_set {
1384      header "experimental/unordered_set"
1385      export *
1386    }
1387    module utility {
1388      header "experimental/utility"
1389      export *
1390    }
1391    module vector {
1392      header "experimental/vector"
1393      export *
1394    }
1395    // FIXME these should be private
1396    module __memory {
1397      header "experimental/__memory"
1398      export *
1399    }
1400  } // end experimental
1401}
1402