xref: /freebsd-14.2/lib/libc++/module.modulemap (revision bdd1243d)
181ad6265SDimitry Andric// define the module for __config outside of the top level 'std' module
281ad6265SDimitry Andric// since __config may be included from C headers which may create an
381ad6265SDimitry Andric// include cycle.
481ad6265SDimitry Andricmodule std_config [system] [extern_c] {
581ad6265SDimitry Andric  header "__config"
681ad6265SDimitry Andric  export *
781ad6265SDimitry Andric}
881ad6265SDimitry Andric
981ad6265SDimitry Andricmodule std [system] {
1081ad6265SDimitry Andric  export std_config
1181ad6265SDimitry Andric  // FIXME: The standard does not require that each of these submodules
1281ad6265SDimitry Andric  // re-exports its imported modules. We should provide an alternative form of
1381ad6265SDimitry Andric  // export that issues a warning if a name from the submodule is used, and
1481ad6265SDimitry Andric  // use that to provide a 'strict mode' for libc++.
1581ad6265SDimitry Andric
1681ad6265SDimitry Andric  // Deprecated C-compatibility headers. These can all be included from within
1781ad6265SDimitry Andric  // an 'extern "C"' context.
1881ad6265SDimitry Andric  module depr [extern_c] {
1981ad6265SDimitry Andric    // <assert.h> provided by C library.
2081ad6265SDimitry Andric    module ctype_h {
2181ad6265SDimitry Andric      header "ctype.h"
2281ad6265SDimitry Andric      export *
2381ad6265SDimitry Andric    }
2481ad6265SDimitry Andric    module errno_h {
2581ad6265SDimitry Andric      header "errno.h"
2681ad6265SDimitry Andric      export *
2781ad6265SDimitry Andric    }
2881ad6265SDimitry Andric    module fenv_h {
2981ad6265SDimitry Andric      header "fenv.h"
3081ad6265SDimitry Andric      export *
3181ad6265SDimitry Andric    }
3281ad6265SDimitry Andric    // <float.h> provided by compiler or C library.
3381ad6265SDimitry Andric    module inttypes_h {
3481ad6265SDimitry Andric      header "inttypes.h"
3581ad6265SDimitry Andric      export stdint_h
3681ad6265SDimitry Andric      export *
3781ad6265SDimitry Andric    }
3881ad6265SDimitry Andric    // <iso646.h> provided by compiler.
3981ad6265SDimitry Andric    // <limits.h> provided by compiler or C library.
4081ad6265SDimitry Andric    module locale_h {
4181ad6265SDimitry Andric
4281ad6265SDimitry Andric      header "locale.h"
4381ad6265SDimitry Andric      export *
4481ad6265SDimitry Andric    }
4581ad6265SDimitry Andric    module math_h {
4681ad6265SDimitry Andric      header "math.h"
4781ad6265SDimitry Andric      export *
4881ad6265SDimitry Andric    }
4981ad6265SDimitry Andric    module setjmp_h {
5081ad6265SDimitry Andric      header "setjmp.h"
5181ad6265SDimitry Andric      export *
5281ad6265SDimitry Andric    }
5381ad6265SDimitry Andric    module stdatomic_h {
5481ad6265SDimitry Andric
5581ad6265SDimitry Andric      requires cplusplus23
5681ad6265SDimitry Andric      header "stdatomic.h"
5781ad6265SDimitry Andric      export *
5881ad6265SDimitry Andric    }
5981ad6265SDimitry Andric    // FIXME: <stdalign.h> is missing.
6081ad6265SDimitry Andric    // <signal.h> provided by C library.
6181ad6265SDimitry Andric    // <stdarg.h> provided by compiler.
626246ae0bSDimitry Andric    module stdbool_h {
636246ae0bSDimitry Andric      // <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
646246ae0bSDimitry Andric      textual header "stdbool.h"
656246ae0bSDimitry Andric    }
6681ad6265SDimitry Andric    module stddef_h {
6781ad6265SDimitry Andric      // <stddef.h>'s __need_* macros require textual inclusion.
6881ad6265SDimitry Andric      textual header "stddef.h"
6981ad6265SDimitry Andric    }
7081ad6265SDimitry Andric    module stdint_h {
7181ad6265SDimitry Andric      header "stdint.h"
7281ad6265SDimitry Andric      export *
7381ad6265SDimitry Andric      // FIXME: This module only exists on OS X and for some reason the
7481ad6265SDimitry Andric      // wildcard above doesn't export it.
7581ad6265SDimitry Andric      export Darwin.C.stdint
7681ad6265SDimitry Andric    }
7781ad6265SDimitry Andric    module stdio_h {
7881ad6265SDimitry Andric      // <stdio.h>'s __need_* macros require textual inclusion.
7981ad6265SDimitry Andric      textual header "stdio.h"
8081ad6265SDimitry Andric      export *
8181ad6265SDimitry Andric      export Darwin.C.stdio
8281ad6265SDimitry Andric    }
8381ad6265SDimitry Andric    module stdlib_h {
8481ad6265SDimitry Andric      // <stdlib.h>'s __need_* macros require textual inclusion.
8581ad6265SDimitry Andric      textual header "stdlib.h"
8681ad6265SDimitry Andric      export *
8781ad6265SDimitry Andric    }
8881ad6265SDimitry Andric    module string_h {
8981ad6265SDimitry Andric      header "string.h"
9081ad6265SDimitry Andric      export *
9181ad6265SDimitry Andric    }
9281ad6265SDimitry Andric    module uchar_h {
9381ad6265SDimitry Andric      header "uchar.h"
9481ad6265SDimitry Andric      export *
9581ad6265SDimitry Andric    }
9681ad6265SDimitry Andric    // <time.h> provided by C library.
9781ad6265SDimitry Andric    module wchar_h {
9881ad6265SDimitry Andric
9981ad6265SDimitry Andric      // <wchar.h>'s __need_* macros require textual inclusion.
10081ad6265SDimitry Andric      textual header "wchar.h"
10181ad6265SDimitry Andric      export *
10281ad6265SDimitry Andric    }
10381ad6265SDimitry Andric    module wctype_h {
10481ad6265SDimitry Andric
10581ad6265SDimitry Andric      header "wctype.h"
10681ad6265SDimitry Andric      export *
10781ad6265SDimitry Andric    }
10881ad6265SDimitry Andric  }
10981ad6265SDimitry Andric
11081ad6265SDimitry Andric  // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
11181ad6265SDimitry Andric  // allow their use in extern "C" contexts.
11281ad6265SDimitry Andric  module complex_h {
11381ad6265SDimitry Andric    header "complex.h"
11481ad6265SDimitry Andric    export ccomplex
11581ad6265SDimitry Andric    export *
11681ad6265SDimitry Andric  }
11781ad6265SDimitry Andric  module tgmath_h {
11881ad6265SDimitry Andric    header "tgmath.h"
11981ad6265SDimitry Andric    export ccomplex
12081ad6265SDimitry Andric    export cmath
12181ad6265SDimitry Andric    export *
12281ad6265SDimitry Andric  }
12381ad6265SDimitry Andric
12481ad6265SDimitry Andric  // C compatibility headers.
12581ad6265SDimitry Andric  module compat {
12681ad6265SDimitry Andric    module cassert {
12781ad6265SDimitry Andric      // <cassert>'s use of NDEBUG requires textual inclusion.
12881ad6265SDimitry Andric      textual header "cassert"
12981ad6265SDimitry Andric    }
13081ad6265SDimitry Andric    module ccomplex {
13181ad6265SDimitry Andric      header "ccomplex"
13281ad6265SDimitry Andric      export complex
13381ad6265SDimitry Andric      export *
13481ad6265SDimitry Andric    }
13581ad6265SDimitry Andric    module cctype {
13681ad6265SDimitry Andric      header "cctype"
13781ad6265SDimitry Andric      export *
13881ad6265SDimitry Andric    }
13981ad6265SDimitry Andric    module cerrno {
14081ad6265SDimitry Andric      header "cerrno"
14181ad6265SDimitry Andric      export *
14281ad6265SDimitry Andric    }
14381ad6265SDimitry Andric    module cfenv {
14481ad6265SDimitry Andric      header "cfenv"
14581ad6265SDimitry Andric      export *
14681ad6265SDimitry Andric    }
14781ad6265SDimitry Andric    module cfloat {
14881ad6265SDimitry Andric      header "cfloat"
14981ad6265SDimitry Andric      export *
15081ad6265SDimitry Andric    }
15181ad6265SDimitry Andric    module cinttypes {
15281ad6265SDimitry Andric      header "cinttypes"
15381ad6265SDimitry Andric      export cstdint
15481ad6265SDimitry Andric      export *
15581ad6265SDimitry Andric    }
15681ad6265SDimitry Andric    module ciso646 {
15781ad6265SDimitry Andric      header "ciso646"
15881ad6265SDimitry Andric      export *
15981ad6265SDimitry Andric    }
16081ad6265SDimitry Andric    module climits {
16181ad6265SDimitry Andric      header "climits"
16281ad6265SDimitry Andric      export *
16381ad6265SDimitry Andric    }
16481ad6265SDimitry Andric    module clocale {
16581ad6265SDimitry Andric
16681ad6265SDimitry Andric      header "clocale"
16781ad6265SDimitry Andric      export *
16881ad6265SDimitry Andric    }
16981ad6265SDimitry Andric    module cmath {
17081ad6265SDimitry Andric      header "cmath"
17181ad6265SDimitry Andric      export *
17281ad6265SDimitry Andric    }
17381ad6265SDimitry Andric    module csetjmp {
17481ad6265SDimitry Andric      header "csetjmp"
17581ad6265SDimitry Andric      export *
17681ad6265SDimitry Andric    }
17781ad6265SDimitry Andric    module csignal {
17881ad6265SDimitry Andric      header "csignal"
17981ad6265SDimitry Andric      export *
18081ad6265SDimitry Andric    }
18181ad6265SDimitry Andric    // FIXME: <cstdalign> is missing.
18281ad6265SDimitry Andric    module cstdarg {
18381ad6265SDimitry Andric      header "cstdarg"
18481ad6265SDimitry Andric      export *
18581ad6265SDimitry Andric    }
18681ad6265SDimitry Andric    module cstdbool {
18781ad6265SDimitry Andric      header "cstdbool"
18881ad6265SDimitry Andric      export *
18981ad6265SDimitry Andric    }
19081ad6265SDimitry Andric    module cstddef {
19181ad6265SDimitry Andric      header "cstddef"
19281ad6265SDimitry Andric      export *
19381ad6265SDimitry Andric    }
19481ad6265SDimitry Andric    module cstdint {
19581ad6265SDimitry Andric      header "cstdint"
19681ad6265SDimitry Andric      export depr.stdint_h
19781ad6265SDimitry Andric      export *
19881ad6265SDimitry Andric    }
19981ad6265SDimitry Andric    module cstdio {
20081ad6265SDimitry Andric      header "cstdio"
20181ad6265SDimitry Andric      export *
20281ad6265SDimitry Andric    }
20381ad6265SDimitry Andric    module cstdlib {
20481ad6265SDimitry Andric      header "cstdlib"
20581ad6265SDimitry Andric      export *
20681ad6265SDimitry Andric    }
20781ad6265SDimitry Andric    module cstring {
20881ad6265SDimitry Andric      header "cstring"
20981ad6265SDimitry Andric      export *
21081ad6265SDimitry Andric    }
21181ad6265SDimitry Andric    module ctgmath {
21281ad6265SDimitry Andric      header "ctgmath"
21381ad6265SDimitry Andric      export ccomplex
21481ad6265SDimitry Andric      export cmath
21581ad6265SDimitry Andric      export *
21681ad6265SDimitry Andric    }
21781ad6265SDimitry Andric    module ctime {
21881ad6265SDimitry Andric      header "ctime"
21981ad6265SDimitry Andric      export *
22081ad6265SDimitry Andric    }
22181ad6265SDimitry Andric    module cuchar {
22281ad6265SDimitry Andric      header "cuchar"
22381ad6265SDimitry Andric      export *
22481ad6265SDimitry Andric    }
22581ad6265SDimitry Andric    module cwchar {
22681ad6265SDimitry Andric
22781ad6265SDimitry Andric      header "cwchar"
22881ad6265SDimitry Andric      export depr.stdio_h
22981ad6265SDimitry Andric      export *
23081ad6265SDimitry Andric    }
23181ad6265SDimitry Andric    module cwctype {
23281ad6265SDimitry Andric
23381ad6265SDimitry Andric      header "cwctype"
23481ad6265SDimitry Andric      export *
23581ad6265SDimitry Andric    }
23681ad6265SDimitry Andric  }
23781ad6265SDimitry Andric
23881ad6265SDimitry Andric  module algorithm {
23981ad6265SDimitry Andric    header "algorithm"
24081ad6265SDimitry Andric    export initializer_list
24181ad6265SDimitry Andric    export *
24281ad6265SDimitry Andric
24381ad6265SDimitry Andric    module __algorithm {
24481ad6265SDimitry Andric      module adjacent_find                   { private header "__algorithm/adjacent_find.h" }
24581ad6265SDimitry Andric      module all_of                          { private header "__algorithm/all_of.h" }
24681ad6265SDimitry Andric      module any_of                          { private header "__algorithm/any_of.h" }
24781ad6265SDimitry Andric      module binary_search                   { private header "__algorithm/binary_search.h" }
24881ad6265SDimitry Andric      module clamp                           { private header "__algorithm/clamp.h" }
24981ad6265SDimitry Andric      module comp                            { private header "__algorithm/comp.h" }
25081ad6265SDimitry Andric      module comp_ref_type                   { private header "__algorithm/comp_ref_type.h" }
25181ad6265SDimitry Andric      module copy                            { private header "__algorithm/copy.h" }
25281ad6265SDimitry Andric      module copy_backward                   { private header "__algorithm/copy_backward.h" }
25381ad6265SDimitry Andric      module copy_if                         { private header "__algorithm/copy_if.h" }
254bdd1243dSDimitry Andric      module copy_move_common                { private header "__algorithm/copy_move_common.h" }
25581ad6265SDimitry Andric      module copy_n                          { private header "__algorithm/copy_n.h" }
25681ad6265SDimitry Andric      module count                           { private header "__algorithm/count.h" }
25781ad6265SDimitry Andric      module count_if                        { private header "__algorithm/count_if.h" }
25881ad6265SDimitry Andric      module equal                           { private header "__algorithm/equal.h" }
25981ad6265SDimitry Andric      module equal_range                     { private header "__algorithm/equal_range.h" }
26081ad6265SDimitry Andric      module fill                            { private header "__algorithm/fill.h" }
26181ad6265SDimitry Andric      module fill_n                          { private header "__algorithm/fill_n.h" }
26281ad6265SDimitry Andric      module find                            { private header "__algorithm/find.h" }
26381ad6265SDimitry Andric      module find_end                        { private header "__algorithm/find_end.h" }
26481ad6265SDimitry Andric      module find_first_of                   { private header "__algorithm/find_first_of.h" }
26581ad6265SDimitry Andric      module find_if                         { private header "__algorithm/find_if.h" }
26681ad6265SDimitry Andric      module find_if_not                     { private header "__algorithm/find_if_not.h" }
26781ad6265SDimitry Andric      module for_each                        { private header "__algorithm/for_each.h" }
26881ad6265SDimitry Andric      module for_each_n                      { private header "__algorithm/for_each_n.h" }
26981ad6265SDimitry Andric      module generate                        { private header "__algorithm/generate.h" }
27081ad6265SDimitry Andric      module generate_n                      { private header "__algorithm/generate_n.h" }
27181ad6265SDimitry Andric      module half_positive                   { private header "__algorithm/half_positive.h" }
27281ad6265SDimitry Andric      module in_found_result                 { private header "__algorithm/in_found_result.h" }
27381ad6265SDimitry Andric      module in_fun_result                   { private header "__algorithm/in_fun_result.h" }
27481ad6265SDimitry Andric      module in_in_out_result                { private header "__algorithm/in_in_out_result.h" }
27581ad6265SDimitry Andric      module in_in_result                    { private header "__algorithm/in_in_result.h" }
27681ad6265SDimitry Andric      module in_out_out_result               { private header "__algorithm/in_out_out_result.h" }
27781ad6265SDimitry Andric      module in_out_result                   { private header "__algorithm/in_out_result.h" }
27881ad6265SDimitry Andric      module includes                        { private header "__algorithm/includes.h" }
27981ad6265SDimitry Andric      module inplace_merge                   { private header "__algorithm/inplace_merge.h" }
28081ad6265SDimitry Andric      module is_heap                         { private header "__algorithm/is_heap.h" }
28181ad6265SDimitry Andric      module is_heap_until                   { private header "__algorithm/is_heap_until.h" }
28281ad6265SDimitry Andric      module is_partitioned                  { private header "__algorithm/is_partitioned.h" }
28381ad6265SDimitry Andric      module is_permutation                  { private header "__algorithm/is_permutation.h" }
28481ad6265SDimitry Andric      module is_sorted                       { private header "__algorithm/is_sorted.h" }
28581ad6265SDimitry Andric      module is_sorted_until                 { private header "__algorithm/is_sorted_until.h" }
28681ad6265SDimitry Andric      module iter_swap                       { private header "__algorithm/iter_swap.h" }
287bdd1243dSDimitry Andric      module iterator_operations             {
288bdd1243dSDimitry Andric        private header "__algorithm/iterator_operations.h"
289bdd1243dSDimitry Andric        export *
290bdd1243dSDimitry Andric      }
29181ad6265SDimitry Andric      module lexicographical_compare         { private header "__algorithm/lexicographical_compare.h" }
29281ad6265SDimitry Andric      module lower_bound                     { private header "__algorithm/lower_bound.h" }
29381ad6265SDimitry Andric      module make_heap                       { private header "__algorithm/make_heap.h" }
29481ad6265SDimitry Andric      module make_projected                  { private header "__algorithm/make_projected.h" }
29581ad6265SDimitry Andric      module max                             { private header "__algorithm/max.h" }
29681ad6265SDimitry Andric      module max_element                     { private header "__algorithm/max_element.h" }
29781ad6265SDimitry Andric      module merge                           { private header "__algorithm/merge.h" }
29881ad6265SDimitry Andric      module min                             { private header "__algorithm/min.h" }
29981ad6265SDimitry Andric      module min_element                     { private header "__algorithm/min_element.h" }
30081ad6265SDimitry Andric      module min_max_result                  { private header "__algorithm/min_max_result.h" }
30181ad6265SDimitry Andric      module minmax                          { private header "__algorithm/minmax.h" }
30281ad6265SDimitry Andric      module minmax_element                  { private header "__algorithm/minmax_element.h" }
30381ad6265SDimitry Andric      module mismatch                        { private header "__algorithm/mismatch.h" }
30481ad6265SDimitry Andric      module move                            { private header "__algorithm/move.h" }
30581ad6265SDimitry Andric      module move_backward                   { private header "__algorithm/move_backward.h" }
30681ad6265SDimitry Andric      module next_permutation                { private header "__algorithm/next_permutation.h" }
30781ad6265SDimitry Andric      module none_of                         { private header "__algorithm/none_of.h" }
30881ad6265SDimitry Andric      module nth_element                     { private header "__algorithm/nth_element.h" }
30981ad6265SDimitry Andric      module partial_sort                    { private header "__algorithm/partial_sort.h" }
31081ad6265SDimitry Andric      module partial_sort_copy               { private header "__algorithm/partial_sort_copy.h" }
31181ad6265SDimitry Andric      module partition                       { private header "__algorithm/partition.h" }
31281ad6265SDimitry Andric      module partition_copy                  { private header "__algorithm/partition_copy.h" }
31381ad6265SDimitry Andric      module partition_point                 { private header "__algorithm/partition_point.h" }
31481ad6265SDimitry Andric      module pop_heap                        { private header "__algorithm/pop_heap.h" }
31581ad6265SDimitry Andric      module prev_permutation                { private header "__algorithm/prev_permutation.h" }
31681ad6265SDimitry Andric      module push_heap                       { private header "__algorithm/push_heap.h" }
31781ad6265SDimitry Andric      module ranges_adjacent_find            { private header "__algorithm/ranges_adjacent_find.h" }
31881ad6265SDimitry Andric      module ranges_all_of                   { private header "__algorithm/ranges_all_of.h" }
31981ad6265SDimitry Andric      module ranges_any_of                   { private header "__algorithm/ranges_any_of.h" }
320bdd1243dSDimitry Andric      module ranges_binary_search {
321bdd1243dSDimitry Andric        private header "__algorithm/ranges_binary_search.h"
322bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
323bdd1243dSDimitry Andric      }
324bdd1243dSDimitry Andric      module ranges_clamp {
325bdd1243dSDimitry Andric        private header "__algorithm/ranges_clamp.h"
326bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
327bdd1243dSDimitry Andric      }
328bdd1243dSDimitry Andric      module ranges_copy {
329bdd1243dSDimitry Andric        private header "__algorithm/ranges_copy.h"
330bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
331bdd1243dSDimitry Andric      }
332bdd1243dSDimitry Andric      module ranges_copy_backward {
333bdd1243dSDimitry Andric        private header "__algorithm/ranges_copy_backward.h"
334bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
335bdd1243dSDimitry Andric      }
336bdd1243dSDimitry Andric      module ranges_copy_if {
337bdd1243dSDimitry Andric        private header "__algorithm/ranges_copy_if.h"
338bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
339bdd1243dSDimitry Andric      }
340bdd1243dSDimitry Andric      module ranges_copy_n {
341bdd1243dSDimitry Andric        private header "__algorithm/ranges_copy_n.h"
342bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
343bdd1243dSDimitry Andric      }
34481ad6265SDimitry Andric      module ranges_count                    { private header "__algorithm/ranges_count.h" }
34581ad6265SDimitry Andric      module ranges_count_if                 { private header "__algorithm/ranges_count_if.h" }
34681ad6265SDimitry Andric      module ranges_equal                    { private header "__algorithm/ranges_equal.h" }
347bdd1243dSDimitry Andric      module ranges_equal_range {
348bdd1243dSDimitry Andric        private header "__algorithm/ranges_equal_range.h"
349bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
350bdd1243dSDimitry Andric      }
35181ad6265SDimitry Andric      module ranges_fill                     { private header "__algorithm/ranges_fill.h" }
35281ad6265SDimitry Andric      module ranges_fill_n                   { private header "__algorithm/ranges_fill_n.h" }
35381ad6265SDimitry Andric      module ranges_find                     { private header "__algorithm/ranges_find.h" }
354753f127fSDimitry Andric      module ranges_find_end                 { private header "__algorithm/ranges_find_end.h" }
35581ad6265SDimitry Andric      module ranges_find_first_of            { private header "__algorithm/ranges_find_first_of.h" }
35681ad6265SDimitry Andric      module ranges_find_if                  { private header "__algorithm/ranges_find_if.h" }
35781ad6265SDimitry Andric      module ranges_find_if_not              { private header "__algorithm/ranges_find_if_not.h" }
358bdd1243dSDimitry Andric      module ranges_for_each {
359bdd1243dSDimitry Andric        private header "__algorithm/ranges_for_each.h"
360bdd1243dSDimitry Andric        export algorithm.__algorithm.in_fun_result
361bdd1243dSDimitry Andric      }
362bdd1243dSDimitry Andric      module ranges_for_each_n {
363bdd1243dSDimitry Andric        private header "__algorithm/ranges_for_each_n.h"
364bdd1243dSDimitry Andric        export algorithm.__algorithm.in_fun_result
365bdd1243dSDimitry Andric      }
366753f127fSDimitry Andric      module ranges_generate                 { private header "__algorithm/ranges_generate.h" }
367753f127fSDimitry Andric      module ranges_generate_n               { private header "__algorithm/ranges_generate_n.h" }
368bdd1243dSDimitry Andric      module ranges_includes {
369bdd1243dSDimitry Andric        private header "__algorithm/ranges_includes.h"
370bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
371bdd1243dSDimitry Andric      }
372bdd1243dSDimitry Andric      module ranges_inplace_merge {
373bdd1243dSDimitry Andric        private header "__algorithm/ranges_inplace_merge.h"
374bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
375bdd1243dSDimitry Andric      }
376bdd1243dSDimitry Andric      module ranges_is_heap {
377bdd1243dSDimitry Andric        private header "__algorithm/ranges_is_heap.h"
378bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
379bdd1243dSDimitry Andric      }
380bdd1243dSDimitry Andric      module ranges_is_heap_until {
381bdd1243dSDimitry Andric        private header "__algorithm/ranges_is_heap_until.h"
382bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
383bdd1243dSDimitry Andric      }
38481ad6265SDimitry Andric      module ranges_is_partitioned           { private header "__algorithm/ranges_is_partitioned.h" }
3856246ae0bSDimitry Andric      module ranges_is_permutation           { private header "__algorithm/ranges_is_permutation.h" }
386bdd1243dSDimitry Andric      module ranges_is_sorted {
387bdd1243dSDimitry Andric        private header "__algorithm/ranges_is_sorted.h"
388bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
389bdd1243dSDimitry Andric      }
390bdd1243dSDimitry Andric      module ranges_is_sorted_until {
391bdd1243dSDimitry Andric        private header "__algorithm/ranges_is_sorted_until.h"
392bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
393bdd1243dSDimitry Andric      }
394fcaf7f86SDimitry Andric      module ranges_iterator_concept         { private header "__algorithm/ranges_iterator_concept.h" }
395bdd1243dSDimitry Andric      module ranges_lexicographical_compare {
396bdd1243dSDimitry Andric        private header "__algorithm/ranges_lexicographical_compare.h"
397bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
398bdd1243dSDimitry Andric      }
399bdd1243dSDimitry Andric      module ranges_lower_bound {
400bdd1243dSDimitry Andric        private header "__algorithm/ranges_lower_bound.h"
401bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
402bdd1243dSDimitry Andric      }
403bdd1243dSDimitry Andric      module ranges_make_heap {
404bdd1243dSDimitry Andric        private header "__algorithm/ranges_make_heap.h"
405bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
406bdd1243dSDimitry Andric      }
407bdd1243dSDimitry Andric      module ranges_max {
408bdd1243dSDimitry Andric        private header "__algorithm/ranges_max.h"
409bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
410bdd1243dSDimitry Andric      }
411bdd1243dSDimitry Andric      module ranges_max_element {
412bdd1243dSDimitry Andric        private header "__algorithm/ranges_max_element.h"
413bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
414bdd1243dSDimitry Andric      }
415bdd1243dSDimitry Andric      module ranges_merge {
416bdd1243dSDimitry Andric        private header "__algorithm/ranges_merge.h"
417bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_out_result
418bdd1243dSDimitry Andric      }
419bdd1243dSDimitry Andric      module ranges_min {
420bdd1243dSDimitry Andric        private header "__algorithm/ranges_min.h"
421bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
422bdd1243dSDimitry Andric      }
423bdd1243dSDimitry Andric      module ranges_min_element {
424bdd1243dSDimitry Andric        private header "__algorithm/ranges_min_element.h"
425bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
426bdd1243dSDimitry Andric      }
427bdd1243dSDimitry Andric      module ranges_minmax {
428bdd1243dSDimitry Andric        private header "__algorithm/ranges_minmax.h"
429bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
430bdd1243dSDimitry Andric        export algorithm.__algorithm.min_max_result
431bdd1243dSDimitry Andric      }
432bdd1243dSDimitry Andric      module ranges_minmax_element {
433bdd1243dSDimitry Andric        private header "__algorithm/ranges_minmax_element.h"
434bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
435bdd1243dSDimitry Andric        export algorithm.__algorithm.min_max_result
436bdd1243dSDimitry Andric      }
437bdd1243dSDimitry Andric      module ranges_mismatch {
438bdd1243dSDimitry Andric        private header "__algorithm/ranges_mismatch.h"
439bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_result
440bdd1243dSDimitry Andric      }
441bdd1243dSDimitry Andric      module ranges_move {
442bdd1243dSDimitry Andric        private header "__algorithm/ranges_move.h"
443bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
444bdd1243dSDimitry Andric      }
445bdd1243dSDimitry Andric      module ranges_move_backward {
446bdd1243dSDimitry Andric        private header "__algorithm/ranges_move_backward.h"
447bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
448bdd1243dSDimitry Andric      }
449bdd1243dSDimitry Andric      module ranges_next_permutation {
450bdd1243dSDimitry Andric        private header "__algorithm/ranges_next_permutation.h"
451bdd1243dSDimitry Andric        export algorithm.__algorithm.in_found_result
452bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
453bdd1243dSDimitry Andric      }
45481ad6265SDimitry Andric      module ranges_none_of                  { private header "__algorithm/ranges_none_of.h" }
455bdd1243dSDimitry Andric      module ranges_nth_element {
456bdd1243dSDimitry Andric        private header "__algorithm/ranges_nth_element.h"
457bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
458bdd1243dSDimitry Andric      }
459bdd1243dSDimitry Andric      module ranges_partial_sort {
460bdd1243dSDimitry Andric        private header "__algorithm/ranges_partial_sort.h"
461bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
462bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
463bdd1243dSDimitry Andric      }
464bdd1243dSDimitry Andric      module ranges_partial_sort_copy {
465bdd1243dSDimitry Andric        private header "__algorithm/ranges_partial_sort_copy.h"
466bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_out_result
467bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
468bdd1243dSDimitry Andric      }
469753f127fSDimitry Andric      module ranges_partition                { private header "__algorithm/ranges_partition.h" }
470753f127fSDimitry Andric      module ranges_partition_copy           { private header "__algorithm/ranges_partition_copy.h" }
471753f127fSDimitry Andric      module ranges_partition_point          { private header "__algorithm/ranges_partition_point.h" }
472bdd1243dSDimitry Andric      module ranges_pop_heap {
473bdd1243dSDimitry Andric        private header "__algorithm/ranges_pop_heap.h"
474bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
475bdd1243dSDimitry Andric      }
476bdd1243dSDimitry Andric      module ranges_prev_permutation {
477bdd1243dSDimitry Andric        private header "__algorithm/ranges_prev_permutation.h"
478bdd1243dSDimitry Andric        export algorithm.__algorithm.in_found_result
479bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
480bdd1243dSDimitry Andric      }
481bdd1243dSDimitry Andric      module ranges_push_heap {
482bdd1243dSDimitry Andric        private header "__algorithm/ranges_push_heap.h"
483bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
484bdd1243dSDimitry Andric      }
485753f127fSDimitry Andric      module ranges_remove                   { private header "__algorithm/ranges_remove.h" }
486bdd1243dSDimitry Andric      module ranges_remove_copy {
487bdd1243dSDimitry Andric        private header "__algorithm/ranges_remove_copy.h"
488bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
489bdd1243dSDimitry Andric      }
490bdd1243dSDimitry Andric      module ranges_remove_copy_if {
491bdd1243dSDimitry Andric        private header "__algorithm/ranges_remove_copy_if.h"
492bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
493bdd1243dSDimitry Andric      }
494753f127fSDimitry Andric      module ranges_remove_if                { private header "__algorithm/ranges_remove_if.h" }
49581ad6265SDimitry Andric      module ranges_replace                  { private header "__algorithm/ranges_replace.h" }
496bdd1243dSDimitry Andric      module ranges_replace_copy {
497bdd1243dSDimitry Andric        private header "__algorithm/ranges_replace_copy.h"
498bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
499bdd1243dSDimitry Andric      }
500bdd1243dSDimitry Andric      module ranges_replace_copy_if {
501bdd1243dSDimitry Andric        private header "__algorithm/ranges_replace_copy_if.h"
502bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
503bdd1243dSDimitry Andric      }
50481ad6265SDimitry Andric      module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
50581ad6265SDimitry Andric      module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
506bdd1243dSDimitry Andric      module ranges_reverse_copy {
507bdd1243dSDimitry Andric        private header "__algorithm/ranges_reverse_copy.h"
508bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
509bdd1243dSDimitry Andric      }
5106246ae0bSDimitry Andric      module ranges_rotate                   { private header "__algorithm/ranges_rotate.h" }
511bdd1243dSDimitry Andric      module ranges_rotate_copy {
512bdd1243dSDimitry Andric        private header "__algorithm/ranges_rotate_copy.h"
513bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
514bdd1243dSDimitry Andric      }
5156246ae0bSDimitry Andric      module ranges_sample                   { private header "__algorithm/ranges_sample.h" }
516753f127fSDimitry Andric      module ranges_search                   { private header "__algorithm/ranges_search.h" }
517753f127fSDimitry Andric      module ranges_search_n                 { private header "__algorithm/ranges_search_n.h" }
518bdd1243dSDimitry Andric      module ranges_set_difference {
519bdd1243dSDimitry Andric        private header "__algorithm/ranges_set_difference.h"
520bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
521bdd1243dSDimitry Andric      }
522bdd1243dSDimitry Andric      module ranges_set_intersection {
523bdd1243dSDimitry Andric        private header "__algorithm/ranges_set_intersection.h"
524bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_out_result
525bdd1243dSDimitry Andric      }
526bdd1243dSDimitry Andric      module ranges_set_symmetric_difference {
527bdd1243dSDimitry Andric        private header "__algorithm/ranges_set_symmetric_difference.h"
528bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_out_result
529bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
530bdd1243dSDimitry Andric      }
531bdd1243dSDimitry Andric      module ranges_set_union {
532bdd1243dSDimitry Andric        private header "__algorithm/ranges_set_union.h"
533bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_out_result
534bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
535bdd1243dSDimitry Andric      }
536753f127fSDimitry Andric      module ranges_shuffle                  { private header "__algorithm/ranges_shuffle.h" }
537bdd1243dSDimitry Andric      module ranges_sort {
538bdd1243dSDimitry Andric        private header "__algorithm/ranges_sort.h"
539bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
540bdd1243dSDimitry Andric      }
541bdd1243dSDimitry Andric      module ranges_sort_heap {
542bdd1243dSDimitry Andric        private header "__algorithm/ranges_sort_heap.h"
543bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
544bdd1243dSDimitry Andric      }
545753f127fSDimitry Andric      module ranges_stable_partition         { private header "__algorithm/ranges_stable_partition.h" }
546bdd1243dSDimitry Andric      module ranges_stable_sort {
547bdd1243dSDimitry Andric        private header "__algorithm/ranges_stable_sort.h"
548bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
549bdd1243dSDimitry Andric      }
550bdd1243dSDimitry Andric      module ranges_swap_ranges {
551bdd1243dSDimitry Andric        private header "__algorithm/ranges_swap_ranges.h"
552bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_result
553bdd1243dSDimitry Andric      }
554bdd1243dSDimitry Andric      module ranges_transform {
555bdd1243dSDimitry Andric        private header "__algorithm/ranges_transform.h"
556bdd1243dSDimitry Andric        export algorithm.__algorithm.in_in_out_result
557bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
558bdd1243dSDimitry Andric      }
5596246ae0bSDimitry Andric      module uniform_random_bit_generator_adaptor {
5606246ae0bSDimitry Andric        private header "__algorithm/uniform_random_bit_generator_adaptor.h"
5616246ae0bSDimitry Andric      }
562753f127fSDimitry Andric      module ranges_unique                   { private header "__algorithm/ranges_unique.h" }
563bdd1243dSDimitry Andric      module ranges_unique_copy {
564bdd1243dSDimitry Andric        private header "__algorithm/ranges_unique_copy.h"
565bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
566bdd1243dSDimitry Andric      }
567bdd1243dSDimitry Andric      module ranges_upper_bound {
568bdd1243dSDimitry Andric        private header "__algorithm/ranges_upper_bound.h"
569bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
570bdd1243dSDimitry Andric      }
57181ad6265SDimitry Andric      module remove                          { private header "__algorithm/remove.h" }
57281ad6265SDimitry Andric      module remove_copy                     { private header "__algorithm/remove_copy.h" }
57381ad6265SDimitry Andric      module remove_copy_if                  { private header "__algorithm/remove_copy_if.h" }
57481ad6265SDimitry Andric      module remove_if                       { private header "__algorithm/remove_if.h" }
57581ad6265SDimitry Andric      module replace                         { private header "__algorithm/replace.h" }
57681ad6265SDimitry Andric      module replace_copy                    { private header "__algorithm/replace_copy.h" }
57781ad6265SDimitry Andric      module replace_copy_if                 { private header "__algorithm/replace_copy_if.h" }
57881ad6265SDimitry Andric      module replace_if                      { private header "__algorithm/replace_if.h" }
57981ad6265SDimitry Andric      module reverse                         { private header "__algorithm/reverse.h" }
58081ad6265SDimitry Andric      module reverse_copy                    { private header "__algorithm/reverse_copy.h" }
58181ad6265SDimitry Andric      module rotate                          { private header "__algorithm/rotate.h" }
58281ad6265SDimitry Andric      module rotate_copy                     { private header "__algorithm/rotate_copy.h" }
58381ad6265SDimitry Andric      module sample                          { private header "__algorithm/sample.h" }
58481ad6265SDimitry Andric      module search                          { private header "__algorithm/search.h" }
58581ad6265SDimitry Andric      module search_n                        { private header "__algorithm/search_n.h" }
58681ad6265SDimitry Andric      module set_difference                  { private header "__algorithm/set_difference.h" }
58781ad6265SDimitry Andric      module set_intersection                { private header "__algorithm/set_intersection.h" }
58881ad6265SDimitry Andric      module set_symmetric_difference        { private header "__algorithm/set_symmetric_difference.h" }
58981ad6265SDimitry Andric      module set_union                       { private header "__algorithm/set_union.h" }
59081ad6265SDimitry Andric      module shift_left                      { private header "__algorithm/shift_left.h" }
59181ad6265SDimitry Andric      module shift_right                     { private header "__algorithm/shift_right.h" }
59281ad6265SDimitry Andric      module shuffle                         { private header "__algorithm/shuffle.h" }
59381ad6265SDimitry Andric      module sift_down                       { private header "__algorithm/sift_down.h" }
59481ad6265SDimitry Andric      module sort                            { private header "__algorithm/sort.h" }
59581ad6265SDimitry Andric      module sort_heap                       { private header "__algorithm/sort_heap.h" }
59681ad6265SDimitry Andric      module stable_partition                { private header "__algorithm/stable_partition.h" }
59781ad6265SDimitry Andric      module stable_sort                     { private header "__algorithm/stable_sort.h" }
59881ad6265SDimitry Andric      module swap_ranges                     { private header "__algorithm/swap_ranges.h" }
59981ad6265SDimitry Andric      module transform                       { private header "__algorithm/transform.h" }
60081ad6265SDimitry Andric      module unique                          { private header "__algorithm/unique.h" }
60181ad6265SDimitry Andric      module unique_copy                     { private header "__algorithm/unique_copy.h" }
60281ad6265SDimitry Andric      module unwrap_iter                     { private header "__algorithm/unwrap_iter.h" }
6036246ae0bSDimitry Andric      module unwrap_range                    { private header "__algorithm/unwrap_range.h" }
60481ad6265SDimitry Andric      module upper_bound                     { private header "__algorithm/upper_bound.h" }
60581ad6265SDimitry Andric    }
60681ad6265SDimitry Andric  }
60781ad6265SDimitry Andric  module any {
60881ad6265SDimitry Andric    header "any"
60981ad6265SDimitry Andric    export *
61081ad6265SDimitry Andric  }
61181ad6265SDimitry Andric  module array {
61281ad6265SDimitry Andric    header "array"
61381ad6265SDimitry Andric    export initializer_list
61481ad6265SDimitry Andric    export *
615bdd1243dSDimitry Andric
616bdd1243dSDimitry Andric    module array_fwd { private header "__fwd/array.h" }
61781ad6265SDimitry Andric  }
61881ad6265SDimitry Andric  module atomic {
61981ad6265SDimitry Andric    header "atomic"
62081ad6265SDimitry Andric    export *
62181ad6265SDimitry Andric  }
62281ad6265SDimitry Andric  module barrier {
62381ad6265SDimitry Andric
62481ad6265SDimitry Andric    header "barrier"
62581ad6265SDimitry Andric    export *
62681ad6265SDimitry Andric  }
62781ad6265SDimitry Andric  module bit {
62881ad6265SDimitry Andric    header "bit"
62981ad6265SDimitry Andric    export *
63081ad6265SDimitry Andric
63181ad6265SDimitry Andric    module __bit {
63281ad6265SDimitry Andric      module bit_cast       { private header "__bit/bit_cast.h" }
633bdd1243dSDimitry Andric      module bit_ceil       { private header "__bit/bit_ceil.h" }
634bdd1243dSDimitry Andric      module bit_floor      { private header "__bit/bit_floor.h" }
635bdd1243dSDimitry Andric      module bit_log2       { private header "__bit/bit_log2.h" }
636bdd1243dSDimitry Andric      module bit_width      { private header "__bit/bit_width.h" }
637bdd1243dSDimitry Andric      module blsr           { private header "__bit/blsr.h" }
63881ad6265SDimitry Andric      module byteswap       { private header "__bit/byteswap.h" }
639bdd1243dSDimitry Andric      module countl         { private header "__bit/countl.h" }
640bdd1243dSDimitry Andric      module countr         { private header "__bit/countr.h" }
641bdd1243dSDimitry Andric      module endian         { private header "__bit/endian.h" }
642bdd1243dSDimitry Andric      module has_single_bit { private header "__bit/has_single_bit.h" }
643bdd1243dSDimitry Andric      module popcount       { private header "__bit/popcount.h" }
644bdd1243dSDimitry Andric      module rotate         { private header "__bit/rotate.h" }
64581ad6265SDimitry Andric    }
64681ad6265SDimitry Andric  }
64781ad6265SDimitry Andric  module bitset {
64881ad6265SDimitry Andric    header "bitset"
64981ad6265SDimitry Andric    export string
65081ad6265SDimitry Andric    export iosfwd
65181ad6265SDimitry Andric    export *
65281ad6265SDimitry Andric  }
65381ad6265SDimitry Andric  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
65481ad6265SDimitry Andric  module charconv {
65581ad6265SDimitry Andric    header "charconv"
65681ad6265SDimitry Andric    export *
65781ad6265SDimitry Andric
65881ad6265SDimitry Andric    module __charconv {
65981ad6265SDimitry Andric      module chars_format      { private header "__charconv/chars_format.h" }
66081ad6265SDimitry Andric      module from_chars_result { private header "__charconv/from_chars_result.h" }
66181ad6265SDimitry Andric      module tables            { private header "__charconv/tables.h" }
66281ad6265SDimitry Andric      module to_chars_base_10  { private header "__charconv/to_chars_base_10.h" }
66381ad6265SDimitry Andric      module to_chars_result   { private header "__charconv/to_chars_result.h" }
66481ad6265SDimitry Andric    }
66581ad6265SDimitry Andric
66681ad6265SDimitry Andric  }
66781ad6265SDimitry Andric  module chrono {
66881ad6265SDimitry Andric    header "chrono"
66981ad6265SDimitry Andric    export *
67081ad6265SDimitry Andric
67181ad6265SDimitry Andric    module __chrono {
67281ad6265SDimitry Andric      module calendar               { private header "__chrono/calendar.h" }
67381ad6265SDimitry Andric      module convert_to_timespec    { private header "__chrono/convert_to_timespec.h" }
674bdd1243dSDimitry Andric      module convert_to_tm          { private header "__chrono/convert_to_tm.h" }
67581ad6265SDimitry Andric      module day                    { private header "__chrono/day.h" }
67681ad6265SDimitry Andric      module duration               { private header "__chrono/duration.h" }
67781ad6265SDimitry Andric      module file_clock             { private header "__chrono/file_clock.h" }
678bdd1243dSDimitry Andric      module formatter              {
679bdd1243dSDimitry Andric
680bdd1243dSDimitry Andric        private header "__chrono/formatter.h"
681bdd1243dSDimitry Andric      }
68281ad6265SDimitry Andric      module hh_mm_ss               { private header "__chrono/hh_mm_ss.h" }
68381ad6265SDimitry Andric      module high_resolution_clock  {
68481ad6265SDimitry Andric        private header "__chrono/high_resolution_clock.h"
68581ad6265SDimitry Andric        export steady_clock
68681ad6265SDimitry Andric        export system_clock
687bdd1243dSDimitry Andric        export time_point
68881ad6265SDimitry Andric      }
68981ad6265SDimitry Andric      module literals               { private header "__chrono/literals.h" }
69081ad6265SDimitry Andric      module month                  { private header "__chrono/month.h" }
69181ad6265SDimitry Andric      module month_weekday          { private header "__chrono/month_weekday.h" }
69281ad6265SDimitry Andric      module monthday               { private header "__chrono/monthday.h" }
693bdd1243dSDimitry Andric      module ostream                {
694bdd1243dSDimitry Andric
695bdd1243dSDimitry Andric        private header "__chrono/ostream.h"
696bdd1243dSDimitry Andric      }
697bdd1243dSDimitry Andric      module parser_std_format_spec {
698bdd1243dSDimitry Andric
699bdd1243dSDimitry Andric        private header "__chrono/parser_std_format_spec.h"
700bdd1243dSDimitry Andric      }
701bdd1243dSDimitry Andric      module statically_widen       { private header "__chrono/statically_widen.h" }
70281ad6265SDimitry Andric      module steady_clock           { private header "__chrono/steady_clock.h" }
70381ad6265SDimitry Andric      module system_clock           { private header "__chrono/system_clock.h" }
70481ad6265SDimitry Andric      module time_point             { private header "__chrono/time_point.h" }
70581ad6265SDimitry Andric      module weekday                { private header "__chrono/weekday.h" }
70681ad6265SDimitry Andric      module year                   { private header "__chrono/year.h" }
70781ad6265SDimitry Andric      module year_month             { private header "__chrono/year_month.h" }
70881ad6265SDimitry Andric      module year_month_day         { private header "__chrono/year_month_day.h" }
70981ad6265SDimitry Andric      module year_month_weekday     { private header "__chrono/year_month_weekday.h" }
71081ad6265SDimitry Andric    }
71181ad6265SDimitry Andric  }
71281ad6265SDimitry Andric  module codecvt {
71381ad6265SDimitry Andric
71481ad6265SDimitry Andric    header "codecvt"
71581ad6265SDimitry Andric    export *
71681ad6265SDimitry Andric  }
71781ad6265SDimitry Andric  module compare {
71881ad6265SDimitry Andric    header "compare"
71981ad6265SDimitry Andric    export *
72081ad6265SDimitry Andric
72181ad6265SDimitry Andric    module __compare {
72281ad6265SDimitry Andric      module common_comparison_category     { private header "__compare/common_comparison_category.h" }
72381ad6265SDimitry Andric      module compare_partial_order_fallback { private header "__compare/compare_partial_order_fallback.h" }
72481ad6265SDimitry Andric      module compare_strong_order_fallback  { private header "__compare/compare_strong_order_fallback.h" }
72581ad6265SDimitry Andric      module compare_three_way              { private header "__compare/compare_three_way.h" }
72681ad6265SDimitry Andric      module compare_three_way_result       { private header "__compare/compare_three_way_result.h" }
72781ad6265SDimitry Andric      module compare_weak_order_fallback    { private header "__compare/compare_weak_order_fallback.h" }
72881ad6265SDimitry Andric      module is_eq                          { private header "__compare/is_eq.h" }
72981ad6265SDimitry Andric      module ordering                       { private header "__compare/ordering.h" }
73081ad6265SDimitry Andric      module partial_order                  { private header "__compare/partial_order.h" }
73181ad6265SDimitry Andric      module strong_order                   { private header "__compare/strong_order.h" }
73281ad6265SDimitry Andric      module synth_three_way                { private header "__compare/synth_three_way.h" }
73381ad6265SDimitry Andric      module three_way_comparable           { private header "__compare/three_way_comparable.h" }
73481ad6265SDimitry Andric      module weak_order                     { private header "__compare/weak_order.h" }
73581ad6265SDimitry Andric    }
73681ad6265SDimitry Andric  }
73781ad6265SDimitry Andric  module complex {
73881ad6265SDimitry Andric    header "complex"
73981ad6265SDimitry Andric    export *
74081ad6265SDimitry Andric  }
74181ad6265SDimitry Andric  module concepts {
74281ad6265SDimitry Andric    header "concepts"
74381ad6265SDimitry Andric    export *
74481ad6265SDimitry Andric
74581ad6265SDimitry Andric    module __concepts {
74681ad6265SDimitry Andric      module arithmetic                 { private header "__concepts/arithmetic.h" }
74781ad6265SDimitry Andric      module assignable                 { private header "__concepts/assignable.h" }
74881ad6265SDimitry Andric      module boolean_testable           { private header "__concepts/boolean_testable.h" }
74981ad6265SDimitry Andric      module class_or_enum              { private header "__concepts/class_or_enum.h" }
75081ad6265SDimitry Andric      module common_reference_with      { private header "__concepts/common_reference_with.h" }
75181ad6265SDimitry Andric      module common_with                { private header "__concepts/common_with.h" }
75281ad6265SDimitry Andric      module constructible              { private header "__concepts/constructible.h" }
75381ad6265SDimitry Andric      module convertible_to             { private header "__concepts/convertible_to.h" }
75481ad6265SDimitry Andric      module copyable                   { private header "__concepts/copyable.h" }
75581ad6265SDimitry Andric      module derived_from               { private header "__concepts/derived_from.h" }
75681ad6265SDimitry Andric      module destructible               { private header "__concepts/destructible.h" }
75781ad6265SDimitry Andric      module different_from             { private header "__concepts/different_from.h" }
75881ad6265SDimitry Andric      module equality_comparable        { private header "__concepts/equality_comparable.h" }
75981ad6265SDimitry Andric      module invocable                  { private header "__concepts/invocable.h" }
76081ad6265SDimitry Andric      module movable                    { private header "__concepts/movable.h" }
76181ad6265SDimitry Andric      module predicate                  { private header "__concepts/predicate.h" }
76281ad6265SDimitry Andric      module regular                    { private header "__concepts/regular.h" }
76381ad6265SDimitry Andric      module relation                   { private header "__concepts/relation.h" }
76481ad6265SDimitry Andric      module same_as                    { private header "__concepts/same_as.h" }
76581ad6265SDimitry Andric      module semiregular                { private header "__concepts/semiregular.h" }
76681ad6265SDimitry Andric      module swappable                  { private header "__concepts/swappable.h" }
76781ad6265SDimitry Andric      module totally_ordered            { private header "__concepts/totally_ordered.h" }
76881ad6265SDimitry Andric    }
76981ad6265SDimitry Andric  }
77081ad6265SDimitry Andric  module condition_variable {
77181ad6265SDimitry Andric    header "condition_variable"
77281ad6265SDimitry Andric    export *
77381ad6265SDimitry Andric  }
77481ad6265SDimitry Andric  module coroutine {
77581ad6265SDimitry Andric    requires coroutines
77681ad6265SDimitry Andric    header "coroutine"
77781ad6265SDimitry Andric    export compare
77881ad6265SDimitry Andric    export *
77981ad6265SDimitry Andric
78081ad6265SDimitry Andric    module __coroutine {
78181ad6265SDimitry Andric      module coroutine_handle           { private header "__coroutine/coroutine_handle.h" }
78281ad6265SDimitry Andric      module coroutine_traits           { private header "__coroutine/coroutine_traits.h" }
78381ad6265SDimitry Andric      module noop_coroutine_handle      { private header "__coroutine/noop_coroutine_handle.h" }
78481ad6265SDimitry Andric      module trivial_awaitables         { private header "__coroutine/trivial_awaitables.h" }
78581ad6265SDimitry Andric    }
78681ad6265SDimitry Andric  }
78781ad6265SDimitry Andric  module deque {
78881ad6265SDimitry Andric    header "deque"
78981ad6265SDimitry Andric    export initializer_list
79081ad6265SDimitry Andric    export *
79181ad6265SDimitry Andric  }
79281ad6265SDimitry Andric  module exception {
79381ad6265SDimitry Andric    header "exception"
79481ad6265SDimitry Andric    export *
79581ad6265SDimitry Andric  }
79681ad6265SDimitry Andric  module execution {
79781ad6265SDimitry Andric    header "execution"
79881ad6265SDimitry Andric    export *
79981ad6265SDimitry Andric  }
800bdd1243dSDimitry Andric  module expected {
801bdd1243dSDimitry Andric    header "expected"
802bdd1243dSDimitry Andric    export *
803bdd1243dSDimitry Andric
804bdd1243dSDimitry Andric    module __expected {
805bdd1243dSDimitry Andric      module bad_expected_access          { private header "__expected/bad_expected_access.h" }
806bdd1243dSDimitry Andric      module expected                     { private header "__expected/expected.h" }
807bdd1243dSDimitry Andric      module unexpect                     { private header "__expected/unexpect.h" }
808bdd1243dSDimitry Andric      module unexpected                   { private header "__expected/unexpected.h" }
809bdd1243dSDimitry Andric    }
810bdd1243dSDimitry Andric  }
81181ad6265SDimitry Andric  module filesystem {
81281ad6265SDimitry Andric
81381ad6265SDimitry Andric    header "filesystem"
81481ad6265SDimitry Andric    export *
81581ad6265SDimitry Andric
81681ad6265SDimitry Andric    module __filesystem {
81781ad6265SDimitry Andric      module copy_options                 { private header "__filesystem/copy_options.h" }
81881ad6265SDimitry Andric      module directory_entry              { private header "__filesystem/directory_entry.h" }
81981ad6265SDimitry Andric      module directory_iterator           { private header "__filesystem/directory_iterator.h" }
82081ad6265SDimitry Andric      module directory_options            { private header "__filesystem/directory_options.h" }
82181ad6265SDimitry Andric      module file_status                  { private header "__filesystem/file_status.h" }
82281ad6265SDimitry Andric      module file_time_type               { private header "__filesystem/file_time_type.h" }
82381ad6265SDimitry Andric      module file_type                    { private header "__filesystem/file_type.h" }
82481ad6265SDimitry Andric      module filesystem_error             { private header "__filesystem/filesystem_error.h" }
82581ad6265SDimitry Andric      module operations                   { private header "__filesystem/operations.h" }
82681ad6265SDimitry Andric      module path                         { private header "__filesystem/path.h" }
82781ad6265SDimitry Andric      module path_iterator                { private header "__filesystem/path_iterator.h" }
82881ad6265SDimitry Andric      module perm_options                 { private header "__filesystem/perm_options.h" }
82981ad6265SDimitry Andric      module perms                        { private header "__filesystem/perms.h" }
83081ad6265SDimitry Andric      module recursive_directory_iterator { private header "__filesystem/recursive_directory_iterator.h" }
83181ad6265SDimitry Andric      module space_info                   { private header "__filesystem/space_info.h" }
83281ad6265SDimitry Andric      module u8path                       { private header "__filesystem/u8path.h" }
83381ad6265SDimitry Andric    }
83481ad6265SDimitry Andric  }
83581ad6265SDimitry Andric  module format {
83681ad6265SDimitry Andric    header "format"
83781ad6265SDimitry Andric    export *
83881ad6265SDimitry Andric
83981ad6265SDimitry Andric    module __format {
84081ad6265SDimitry Andric      module buffer                          { private header "__format/buffer.h" }
84181ad6265SDimitry Andric      module concepts                        { private header "__format/concepts.h" }
842bdd1243dSDimitry Andric      module container_adaptor               { private header "__format/container_adaptor.h" }
84381ad6265SDimitry Andric      module enable_insertable               { private header "__format/enable_insertable.h" }
844bdd1243dSDimitry Andric      module escaped_output_table            { private header "__format/escaped_output_table.h" }
845fcaf7f86SDimitry Andric      module extended_grapheme_cluster_table { private header "__format/extended_grapheme_cluster_table.h" }
84681ad6265SDimitry Andric      module format_arg                      { private header "__format/format_arg.h" }
84781ad6265SDimitry Andric      module format_arg_store                { private header "__format/format_arg_store.h" }
84881ad6265SDimitry Andric      module format_args                     { private header "__format/format_args.h" }
84981ad6265SDimitry Andric      module format_context {
85081ad6265SDimitry Andric        private header "__format/format_context.h"
85181ad6265SDimitry Andric        export optional
85281ad6265SDimitry Andric        export locale
85381ad6265SDimitry Andric      }
85481ad6265SDimitry Andric      module format_error                    { private header "__format/format_error.h" }
855bdd1243dSDimitry Andric      module format_functions                { private header "__format/format_functions.h" }
85681ad6265SDimitry Andric      module format_fwd                      { private header "__format/format_fwd.h" }
85781ad6265SDimitry Andric      module format_parse_context            { private header "__format/format_parse_context.h" }
85881ad6265SDimitry Andric      module format_string                   { private header "__format/format_string.h" }
859bdd1243dSDimitry Andric      module format_to_n_result {
860bdd1243dSDimitry Andric        private header "__format/format_to_n_result.h"
861bdd1243dSDimitry Andric        export iterator.__iterator.incrementable_traits
862bdd1243dSDimitry Andric      }
86381ad6265SDimitry Andric      module formatter                       { private header "__format/formatter.h" }
86481ad6265SDimitry Andric      module formatter_bool                  { private header "__format/formatter_bool.h" }
86581ad6265SDimitry Andric      module formatter_char                  { private header "__format/formatter_char.h" }
86681ad6265SDimitry Andric      module formatter_floating_point        { private header "__format/formatter_floating_point.h" }
86781ad6265SDimitry Andric      module formatter_integer               { private header "__format/formatter_integer.h" }
86881ad6265SDimitry Andric      module formatter_integral              { private header "__format/formatter_integral.h" }
86981ad6265SDimitry Andric      module formatter_output                { private header "__format/formatter_output.h" }
87081ad6265SDimitry Andric      module formatter_pointer               { private header "__format/formatter_pointer.h" }
87181ad6265SDimitry Andric      module formatter_string                { private header "__format/formatter_string.h" }
872bdd1243dSDimitry Andric      module formatter_tuple                 { private header "__format/formatter_tuple.h" }
87381ad6265SDimitry Andric      module parser_std_format_spec          { private header "__format/parser_std_format_spec.h" }
874bdd1243dSDimitry Andric      module range_default_formatter         { private header "__format/range_default_formatter.h" }
875bdd1243dSDimitry Andric      module range_formatter                 { private header "__format/range_formatter.h" }
876fcaf7f86SDimitry Andric      module unicode                         { private header "__format/unicode.h" }
87781ad6265SDimitry Andric    }
87881ad6265SDimitry Andric  }
87981ad6265SDimitry Andric  module forward_list {
88081ad6265SDimitry Andric    header "forward_list"
88181ad6265SDimitry Andric    export initializer_list
88281ad6265SDimitry Andric    export *
88381ad6265SDimitry Andric  }
88481ad6265SDimitry Andric  module fstream {
88581ad6265SDimitry Andric
886bdd1243dSDimitry Andric
88781ad6265SDimitry Andric    header "fstream"
88881ad6265SDimitry Andric    export *
88981ad6265SDimitry Andric  }
89081ad6265SDimitry Andric  module functional {
89181ad6265SDimitry Andric    header "functional"
89281ad6265SDimitry Andric    export *
89381ad6265SDimitry Andric
89481ad6265SDimitry Andric    module __functional {
89581ad6265SDimitry Andric      module binary_function            { private header "__functional/binary_function.h" }
89681ad6265SDimitry Andric      module binary_negate              { private header "__functional/binary_negate.h" }
89781ad6265SDimitry Andric      module bind                       { private header "__functional/bind.h" }
89881ad6265SDimitry Andric      module bind_back                  { private header "__functional/bind_back.h" }
89981ad6265SDimitry Andric      module bind_front                 { private header "__functional/bind_front.h" }
90081ad6265SDimitry Andric      module binder1st                  { private header "__functional/binder1st.h" }
90181ad6265SDimitry Andric      module binder2nd                  { private header "__functional/binder2nd.h" }
90281ad6265SDimitry Andric      module boyer_moore_searcher       { private header "__functional/boyer_moore_searcher.h" }
90381ad6265SDimitry Andric      module compose                    { private header "__functional/compose.h" }
90481ad6265SDimitry Andric      module default_searcher           { private header "__functional/default_searcher.h" }
90581ad6265SDimitry Andric      module function                   { private header "__functional/function.h" }
90681ad6265SDimitry Andric      module hash                       { private header "__functional/hash.h" }
907bdd1243dSDimitry Andric      module hash_fwd                   { private header "__fwd/hash.h" }
90881ad6265SDimitry Andric      module identity                   { private header "__functional/identity.h" }
909bdd1243dSDimitry Andric      module invoke                     {
910bdd1243dSDimitry Andric        private header "__functional/invoke.h"
911bdd1243dSDimitry Andric        export type_traits
912bdd1243dSDimitry Andric      }
91381ad6265SDimitry Andric      module is_transparent             { private header "__functional/is_transparent.h" }
91481ad6265SDimitry Andric      module mem_fn                     { private header "__functional/mem_fn.h" }
91581ad6265SDimitry Andric      module mem_fun_ref                { private header "__functional/mem_fun_ref.h" }
91681ad6265SDimitry Andric      module not_fn                     { private header "__functional/not_fn.h" }
91781ad6265SDimitry Andric      module operations                 { private header "__functional/operations.h" }
91881ad6265SDimitry Andric      module perfect_forward            { private header "__functional/perfect_forward.h" }
91981ad6265SDimitry Andric      module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
92081ad6265SDimitry Andric      module pointer_to_unary_function  { private header "__functional/pointer_to_unary_function.h" }
92181ad6265SDimitry Andric      module ranges_operations          { private header "__functional/ranges_operations.h" }
92281ad6265SDimitry Andric      module reference_wrapper          { private header "__functional/reference_wrapper.h" }
92381ad6265SDimitry Andric      module unary_function             { private header "__functional/unary_function.h" }
92481ad6265SDimitry Andric      module unary_negate               { private header "__functional/unary_negate.h" }
92581ad6265SDimitry Andric      module unwrap_ref                 { private header "__functional/unwrap_ref.h" }
92681ad6265SDimitry Andric      module weak_result_type           { private header "__functional/weak_result_type.h" }
92781ad6265SDimitry Andric    }
92881ad6265SDimitry Andric  }
92981ad6265SDimitry Andric  module future {
93081ad6265SDimitry Andric
93181ad6265SDimitry Andric    header "future"
93281ad6265SDimitry Andric    export *
93381ad6265SDimitry Andric  }
93481ad6265SDimitry Andric  module initializer_list {
93581ad6265SDimitry Andric    header "initializer_list"
93681ad6265SDimitry Andric    export *
93781ad6265SDimitry Andric  }
93881ad6265SDimitry Andric  module iomanip {
93981ad6265SDimitry Andric
94081ad6265SDimitry Andric    header "iomanip"
94181ad6265SDimitry Andric    export *
94281ad6265SDimitry Andric  }
94381ad6265SDimitry Andric  module ios {
94481ad6265SDimitry Andric
94581ad6265SDimitry Andric    header "ios"
94681ad6265SDimitry Andric    export iosfwd
94781ad6265SDimitry Andric    export *
94881ad6265SDimitry Andric
94981ad6265SDimitry Andric    module __ios {
95081ad6265SDimitry Andric      module fpos { private header "__ios/fpos.h" }
95181ad6265SDimitry Andric    }
95281ad6265SDimitry Andric  }
95381ad6265SDimitry Andric  module iosfwd {
95481ad6265SDimitry Andric    header "iosfwd"
95581ad6265SDimitry Andric    export *
95681ad6265SDimitry Andric  }
95781ad6265SDimitry Andric  module iostream {
95881ad6265SDimitry Andric
95981ad6265SDimitry Andric    header "iostream"
96081ad6265SDimitry Andric    export ios
96181ad6265SDimitry Andric    export streambuf
96281ad6265SDimitry Andric    export istream
96381ad6265SDimitry Andric    export ostream
96481ad6265SDimitry Andric    export *
96581ad6265SDimitry Andric  }
96681ad6265SDimitry Andric  module istream {
96781ad6265SDimitry Andric
96881ad6265SDimitry Andric    header "istream"
96981ad6265SDimitry Andric    // FIXME: should re-export ios, streambuf?
97081ad6265SDimitry Andric    export *
97181ad6265SDimitry Andric  }
97281ad6265SDimitry Andric  module iterator {
97381ad6265SDimitry Andric    header "iterator"
97481ad6265SDimitry Andric    export *
97581ad6265SDimitry Andric
97681ad6265SDimitry Andric    module __iterator {
97781ad6265SDimitry Andric      module access                { private header "__iterator/access.h" }
97881ad6265SDimitry Andric      module advance               { private header "__iterator/advance.h" }
97981ad6265SDimitry Andric      module back_insert_iterator  { private header "__iterator/back_insert_iterator.h" }
98081ad6265SDimitry Andric      module bounded_iter          { private header "__iterator/bounded_iter.h" }
98181ad6265SDimitry Andric      module common_iterator       { private header "__iterator/common_iterator.h" }
98281ad6265SDimitry Andric      module concepts              { private header "__iterator/concepts.h" }
98381ad6265SDimitry Andric      module counted_iterator      { private header "__iterator/counted_iterator.h" }
98481ad6265SDimitry Andric      module data                  { private header "__iterator/data.h" }
98581ad6265SDimitry Andric      module default_sentinel      { private header "__iterator/default_sentinel.h" }
98681ad6265SDimitry Andric      module distance              { private header "__iterator/distance.h" }
98781ad6265SDimitry Andric      module empty                 { private header "__iterator/empty.h" }
98881ad6265SDimitry Andric      module erase_if_container    { private header "__iterator/erase_if_container.h" }
98981ad6265SDimitry Andric      module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
99081ad6265SDimitry Andric      module incrementable_traits  { private header "__iterator/incrementable_traits.h" }
99181ad6265SDimitry Andric      module indirectly_comparable { private header "__iterator/indirectly_comparable.h" }
99281ad6265SDimitry Andric      module insert_iterator       { private header "__iterator/insert_iterator.h" }
99381ad6265SDimitry Andric      module istream_iterator      { private header "__iterator/istream_iterator.h" }
99481ad6265SDimitry Andric      module istreambuf_iterator   { private header "__iterator/istreambuf_iterator.h" }
99581ad6265SDimitry Andric      module iter_move             { private header "__iterator/iter_move.h" }
99681ad6265SDimitry Andric      module iter_swap             { private header "__iterator/iter_swap.h" }
99781ad6265SDimitry Andric      module iterator              { private header "__iterator/iterator.h" }
99881ad6265SDimitry Andric      module iterator_traits       { private header "__iterator/iterator_traits.h" }
999bdd1243dSDimitry Andric      module iterator_with_data    { private header "__iterator/iterator_with_data.h" }
1000bdd1243dSDimitry Andric      module mergeable {
1001bdd1243dSDimitry Andric        private header "__iterator/mergeable.h"
1002bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
1003bdd1243dSDimitry Andric      }
100481ad6265SDimitry Andric      module move_iterator         { private header "__iterator/move_iterator.h" }
100581ad6265SDimitry Andric      module move_sentinel         { private header "__iterator/move_sentinel.h" }
100681ad6265SDimitry Andric      module next                  { private header "__iterator/next.h" }
100781ad6265SDimitry Andric      module ostream_iterator      { private header "__iterator/ostream_iterator.h" }
100881ad6265SDimitry Andric      module ostreambuf_iterator   {
100981ad6265SDimitry Andric        private header "__iterator/ostreambuf_iterator.h"
101081ad6265SDimitry Andric        export iosfwd
101181ad6265SDimitry Andric      }
101281ad6265SDimitry Andric      module permutable            { private header "__iterator/permutable.h" }
101381ad6265SDimitry Andric      module prev                  { private header "__iterator/prev.h" }
101481ad6265SDimitry Andric      module projected             { private header "__iterator/projected.h" }
101581ad6265SDimitry Andric      module readable_traits       { private header "__iterator/readable_traits.h" }
101681ad6265SDimitry Andric      module reverse_access        { private header "__iterator/reverse_access.h" }
101781ad6265SDimitry Andric      module reverse_iterator      { private header "__iterator/reverse_iterator.h" }
1018bdd1243dSDimitry Andric      module segmented_iterator    { private header "__iterator/segmented_iterator.h" }
101981ad6265SDimitry Andric      module size                  { private header "__iterator/size.h" }
1020bdd1243dSDimitry Andric      module sortable {
1021bdd1243dSDimitry Andric        private header "__iterator/sortable.h"
1022bdd1243dSDimitry Andric        export functional.__functional.ranges_operations
1023bdd1243dSDimitry Andric      }
102481ad6265SDimitry Andric      module unreachable_sentinel  { private header "__iterator/unreachable_sentinel.h" }
102581ad6265SDimitry Andric      module wrap_iter             { private header "__iterator/wrap_iter.h" }
102681ad6265SDimitry Andric    }
102781ad6265SDimitry Andric  }
102881ad6265SDimitry Andric  module latch {
102981ad6265SDimitry Andric
103081ad6265SDimitry Andric    header "latch"
103181ad6265SDimitry Andric    export *
103281ad6265SDimitry Andric  }
1033753f127fSDimitry Andric
1034753f127fSDimitry Andric  module __debug_utils {
1035753f127fSDimitry Andric    module randomize_range { private header "__debug_utils/randomize_range.h" }
1036753f127fSDimitry Andric  }
1037753f127fSDimitry Andric
103881ad6265SDimitry Andric  module limits {
103981ad6265SDimitry Andric    header "limits"
104081ad6265SDimitry Andric    export *
104181ad6265SDimitry Andric  }
104281ad6265SDimitry Andric  module list {
104381ad6265SDimitry Andric    header "list"
104481ad6265SDimitry Andric    export initializer_list
104581ad6265SDimitry Andric    export *
104681ad6265SDimitry Andric  }
104781ad6265SDimitry Andric  module locale {
104881ad6265SDimitry Andric
104981ad6265SDimitry Andric    header "locale"
105081ad6265SDimitry Andric    export *
105181ad6265SDimitry Andric  }
105281ad6265SDimitry Andric  module map {
105381ad6265SDimitry Andric    header "map"
105481ad6265SDimitry Andric    export initializer_list
105581ad6265SDimitry Andric    export *
105681ad6265SDimitry Andric  }
105781ad6265SDimitry Andric  module memory {
105881ad6265SDimitry Andric    header "memory"
105981ad6265SDimitry Andric    export *
106081ad6265SDimitry Andric
106181ad6265SDimitry Andric    module __memory {
106281ad6265SDimitry Andric      module addressof                       { private header "__memory/addressof.h" }
1063bdd1243dSDimitry Andric      module align                           { private header "__memory/align.h" }
106481ad6265SDimitry Andric      module allocate_at_least               { private header "__memory/allocate_at_least.h" }
106581ad6265SDimitry Andric      module allocation_guard                { private header "__memory/allocation_guard.h" }
106681ad6265SDimitry Andric      module allocator                       { private header "__memory/allocator.h" }
106781ad6265SDimitry Andric      module allocator_arg_t                 { private header "__memory/allocator_arg_t.h" }
1068bdd1243dSDimitry Andric      module allocator_destructor            { private header "__memory/allocator_destructor.h" }
106981ad6265SDimitry Andric      module allocator_traits                { private header "__memory/allocator_traits.h" }
107081ad6265SDimitry Andric      module assume_aligned                  { private header "__memory/assume_aligned.h" }
107181ad6265SDimitry Andric      module auto_ptr                        { private header "__memory/auto_ptr.h" }
1072bdd1243dSDimitry Andric      module builtin_new_allocator           { private header "__memory/builtin_new_allocator.h" }
107381ad6265SDimitry Andric      module compressed_pair                 { private header "__memory/compressed_pair.h" }
107481ad6265SDimitry Andric      module concepts                        { private header "__memory/concepts.h" }
107581ad6265SDimitry Andric      module construct_at                    { private header "__memory/construct_at.h" }
1076bdd1243dSDimitry Andric      module destruct_n                      { private header "__memory/destruct_n.h" }
107781ad6265SDimitry Andric      module pointer_traits                  { private header "__memory/pointer_traits.h" }
107881ad6265SDimitry Andric      module ranges_construct_at             { private header "__memory/ranges_construct_at.h" }
1079bdd1243dSDimitry Andric      module ranges_uninitialized_algorithms {
1080bdd1243dSDimitry Andric        private header "__memory/ranges_uninitialized_algorithms.h"
1081bdd1243dSDimitry Andric        export algorithm.__algorithm.in_out_result
1082bdd1243dSDimitry Andric      }
108381ad6265SDimitry Andric      module raw_storage_iterator            { private header "__memory/raw_storage_iterator.h" }
108481ad6265SDimitry Andric      module shared_ptr                      { private header "__memory/shared_ptr.h" }
10856246ae0bSDimitry Andric      module swap_allocator                  { private header "__memory/swap_allocator.h" }
1086bdd1243dSDimitry Andric      module temp_value                      { private header "__memory/temp_value.h" }
108781ad6265SDimitry Andric      module temporary_buffer                { private header "__memory/temporary_buffer.h" }
108881ad6265SDimitry Andric      module uninitialized_algorithms        { private header "__memory/uninitialized_algorithms.h" }
108981ad6265SDimitry Andric      module unique_ptr                      { private header "__memory/unique_ptr.h" }
109081ad6265SDimitry Andric      module uses_allocator                  { private header "__memory/uses_allocator.h" }
1091bdd1243dSDimitry Andric      module uses_allocator_construction     { private header "__memory/uses_allocator_construction.h" }
109281ad6265SDimitry Andric      module voidify                         { private header "__memory/voidify.h" }
109381ad6265SDimitry Andric    }
109481ad6265SDimitry Andric  }
1095bdd1243dSDimitry Andric  module memory_resource {
1096bdd1243dSDimitry Andric    header "memory_resource"
1097bdd1243dSDimitry Andric    export *
1098bdd1243dSDimitry Andric
1099bdd1243dSDimitry Andric    module __memory_resource {
1100bdd1243dSDimitry Andric      module memory_resource              { private header "__memory_resource/memory_resource.h" }
1101bdd1243dSDimitry Andric      module memory_resource_fwd          { private header "__fwd/memory_resource.h" }
1102bdd1243dSDimitry Andric      module monotonic_buffer_resource    { private header "__memory_resource/monotonic_buffer_resource.h" }
1103bdd1243dSDimitry Andric      module polymorphic_allocator        { private header "__memory_resource/polymorphic_allocator.h" }
1104bdd1243dSDimitry Andric      module pool_options                 { private header "__memory_resource/pool_options.h" }
1105bdd1243dSDimitry Andric      module synchronized_pool_resource   { private header "__memory_resource/synchronized_pool_resource.h" }
1106bdd1243dSDimitry Andric      module unsynchronized_pool_resource { private header "__memory_resource/unsynchronized_pool_resource.h" }
1107bdd1243dSDimitry Andric    }
1108bdd1243dSDimitry Andric  }
110981ad6265SDimitry Andric  module mutex {
111081ad6265SDimitry Andric
111181ad6265SDimitry Andric    header "mutex"
111281ad6265SDimitry Andric    export *
111381ad6265SDimitry Andric  }
111481ad6265SDimitry Andric  module new {
111581ad6265SDimitry Andric    header "new"
111681ad6265SDimitry Andric    export *
111781ad6265SDimitry Andric  }
111881ad6265SDimitry Andric  module numbers {
111981ad6265SDimitry Andric    header "numbers"
112081ad6265SDimitry Andric    export *
112181ad6265SDimitry Andric  }
112281ad6265SDimitry Andric  module numeric {
112381ad6265SDimitry Andric    header "numeric"
112481ad6265SDimitry Andric    export *
112581ad6265SDimitry Andric
112681ad6265SDimitry Andric    module __numeric {
112781ad6265SDimitry Andric      module accumulate               { private header "__numeric/accumulate.h" }
112881ad6265SDimitry Andric      module adjacent_difference      { private header "__numeric/adjacent_difference.h" }
112981ad6265SDimitry Andric      module exclusive_scan           { private header "__numeric/exclusive_scan.h" }
113081ad6265SDimitry Andric      module gcd_lcm                  { private header "__numeric/gcd_lcm.h" }
113181ad6265SDimitry Andric      module inclusive_scan           { private header "__numeric/inclusive_scan.h" }
113281ad6265SDimitry Andric      module inner_product            { private header "__numeric/inner_product.h" }
113381ad6265SDimitry Andric      module iota                     { private header "__numeric/iota.h" }
113481ad6265SDimitry Andric      module midpoint                 { private header "__numeric/midpoint.h" }
113581ad6265SDimitry Andric      module partial_sum              { private header "__numeric/partial_sum.h" }
113681ad6265SDimitry Andric      module reduce                   { private header "__numeric/reduce.h" }
113781ad6265SDimitry Andric      module transform_exclusive_scan { private header "__numeric/transform_exclusive_scan.h" }
113881ad6265SDimitry Andric      module transform_inclusive_scan { private header "__numeric/transform_inclusive_scan.h" }
113981ad6265SDimitry Andric      module transform_reduce         { private header "__numeric/transform_reduce.h" }
114081ad6265SDimitry Andric    }
114181ad6265SDimitry Andric  }
114281ad6265SDimitry Andric  module optional {
114381ad6265SDimitry Andric    header "optional"
114481ad6265SDimitry Andric    export *
114581ad6265SDimitry Andric  }
114681ad6265SDimitry Andric  module ostream {
114781ad6265SDimitry Andric
114881ad6265SDimitry Andric    header "ostream"
114981ad6265SDimitry Andric    // FIXME: should re-export ios, streambuf?
115081ad6265SDimitry Andric    export *
115181ad6265SDimitry Andric  }
115281ad6265SDimitry Andric  module queue {
115381ad6265SDimitry Andric    header "queue"
115481ad6265SDimitry Andric    export initializer_list
115581ad6265SDimitry Andric    export *
115681ad6265SDimitry Andric  }
115781ad6265SDimitry Andric  module random {
115881ad6265SDimitry Andric    header "random"
115981ad6265SDimitry Andric    export initializer_list
116081ad6265SDimitry Andric    export *
116181ad6265SDimitry Andric
116281ad6265SDimitry Andric    module __random {
116381ad6265SDimitry Andric      module bernoulli_distribution          { private header "__random/bernoulli_distribution.h" }
116481ad6265SDimitry Andric      module binomial_distribution           { private header "__random/binomial_distribution.h" }
116581ad6265SDimitry Andric      module cauchy_distribution             { private header "__random/cauchy_distribution.h" }
116681ad6265SDimitry Andric      module chi_squared_distribution        { private header "__random/chi_squared_distribution.h" }
116781ad6265SDimitry Andric      module clamp_to_integral               { private header "__random/clamp_to_integral.h" }
116881ad6265SDimitry Andric      module default_random_engine           { private header "__random/default_random_engine.h" }
116981ad6265SDimitry Andric      module discard_block_engine            { private header "__random/discard_block_engine.h" }
1170bdd1243dSDimitry Andric      module discrete_distribution {
1171bdd1243dSDimitry Andric        private header "__random/discrete_distribution.h"
1172bdd1243dSDimitry Andric        export vector
1173bdd1243dSDimitry Andric      }
117481ad6265SDimitry Andric      module exponential_distribution        { private header "__random/exponential_distribution.h" }
117581ad6265SDimitry Andric      module extreme_value_distribution      { private header "__random/extreme_value_distribution.h" }
117681ad6265SDimitry Andric      module fisher_f_distribution           { private header "__random/fisher_f_distribution.h" }
117781ad6265SDimitry Andric      module gamma_distribution              { private header "__random/gamma_distribution.h" }
117881ad6265SDimitry Andric      module generate_canonical              { private header "__random/generate_canonical.h" }
117981ad6265SDimitry Andric      module geometric_distribution          { private header "__random/geometric_distribution.h" }
118081ad6265SDimitry Andric      module independent_bits_engine         { private header "__random/independent_bits_engine.h" }
118181ad6265SDimitry Andric      module is_seed_sequence                { private header "__random/is_seed_sequence.h" }
118281ad6265SDimitry Andric      module is_valid                        { private header "__random/is_valid.h" }
118381ad6265SDimitry Andric      module knuth_b                         { private header "__random/knuth_b.h" }
118481ad6265SDimitry Andric      module linear_congruential_engine      { private header "__random/linear_congruential_engine.h" }
118581ad6265SDimitry Andric      module log2                            { private header "__random/log2.h" }
118681ad6265SDimitry Andric      module lognormal_distribution          { private header "__random/lognormal_distribution.h" }
118781ad6265SDimitry Andric      module mersenne_twister_engine         { private header "__random/mersenne_twister_engine.h" }
118881ad6265SDimitry Andric      module negative_binomial_distribution  { private header "__random/negative_binomial_distribution.h" }
118981ad6265SDimitry Andric      module normal_distribution             { private header "__random/normal_distribution.h" }
1190bdd1243dSDimitry Andric      module piecewise_constant_distribution {
1191bdd1243dSDimitry Andric        private header "__random/piecewise_constant_distribution.h"
1192bdd1243dSDimitry Andric        export vector
1193bdd1243dSDimitry Andric      }
1194bdd1243dSDimitry Andric      module piecewise_linear_distribution {
1195bdd1243dSDimitry Andric        private header "__random/piecewise_linear_distribution.h"
1196bdd1243dSDimitry Andric        export vector
1197bdd1243dSDimitry Andric      }
119881ad6265SDimitry Andric      module poisson_distribution            { private header "__random/poisson_distribution.h" }
119981ad6265SDimitry Andric      module random_device                   { private header "__random/random_device.h" }
120081ad6265SDimitry Andric      module ranlux                          { private header "__random/ranlux.h" }
120181ad6265SDimitry Andric      module seed_seq                        { private header "__random/seed_seq.h" }
120281ad6265SDimitry Andric      module shuffle_order_engine            { private header "__random/shuffle_order_engine.h" }
120381ad6265SDimitry Andric      module student_t_distribution          { private header "__random/student_t_distribution.h" }
120481ad6265SDimitry Andric      module subtract_with_carry_engine      { private header "__random/subtract_with_carry_engine.h" }
120581ad6265SDimitry Andric      module uniform_int_distribution        { private header "__random/uniform_int_distribution.h" }
120681ad6265SDimitry Andric      module uniform_random_bit_generator    { private header "__random/uniform_random_bit_generator.h" }
120781ad6265SDimitry Andric      module uniform_real_distribution       { private header "__random/uniform_real_distribution.h" }
120881ad6265SDimitry Andric      module weibull_distribution            { private header "__random/weibull_distribution.h" }
120981ad6265SDimitry Andric    }
121081ad6265SDimitry Andric  }
121181ad6265SDimitry Andric  module ranges {
121281ad6265SDimitry Andric    header "ranges"
121381ad6265SDimitry Andric    export compare
121481ad6265SDimitry Andric    export initializer_list
121581ad6265SDimitry Andric    export iterator
121681ad6265SDimitry Andric    export *
121781ad6265SDimitry Andric
121881ad6265SDimitry Andric    module __ranges {
121981ad6265SDimitry Andric      module access                 { private header "__ranges/access.h" }
122081ad6265SDimitry Andric      module all                    {
122181ad6265SDimitry Andric        private header "__ranges/all.h"
122281ad6265SDimitry Andric        export functional.__functional.compose
122381ad6265SDimitry Andric        export functional.__functional.perfect_forward
122481ad6265SDimitry Andric      }
1225bdd1243dSDimitry Andric      module as_rvalue_view         { private header "__ranges/as_rvalue_view.h" }
122681ad6265SDimitry Andric      module common_view            { private header "__ranges/common_view.h" }
122781ad6265SDimitry Andric      module concepts               { private header "__ranges/concepts.h" }
122881ad6265SDimitry Andric      module copyable_box           { private header "__ranges/copyable_box.h" }
122981ad6265SDimitry Andric      module counted                {
123081ad6265SDimitry Andric        private header "__ranges/counted.h"
123181ad6265SDimitry Andric        export span
123281ad6265SDimitry Andric      }
123381ad6265SDimitry Andric      module dangling               { private header "__ranges/dangling.h" }
123481ad6265SDimitry Andric      module data                   { private header "__ranges/data.h" }
123581ad6265SDimitry Andric      module drop_view              { private header "__ranges/drop_view.h" }
1236bdd1243dSDimitry Andric      module drop_while_view        { private header "__ranges/drop_while_view.h" }
1237bdd1243dSDimitry Andric      module elements_view          { private header "__ranges/elements_view.h" }
123881ad6265SDimitry Andric      module empty                  { private header "__ranges/empty.h" }
123981ad6265SDimitry Andric      module empty_view             { private header "__ranges/empty_view.h" }
124081ad6265SDimitry Andric      module enable_borrowed_range  { private header "__ranges/enable_borrowed_range.h" }
124181ad6265SDimitry Andric      module enable_view            { private header "__ranges/enable_view.h" }
124281ad6265SDimitry Andric      module filter_view            { private header "__ranges/filter_view.h" }
124381ad6265SDimitry Andric      module iota_view              { private header "__ranges/iota_view.h" }
1244bdd1243dSDimitry Andric      module istream_view           {
1245bdd1243dSDimitry Andric
1246bdd1243dSDimitry Andric        private header "__ranges/istream_view.h"
1247bdd1243dSDimitry Andric      }
124881ad6265SDimitry Andric      module join_view              { private header "__ranges/join_view.h" }
124981ad6265SDimitry Andric      module lazy_split_view        { private header "__ranges/lazy_split_view.h" }
125081ad6265SDimitry Andric      module non_propagating_cache  { private header "__ranges/non_propagating_cache.h" }
125181ad6265SDimitry Andric      module owning_view            { private header "__ranges/owning_view.h" }
125281ad6265SDimitry Andric      module range_adaptor          { private header "__ranges/range_adaptor.h" }
125381ad6265SDimitry Andric      module rbegin                 { private header "__ranges/rbegin.h" }
125481ad6265SDimitry Andric      module ref_view               { private header "__ranges/ref_view.h" }
125581ad6265SDimitry Andric      module rend                   { private header "__ranges/rend.h" }
125681ad6265SDimitry Andric      module reverse_view           { private header "__ranges/reverse_view.h" }
125781ad6265SDimitry Andric      module single_view            { private header "__ranges/single_view.h" }
125881ad6265SDimitry Andric      module size                   { private header "__ranges/size.h" }
1259bdd1243dSDimitry Andric      module split_view             { private header "__ranges/split_view.h" }
1260bdd1243dSDimitry Andric      module subrange               {
1261bdd1243dSDimitry Andric        private header "__ranges/subrange.h"
1262bdd1243dSDimitry Andric
1263bdd1243dSDimitry Andric        module subrange_fwd { private header "__fwd/subrange.h" }
1264bdd1243dSDimitry Andric      }
126581ad6265SDimitry Andric      module take_view              { private header "__ranges/take_view.h" }
1266bdd1243dSDimitry Andric      module take_while_view        { private header "__ranges/take_while_view.h" }
126781ad6265SDimitry Andric      module transform_view         {
126881ad6265SDimitry Andric        private header "__ranges/transform_view.h"
126981ad6265SDimitry Andric        export functional.__functional.bind_back
127081ad6265SDimitry Andric        export functional.__functional.perfect_forward
127181ad6265SDimitry Andric      }
127281ad6265SDimitry Andric      module view_interface         { private header "__ranges/view_interface.h" }
127381ad6265SDimitry Andric      module views                  { private header "__ranges/views.h" }
127481ad6265SDimitry Andric      module zip_view               { private header "__ranges/zip_view.h" }
127581ad6265SDimitry Andric    }
127681ad6265SDimitry Andric  }
127781ad6265SDimitry Andric  module ratio {
127881ad6265SDimitry Andric    header "ratio"
127981ad6265SDimitry Andric    export *
128081ad6265SDimitry Andric  }
128181ad6265SDimitry Andric  module regex {
128281ad6265SDimitry Andric
128381ad6265SDimitry Andric    header "regex"
128481ad6265SDimitry Andric    export initializer_list
128581ad6265SDimitry Andric    export *
128681ad6265SDimitry Andric  }
128781ad6265SDimitry Andric  module scoped_allocator {
128881ad6265SDimitry Andric    header "scoped_allocator"
128981ad6265SDimitry Andric    export *
129081ad6265SDimitry Andric  }
129181ad6265SDimitry Andric  module semaphore {
129281ad6265SDimitry Andric
129381ad6265SDimitry Andric    header "semaphore"
129481ad6265SDimitry Andric    export *
129581ad6265SDimitry Andric  }
129681ad6265SDimitry Andric  module set {
129781ad6265SDimitry Andric    header "set"
129881ad6265SDimitry Andric    export initializer_list
129981ad6265SDimitry Andric    export *
130081ad6265SDimitry Andric  }
130181ad6265SDimitry Andric  module shared_mutex {
130281ad6265SDimitry Andric
130381ad6265SDimitry Andric    header "shared_mutex"
130481ad6265SDimitry Andric    export version
130581ad6265SDimitry Andric  }
1306bdd1243dSDimitry Andric  module source_location {
1307bdd1243dSDimitry Andric    header "source_location"
1308bdd1243dSDimitry Andric    export *
1309bdd1243dSDimitry Andric  }
131081ad6265SDimitry Andric  module span {
131181ad6265SDimitry Andric    header "span"
131281ad6265SDimitry Andric    export ranges.__ranges.enable_borrowed_range
131381ad6265SDimitry Andric    export version
131481ad6265SDimitry Andric    module span_fwd { private header "__fwd/span.h" }
131581ad6265SDimitry Andric  }
131681ad6265SDimitry Andric  module sstream {
131781ad6265SDimitry Andric
131881ad6265SDimitry Andric    header "sstream"
131981ad6265SDimitry Andric    // FIXME: should re-export istream, ostream, ios, streambuf, string?
132081ad6265SDimitry Andric    export *
132181ad6265SDimitry Andric  }
132281ad6265SDimitry Andric  module stack {
132381ad6265SDimitry Andric    header "stack"
132481ad6265SDimitry Andric    export initializer_list
132581ad6265SDimitry Andric    export *
132681ad6265SDimitry Andric  }
132781ad6265SDimitry Andric  module stdexcept {
132881ad6265SDimitry Andric    header "stdexcept"
132981ad6265SDimitry Andric    export *
133081ad6265SDimitry Andric  }
133181ad6265SDimitry Andric  module streambuf {
133281ad6265SDimitry Andric
133381ad6265SDimitry Andric    header "streambuf"
133481ad6265SDimitry Andric    export *
133581ad6265SDimitry Andric  }
133681ad6265SDimitry Andric  module string {
133781ad6265SDimitry Andric    header "string"
133881ad6265SDimitry Andric    export initializer_list
133981ad6265SDimitry Andric    export string_view
134081ad6265SDimitry Andric    module __string {
134181ad6265SDimitry Andric      module char_traits           { private header "__string/char_traits.h" }
134281ad6265SDimitry Andric      module extern_template_lists { private header "__string/extern_template_lists.h" }
1343bdd1243dSDimitry Andric      module string_fwd            { private header "__fwd/string.h" }
134481ad6265SDimitry Andric    }
134581ad6265SDimitry Andric    export *
134681ad6265SDimitry Andric  }
134781ad6265SDimitry Andric  module string_view {
134881ad6265SDimitry Andric    header "string_view"
134981ad6265SDimitry Andric    export initializer_list
135081ad6265SDimitry Andric    export *
135181ad6265SDimitry Andric    module string_view_fwd { private header "__fwd/string_view.h" }
135281ad6265SDimitry Andric  }
135381ad6265SDimitry Andric  module strstream {
135481ad6265SDimitry Andric
135581ad6265SDimitry Andric    header "strstream"
135681ad6265SDimitry Andric    export *
135781ad6265SDimitry Andric  }
135881ad6265SDimitry Andric  module system_error {
135981ad6265SDimitry Andric    header "system_error"
136081ad6265SDimitry Andric    export *
136181ad6265SDimitry Andric  }
136281ad6265SDimitry Andric  module thread {
136381ad6265SDimitry Andric
136481ad6265SDimitry Andric    header "thread"
136581ad6265SDimitry Andric    export *
136681ad6265SDimitry Andric
136781ad6265SDimitry Andric    module __thread {
136881ad6265SDimitry Andric      module poll_with_backoff    { private header "__thread/poll_with_backoff.h" }
136981ad6265SDimitry Andric      module timed_backoff_policy { private header "__thread/timed_backoff_policy.h" }
137081ad6265SDimitry Andric    }
137181ad6265SDimitry Andric  }
137281ad6265SDimitry Andric  module tuple {
137381ad6265SDimitry Andric    header "tuple"
137481ad6265SDimitry Andric    export *
1375bdd1243dSDimitry Andric
1376bdd1243dSDimitry Andric    module apply_cv         { private header "__tuple_dir/apply_cv.h" }
1377bdd1243dSDimitry Andric    module get_fwd          { private header "__fwd/get.h" }
1378bdd1243dSDimitry Andric    module make_tuple_types { private header "__tuple_dir/make_tuple_types.h" }
1379bdd1243dSDimitry Andric    module pair_like        { private header "__tuple_dir/pair_like.h" }
1380bdd1243dSDimitry Andric    module sfinae_helpers   { private header "__tuple_dir/sfinae_helpers.h" }
1381bdd1243dSDimitry Andric    module tuple_element    { private header "__tuple_dir/tuple_element.h" }
1382bdd1243dSDimitry Andric    module tuple_fwd        { private header "__fwd/tuple.h" }
1383bdd1243dSDimitry Andric    module tuple_indices    { private header "__tuple_dir/tuple_indices.h" }
1384bdd1243dSDimitry Andric    module tuple_like       { private header "__tuple_dir/tuple_like.h" }
1385bdd1243dSDimitry Andric    module tuple_like_ext   { private header "__tuple_dir/tuple_like_ext.h" }
1386bdd1243dSDimitry Andric    module tuple_size       { private header "__tuple_dir/tuple_size.h" }
1387bdd1243dSDimitry Andric    module tuple_types      { private header "__tuple_dir/tuple_types.h" }
138881ad6265SDimitry Andric  }
138981ad6265SDimitry Andric  module type_traits {
139081ad6265SDimitry Andric    header "type_traits"
139181ad6265SDimitry Andric    export functional.__functional.unwrap_ref
139281ad6265SDimitry Andric    export *
139381ad6265SDimitry Andric
139481ad6265SDimitry Andric    module add_const                           { private header "__type_traits/add_const.h" }
139581ad6265SDimitry Andric    module add_cv                              { private header "__type_traits/add_cv.h" }
139681ad6265SDimitry Andric    module add_lvalue_reference                { private header "__type_traits/add_lvalue_reference.h" }
139781ad6265SDimitry Andric    module add_pointer                         { private header "__type_traits/add_pointer.h" }
139881ad6265SDimitry Andric    module add_rvalue_reference                { private header "__type_traits/add_rvalue_reference.h" }
139981ad6265SDimitry Andric    module add_volatile                        { private header "__type_traits/add_volatile.h" }
14006246ae0bSDimitry Andric    module aligned_storage                     { private header "__type_traits/aligned_storage.h" }
14016246ae0bSDimitry Andric    module aligned_union                       { private header "__type_traits/aligned_union.h" }
140281ad6265SDimitry Andric    module alignment_of                        { private header "__type_traits/alignment_of.h" }
140381ad6265SDimitry Andric    module apply_cv                            { private header "__type_traits/apply_cv.h" }
1404bdd1243dSDimitry Andric    module can_extract_key                     { private header "__type_traits/can_extract_key.h" }
14056246ae0bSDimitry Andric    module common_reference                    { private header "__type_traits/common_reference.h" }
14066246ae0bSDimitry Andric    module common_type                         { private header "__type_traits/common_type.h" }
140781ad6265SDimitry Andric    module conditional                         { private header "__type_traits/conditional.h" }
140881ad6265SDimitry Andric    module conjunction                         { private header "__type_traits/conjunction.h" }
14096246ae0bSDimitry Andric    module copy_cv                             { private header "__type_traits/copy_cv.h" }
14106246ae0bSDimitry Andric    module copy_cvref                          { private header "__type_traits/copy_cvref.h" }
141181ad6265SDimitry Andric    module decay                               { private header "__type_traits/decay.h" }
1412bdd1243dSDimitry Andric    module dependent_type                      { private header "__type_traits/dependent_type.h" }
141381ad6265SDimitry Andric    module disjunction                         { private header "__type_traits/disjunction.h" }
141481ad6265SDimitry Andric    module enable_if                           { private header "__type_traits/enable_if.h" }
141581ad6265SDimitry Andric    module extent                              { private header "__type_traits/extent.h" }
141681ad6265SDimitry Andric    module has_unique_object_representation    { private header "__type_traits/has_unique_object_representation.h" }
141781ad6265SDimitry Andric    module has_virtual_destructor              { private header "__type_traits/has_virtual_destructor.h" }
141881ad6265SDimitry Andric    module integral_constant                   { private header "__type_traits/integral_constant.h" }
141981ad6265SDimitry Andric    module is_abstract                         { private header "__type_traits/is_abstract.h" }
142081ad6265SDimitry Andric    module is_aggregate                        { private header "__type_traits/is_aggregate.h" }
1421bdd1243dSDimitry Andric    module is_allocator                        { private header "__type_traits/is_allocator.h" }
1422bdd1243dSDimitry Andric    module is_always_bitcastable               { private header "__type_traits/is_always_bitcastable.h" }
1423bdd1243dSDimitry Andric    module is_arithmetic {
1424bdd1243dSDimitry Andric      private header "__type_traits/is_arithmetic.h"
1425bdd1243dSDimitry Andric      export integral_constant
1426bdd1243dSDimitry Andric    }
1427bdd1243dSDimitry Andric    module is_array                            {
1428bdd1243dSDimitry Andric      private header "__type_traits/is_array.h"
1429bdd1243dSDimitry Andric      export integral_constant
1430bdd1243dSDimitry Andric    }
143181ad6265SDimitry Andric    module is_assignable                       { private header "__type_traits/is_assignable.h" }
143281ad6265SDimitry Andric    module is_base_of                          { private header "__type_traits/is_base_of.h" }
143381ad6265SDimitry Andric    module is_bounded_array                    { private header "__type_traits/is_bounded_array.h" }
143481ad6265SDimitry Andric    module is_callable                         { private header "__type_traits/is_callable.h" }
1435bdd1243dSDimitry Andric    module is_char_like_type                   { private header "__type_traits/is_char_like_type.h" }
143681ad6265SDimitry Andric    module is_class                            { private header "__type_traits/is_class.h" }
143781ad6265SDimitry Andric    module is_compound                         { private header "__type_traits/is_compound.h" }
143881ad6265SDimitry Andric    module is_const                            { private header "__type_traits/is_const.h" }
143981ad6265SDimitry Andric    module is_constant_evaluated               { private header "__type_traits/is_constant_evaluated.h" }
144081ad6265SDimitry Andric    module is_constructible                    { private header "__type_traits/is_constructible.h" }
144181ad6265SDimitry Andric    module is_convertible                      { private header "__type_traits/is_convertible.h" }
144281ad6265SDimitry Andric    module is_copy_assignable                  { private header "__type_traits/is_copy_assignable.h" }
144381ad6265SDimitry Andric    module is_copy_constructible               { private header "__type_traits/is_copy_constructible.h" }
1444bdd1243dSDimitry Andric    module is_core_convertible                 {
1445bdd1243dSDimitry Andric      private header "__type_traits/is_core_convertible.h"
1446bdd1243dSDimitry Andric      export integral_constant
1447bdd1243dSDimitry Andric    }
144881ad6265SDimitry Andric    module is_default_constructible            { private header "__type_traits/is_default_constructible.h" }
144981ad6265SDimitry Andric    module is_destructible                     { private header "__type_traits/is_destructible.h" }
145081ad6265SDimitry Andric    module is_empty                            { private header "__type_traits/is_empty.h" }
145181ad6265SDimitry Andric    module is_enum                             { private header "__type_traits/is_enum.h" }
145281ad6265SDimitry Andric    module is_final                            { private header "__type_traits/is_final.h" }
145381ad6265SDimitry Andric    module is_floating_point                   { private header "__type_traits/is_floating_point.h" }
145481ad6265SDimitry Andric    module is_function                         { private header "__type_traits/is_function.h" }
145581ad6265SDimitry Andric    module is_fundamental                      { private header "__type_traits/is_fundamental.h" }
1456bdd1243dSDimitry Andric    module is_implicitly_default_constructible { private header "__type_traits/is_implicitly_default_constructible.h" }
145781ad6265SDimitry Andric    module is_integral                         { private header "__type_traits/is_integral.h" }
145881ad6265SDimitry Andric    module is_literal_type                     { private header "__type_traits/is_literal_type.h" }
145981ad6265SDimitry Andric    module is_member_function_pointer          { private header "__type_traits/is_member_function_pointer.h" }
146081ad6265SDimitry Andric    module is_member_object_pointer            { private header "__type_traits/is_member_object_pointer.h" }
146181ad6265SDimitry Andric    module is_member_pointer                   { private header "__type_traits/is_member_pointer.h" }
146281ad6265SDimitry Andric    module is_move_assignable                  { private header "__type_traits/is_move_assignable.h" }
146381ad6265SDimitry Andric    module is_move_constructible               { private header "__type_traits/is_move_constructible.h" }
146481ad6265SDimitry Andric    module is_nothrow_assignable               { private header "__type_traits/is_nothrow_assignable.h" }
146581ad6265SDimitry Andric    module is_nothrow_constructible            { private header "__type_traits/is_nothrow_constructible.h" }
14666246ae0bSDimitry Andric    module is_nothrow_convertible              { private header "__type_traits/is_nothrow_convertible.h" }
146781ad6265SDimitry Andric    module is_nothrow_copy_assignable          { private header "__type_traits/is_nothrow_copy_assignable.h" }
146881ad6265SDimitry Andric    module is_nothrow_copy_constructible       { private header "__type_traits/is_nothrow_copy_constructible.h" }
146981ad6265SDimitry Andric    module is_nothrow_default_constructible    { private header "__type_traits/is_nothrow_default_constructible.h" }
147081ad6265SDimitry Andric    module is_nothrow_destructible             { private header "__type_traits/is_nothrow_destructible.h" }
147181ad6265SDimitry Andric    module is_nothrow_move_assignable          { private header "__type_traits/is_nothrow_move_assignable.h" }
147281ad6265SDimitry Andric    module is_nothrow_move_constructible       { private header "__type_traits/is_nothrow_move_constructible.h" }
147381ad6265SDimitry Andric    module is_null_pointer                     { private header "__type_traits/is_null_pointer.h" }
147481ad6265SDimitry Andric    module is_object                           { private header "__type_traits/is_object.h" }
147581ad6265SDimitry Andric    module is_pod                              { private header "__type_traits/is_pod.h" }
147681ad6265SDimitry Andric    module is_pointer                          { private header "__type_traits/is_pointer.h" }
147781ad6265SDimitry Andric    module is_polymorphic                      { private header "__type_traits/is_polymorphic.h" }
14786246ae0bSDimitry Andric    module is_primary_template                 { private header "__type_traits/is_primary_template.h" }
147981ad6265SDimitry Andric    module is_reference                        { private header "__type_traits/is_reference.h" }
148081ad6265SDimitry Andric    module is_reference_wrapper                { private header "__type_traits/is_reference_wrapper.h" }
148181ad6265SDimitry Andric    module is_referenceable                    { private header "__type_traits/is_referenceable.h" }
1482bdd1243dSDimitry Andric    module is_same                             {
1483bdd1243dSDimitry Andric      private header "__type_traits/is_same.h"
1484bdd1243dSDimitry Andric      export type_traits.integral_constant
1485bdd1243dSDimitry Andric    }
148681ad6265SDimitry Andric    module is_scalar                           { private header "__type_traits/is_scalar.h" }
148781ad6265SDimitry Andric    module is_scoped_enum                      { private header "__type_traits/is_scoped_enum.h" }
148881ad6265SDimitry Andric    module is_signed                           { private header "__type_traits/is_signed.h" }
14896246ae0bSDimitry Andric    module is_signed_integer                   { private header "__type_traits/is_signed_integer.h" }
1490bdd1243dSDimitry Andric    module is_specialization                   { private header "__type_traits/is_specialization.h" }
149181ad6265SDimitry Andric    module is_standard_layout                  { private header "__type_traits/is_standard_layout.h" }
1492bdd1243dSDimitry Andric    module is_swappable                        { private header "__type_traits/is_swappable.h" }
149381ad6265SDimitry Andric    module is_trivial                          { private header "__type_traits/is_trivial.h" }
149481ad6265SDimitry Andric    module is_trivially_assignable             { private header "__type_traits/is_trivially_assignable.h" }
149581ad6265SDimitry Andric    module is_trivially_constructible          { private header "__type_traits/is_trivially_constructible.h" }
149681ad6265SDimitry Andric    module is_trivially_copy_assignable        { private header "__type_traits/is_trivially_copy_assignable.h" }
149781ad6265SDimitry Andric    module is_trivially_copy_constructible     { private header "__type_traits/is_trivially_copy_constructible.h" }
149881ad6265SDimitry Andric    module is_trivially_copyable               { private header "__type_traits/is_trivially_copyable.h" }
149981ad6265SDimitry Andric    module is_trivially_default_constructible  { private header "__type_traits/is_trivially_default_constructible.h" }
150081ad6265SDimitry Andric    module is_trivially_destructible           { private header "__type_traits/is_trivially_destructible.h" }
150181ad6265SDimitry Andric    module is_trivially_move_assignable        { private header "__type_traits/is_trivially_move_assignable.h" }
150281ad6265SDimitry Andric    module is_trivially_move_constructible     { private header "__type_traits/is_trivially_move_constructible.h" }
150381ad6265SDimitry Andric    module is_unbounded_array                  { private header "__type_traits/is_unbounded_array.h" }
150481ad6265SDimitry Andric    module is_union                            { private header "__type_traits/is_union.h" }
150581ad6265SDimitry Andric    module is_unsigned                         { private header "__type_traits/is_unsigned.h" }
15066246ae0bSDimitry Andric    module is_unsigned_integer                 { private header "__type_traits/is_unsigned_integer.h" }
15076246ae0bSDimitry Andric    module is_valid_expansion                  { private header "__type_traits/is_valid_expansion.h" }
1508bdd1243dSDimitry Andric    module is_void                             {
1509bdd1243dSDimitry Andric      private header "__type_traits/is_void.h"
1510bdd1243dSDimitry Andric      export integral_constant
1511bdd1243dSDimitry Andric    }
151281ad6265SDimitry Andric    module is_volatile                         { private header "__type_traits/is_volatile.h" }
15136246ae0bSDimitry Andric    module lazy                                { private header "__type_traits/lazy.h" }
15146246ae0bSDimitry Andric    module make_32_64_or_128_bit               { private header "__type_traits/make_32_64_or_128_bit.h" }
1515bdd1243dSDimitry Andric    module make_const_lvalue_ref               { private header "__type_traits/make_const_lvalue_ref.h" }
15166246ae0bSDimitry Andric    module make_signed                         { private header "__type_traits/make_signed.h" }
15176246ae0bSDimitry Andric    module make_unsigned                       { private header "__type_traits/make_unsigned.h" }
1518bdd1243dSDimitry Andric    module maybe_const                         { private header "__type_traits/maybe_const.h" }
15196246ae0bSDimitry Andric    module nat                                 { private header "__type_traits/nat.h" }
152081ad6265SDimitry Andric    module negation                            { private header "__type_traits/negation.h" }
1521bdd1243dSDimitry Andric    module noexcept_move_assign_container      { private header "__type_traits/noexcept_move_assign_container.h" }
15226246ae0bSDimitry Andric    module promote                             { private header "__type_traits/promote.h" }
152381ad6265SDimitry Andric    module rank                                { private header "__type_traits/rank.h" }
152481ad6265SDimitry Andric    module remove_all_extents                  { private header "__type_traits/remove_all_extents.h" }
152581ad6265SDimitry Andric    module remove_const                        { private header "__type_traits/remove_const.h" }
1526bdd1243dSDimitry Andric    module remove_const_ref                    { private header "__type_traits/remove_const_ref.h" }
152781ad6265SDimitry Andric    module remove_cv                           { private header "__type_traits/remove_cv.h" }
15286246ae0bSDimitry Andric    module remove_cvref                        { private header "__type_traits/remove_cvref.h" }
152981ad6265SDimitry Andric    module remove_extent                       { private header "__type_traits/remove_extent.h" }
153081ad6265SDimitry Andric    module remove_pointer                      { private header "__type_traits/remove_pointer.h" }
153181ad6265SDimitry Andric    module remove_reference                    { private header "__type_traits/remove_reference.h" }
153281ad6265SDimitry Andric    module remove_volatile                     { private header "__type_traits/remove_volatile.h" }
1533bdd1243dSDimitry Andric    module result_of                           { private header "__type_traits/result_of.h" }
1534bdd1243dSDimitry Andric    module strip_signature                     { private header "__type_traits/strip_signature.h" }
153581ad6265SDimitry Andric    module type_identity                       { private header "__type_traits/type_identity.h" }
15366246ae0bSDimitry Andric    module type_list                           { private header "__type_traits/type_list.h" }
153781ad6265SDimitry Andric    module underlying_type                     { private header "__type_traits/underlying_type.h" }
153881ad6265SDimitry Andric    module void_t                              { private header "__type_traits/void_t.h" }
153981ad6265SDimitry Andric  }
154081ad6265SDimitry Andric  module typeindex {
154181ad6265SDimitry Andric    header "typeindex"
154281ad6265SDimitry Andric    export *
154381ad6265SDimitry Andric  }
154481ad6265SDimitry Andric  module typeinfo {
154581ad6265SDimitry Andric    header "typeinfo"
154681ad6265SDimitry Andric    export *
154781ad6265SDimitry Andric  }
154881ad6265SDimitry Andric  module unordered_map {
154981ad6265SDimitry Andric    header "unordered_map"
155081ad6265SDimitry Andric    export initializer_list
155181ad6265SDimitry Andric    export *
155281ad6265SDimitry Andric  }
155381ad6265SDimitry Andric  module unordered_set {
155481ad6265SDimitry Andric    header "unordered_set"
155581ad6265SDimitry Andric    export initializer_list
155681ad6265SDimitry Andric    export *
155781ad6265SDimitry Andric  }
155881ad6265SDimitry Andric  module utility {
155981ad6265SDimitry Andric    header "utility"
156081ad6265SDimitry Andric    export initializer_list
156181ad6265SDimitry Andric    export *
156281ad6265SDimitry Andric
156381ad6265SDimitry Andric    module __utility {
156481ad6265SDimitry Andric      module as_const            { private header "__utility/as_const.h" }
156581ad6265SDimitry Andric      module auto_cast           { private header "__utility/auto_cast.h" }
156681ad6265SDimitry Andric      module cmp                 { private header "__utility/cmp.h" }
1567bdd1243dSDimitry Andric      module convert_to_integral { private header "__utility/convert_to_integral.h" }
156881ad6265SDimitry Andric      module declval             { private header "__utility/declval.h" }
1569bdd1243dSDimitry Andric      module exception_guard     { private header "__utility/exception_guard.h" }
157081ad6265SDimitry Andric      module exchange            { private header "__utility/exchange.h" }
157181ad6265SDimitry Andric      module forward             { private header "__utility/forward.h" }
1572bdd1243dSDimitry Andric      module forward_like        { private header "__utility/forward_like.h" }
157381ad6265SDimitry Andric      module in_place            { private header "__utility/in_place.h" }
157481ad6265SDimitry Andric      module integer_sequence    { private header "__utility/integer_sequence.h" }
157581ad6265SDimitry Andric      module move                { private header "__utility/move.h" }
157681ad6265SDimitry Andric      module pair                { private header "__utility/pair.h" }
1577bdd1243dSDimitry Andric      module pair_fwd            { private header "__fwd/pair.h" }
157881ad6265SDimitry Andric      module piecewise_construct { private header "__utility/piecewise_construct.h" }
157981ad6265SDimitry Andric      module priority_tag        { private header "__utility/priority_tag.h" }
158081ad6265SDimitry Andric      module rel_ops             { private header "__utility/rel_ops.h" }
158181ad6265SDimitry Andric      module swap                { private header "__utility/swap.h" }
158281ad6265SDimitry Andric      module to_underlying       { private header "__utility/to_underlying.h" }
158381ad6265SDimitry Andric      module unreachable         { private header "__utility/unreachable.h" }
158481ad6265SDimitry Andric    }
158581ad6265SDimitry Andric  }
158681ad6265SDimitry Andric  module valarray {
158781ad6265SDimitry Andric    header "valarray"
158881ad6265SDimitry Andric    export initializer_list
158981ad6265SDimitry Andric    export *
159081ad6265SDimitry Andric  }
159181ad6265SDimitry Andric  module variant {
159281ad6265SDimitry Andric    header "variant"
159381ad6265SDimitry Andric    export *
159481ad6265SDimitry Andric
159581ad6265SDimitry Andric    module __variant {
159681ad6265SDimitry Andric      module monostate { private header "__variant/monostate.h" }
159781ad6265SDimitry Andric    }
159881ad6265SDimitry Andric  }
159981ad6265SDimitry Andric  module vector {
160081ad6265SDimitry Andric    header "vector"
160181ad6265SDimitry Andric    export initializer_list
160281ad6265SDimitry Andric    export *
160381ad6265SDimitry Andric  }
160481ad6265SDimitry Andric  module version {
160581ad6265SDimitry Andric    header "version"
160681ad6265SDimitry Andric    export *
160781ad6265SDimitry Andric  }
160881ad6265SDimitry Andric
160981ad6265SDimitry Andric  // FIXME: These should be private.
161081ad6265SDimitry Andric  module __assert            {         header "__assert"            export * }
161181ad6265SDimitry Andric  module __availability      { private header "__availability"      export * }
161281ad6265SDimitry Andric  module __bit_reference     { private header "__bit_reference"     export * }
161381ad6265SDimitry Andric  module __debug             {         header "__debug"             export * }
161481ad6265SDimitry Andric  module __errc              { private header "__errc"              export * }
161581ad6265SDimitry Andric  module __hash_table        {         header "__hash_table"        export * }
161681ad6265SDimitry Andric  module __locale            {
161781ad6265SDimitry Andric
161881ad6265SDimitry Andric    private header "__locale" export *
161981ad6265SDimitry Andric  }
162081ad6265SDimitry Andric  module __mbstate_t         { private header "__mbstate_t.h"       export * }
162181ad6265SDimitry Andric  module __mutex_base        { private header "__mutex_base"        export * }
162281ad6265SDimitry Andric  module __node_handle       { private header "__node_handle"       export * }
162381ad6265SDimitry Andric  module __split_buffer      { private header "__split_buffer"      export * }
162481ad6265SDimitry Andric  module __std_stream        {
162581ad6265SDimitry Andric
162681ad6265SDimitry Andric    private header "__std_stream" export *
162781ad6265SDimitry Andric  }
162881ad6265SDimitry Andric  module __threading_support {         header "__threading_support" export * }
162981ad6265SDimitry Andric  module __tree              {         header "__tree"              export * }
163081ad6265SDimitry Andric  module __undef_macros      {         header "__undef_macros"      export * }
16316246ae0bSDimitry Andric  module __verbose_abort     {         header "__verbose_abort"     export * }
163281ad6265SDimitry Andric
163381ad6265SDimitry Andric  module experimental {
163481ad6265SDimitry Andric    requires cplusplus11
163581ad6265SDimitry Andric
163681ad6265SDimitry Andric    module algorithm {
163781ad6265SDimitry Andric      header "experimental/algorithm"
163881ad6265SDimitry Andric      export *
163981ad6265SDimitry Andric    }
164081ad6265SDimitry Andric    module coroutine {
164181ad6265SDimitry Andric      requires coroutines
164281ad6265SDimitry Andric      header "experimental/coroutine"
164381ad6265SDimitry Andric      export *
164481ad6265SDimitry Andric    }
164581ad6265SDimitry Andric    module deque {
164681ad6265SDimitry Andric      header "experimental/deque"
164781ad6265SDimitry Andric      export *
164881ad6265SDimitry Andric    }
164981ad6265SDimitry Andric    module forward_list {
165081ad6265SDimitry Andric      header "experimental/forward_list"
165181ad6265SDimitry Andric      export *
165281ad6265SDimitry Andric    }
165381ad6265SDimitry Andric    module functional {
165481ad6265SDimitry Andric      header "experimental/functional"
165581ad6265SDimitry Andric      export *
165681ad6265SDimitry Andric    }
165781ad6265SDimitry Andric    module iterator {
165881ad6265SDimitry Andric      header "experimental/iterator"
165981ad6265SDimitry Andric      export *
166081ad6265SDimitry Andric    }
166181ad6265SDimitry Andric    module list {
166281ad6265SDimitry Andric      header "experimental/list"
166381ad6265SDimitry Andric      export *
166481ad6265SDimitry Andric    }
166581ad6265SDimitry Andric    module map {
166681ad6265SDimitry Andric      header "experimental/map"
166781ad6265SDimitry Andric      export *
166881ad6265SDimitry Andric    }
166981ad6265SDimitry Andric    module memory_resource {
167081ad6265SDimitry Andric      header "experimental/memory_resource"
167181ad6265SDimitry Andric      export *
167281ad6265SDimitry Andric    }
167381ad6265SDimitry Andric    module propagate_const {
167481ad6265SDimitry Andric      header "experimental/propagate_const"
167581ad6265SDimitry Andric      export *
167681ad6265SDimitry Andric    }
167781ad6265SDimitry Andric    module regex {
167881ad6265SDimitry Andric
167981ad6265SDimitry Andric      header "experimental/regex"
168081ad6265SDimitry Andric      export *
168181ad6265SDimitry Andric    }
168281ad6265SDimitry Andric    module simd {
168381ad6265SDimitry Andric      header "experimental/simd"
168481ad6265SDimitry Andric      export *
168581ad6265SDimitry Andric    }
168681ad6265SDimitry Andric    module set {
168781ad6265SDimitry Andric      header "experimental/set"
168881ad6265SDimitry Andric      export *
168981ad6265SDimitry Andric    }
169081ad6265SDimitry Andric    module span {
169181ad6265SDimitry Andric      header "span"
169281ad6265SDimitry Andric      export *
169381ad6265SDimitry Andric    }
169481ad6265SDimitry Andric    module string {
169581ad6265SDimitry Andric      header "experimental/string"
169681ad6265SDimitry Andric      export *
169781ad6265SDimitry Andric    }
169881ad6265SDimitry Andric    module type_traits {
169981ad6265SDimitry Andric      header "experimental/type_traits"
170081ad6265SDimitry Andric      export *
170181ad6265SDimitry Andric    }
170281ad6265SDimitry Andric    module unordered_map {
170381ad6265SDimitry Andric      header "experimental/unordered_map"
170481ad6265SDimitry Andric      export *
170581ad6265SDimitry Andric    }
170681ad6265SDimitry Andric    module unordered_set {
170781ad6265SDimitry Andric      header "experimental/unordered_set"
170881ad6265SDimitry Andric      export *
170981ad6265SDimitry Andric    }
171081ad6265SDimitry Andric    module utility {
171181ad6265SDimitry Andric      header "experimental/utility"
171281ad6265SDimitry Andric      export *
171381ad6265SDimitry Andric    }
171481ad6265SDimitry Andric    module vector {
171581ad6265SDimitry Andric      header "experimental/vector"
171681ad6265SDimitry Andric      export *
171781ad6265SDimitry Andric    }
171881ad6265SDimitry Andric    // FIXME these should be private
171981ad6265SDimitry Andric    module __memory {
172081ad6265SDimitry Andric      header "experimental/__memory"
172181ad6265SDimitry Andric      export *
172281ad6265SDimitry Andric    }
172381ad6265SDimitry Andric  } // end experimental
172481ad6265SDimitry Andric}
1725