// define the module for __config outside of the top level 'std' module
// since __config may be included from C headers which may create an
// include cycle.
module std_config [system] [extern_c] {
  textual header "__config"
  export *
}

module std [system] {
  // FIXME: The standard does not require that each of these submodules
  // re-exports its imported modules. We should provide an alternative form of
  // export that issues a warning if a name from the submodule is used, and
  // use that to provide a 'strict mode' for libc++.

  // Deprecated C-compatibility headers. These can all be included from within
  // an 'extern "C"' context.
  module depr [extern_c] {
    // <assert.h> provided by C library.
    module ctype_h {
      header "ctype.h"
      export *
    }
    module errno_h {
      header "errno.h"
      export *
    }
    module fenv_h {
      header "fenv.h"
      export *
    }
    // <float.h> provided by compiler or C library.
    module inttypes_h {
      header "inttypes.h"
      export stdint_h
      export *
    }
    // <iso646.h> provided by compiler.
    // <limits.h> provided by compiler or C library.
    module locale_h {
      @requires_LIBCXX_ENABLE_LOCALIZATION@
      header "locale.h"
      export *
    }
    module math_h {
      header "math.h"
      export *
    }
    module setjmp_h {
      header "setjmp.h"
      export *
    }
    module stdatomic_h {
      @requires_LIBCXX_ENABLE_THREADS@
      requires cplusplus23
      header "stdatomic.h"
      export *
    }
    // FIXME: <stdalign.h> is missing.
    // <signal.h> provided by C library.
    // <stdarg.h> provided by compiler.
    module stdbool_h {
      // <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
      textual header "stdbool.h"
      export *
    }
    module stddef_h {
      // <stddef.h>'s __need_* macros require textual inclusion.
      textual header "stddef.h"
      export *
    }
    module stdint_h {
      header "stdint.h"
      export *
      // FIXME: This module only exists on OS X and for some reason the
      // wildcard above doesn't export it. Removing this breaks the tests
      // for C compatibility headers in C++17 mode with modules enabled.
      export Darwin.C.stdint
    }
    module stdio_h {
      // <stdio.h>'s __need_* macros require textual inclusion.
      textual header "stdio.h"
      export *
    }
    module stdlib_h {
      // <stdlib.h>'s __need_* macros require textual inclusion.
      textual header "stdlib.h"
      export *
    }
    module string_h {
      header "string.h"
      export *
    }
    module uchar_h {
      header "uchar.h"
      export *
    }
    // <time.h> provided by C library.
    module wchar_h {
      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
      // <wchar.h>'s __need_* macros require textual inclusion.
      textual header "wchar.h"
      export *
    }
    module wctype_h {
      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
      header "wctype.h"
      export *
    }
  }

  // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
  // allow their use in extern "C" contexts.
  module complex_h {
    header "complex.h"
    export ccomplex
    export *
  }
  module tgmath_h {
    header "tgmath.h"
    export ccomplex
    export cmath
    export *
  }

  // C compatibility headers.
  module compat {
    module cassert {
      // <cassert>'s use of NDEBUG requires textual inclusion.
      textual header "cassert"
    }
    module ccomplex {
      header "ccomplex"
      export complex
      export *
    }
    module cctype {
      header "cctype"
      export *
    }
    module cerrno {
      header "cerrno"
      export *
    }
    module cfenv {
      header "cfenv"
      export *
    }
    module cfloat {
      header "cfloat"
      export *
    }
    module cinttypes {
      header "cinttypes"
      export cstdint
      export *
    }
    module ciso646 {
      header "ciso646"
      export *
    }
    module climits {
      header "climits"
      export *
    }
    module clocale {
      @requires_LIBCXX_ENABLE_LOCALIZATION@
      header "clocale"
      export *
    }
    module cmath {
      header "cmath"
      export *
    }
    module csetjmp {
      header "csetjmp"
      export *
    }
    module csignal {
      header "csignal"
      export *
    }
    // FIXME: <cstdalign> is missing.
    module cstdarg {
      header "cstdarg"
      export *
    }
    module cstdbool {
      header "cstdbool"
      export *
    }
    module cstddef {
      header "cstddef"
      export *
    }
    module cstdint {
      header "cstdint"
      export depr.stdint_h
      export *
    }
    module cstdio {
      header "cstdio"
      export *
    }
    module cstdlib {
      header "cstdlib"
      export *
    }
    module cstring {
      header "cstring"
      export *
    }
    module ctgmath {
      header "ctgmath"
      export ccomplex
      export cmath
      export *
    }
    module ctime {
      header "ctime"
      export *
    }
    module cuchar {
      header "cuchar"
      export *
    }
    module cwchar {
      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
      header "cwchar"
      export depr.stdio_h
      export *
    }
    module cwctype {
      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
      header "cwctype"
      export *
    }
  }

  module algorithm {
    header "algorithm"
    export initializer_list
    export *

    module __algorithm {
      module adjacent_find                   { private header "__algorithm/adjacent_find.h" }
      module all_of                          { private header "__algorithm/all_of.h" }
      module any_of                          { private header "__algorithm/any_of.h" }
      module binary_search                   { private header "__algorithm/binary_search.h" }
      module clamp                           { private header "__algorithm/clamp.h" }
      module comp                            { private header "__algorithm/comp.h" }
      module comp_ref_type                   { private header "__algorithm/comp_ref_type.h" }
      module copy                            { private header "__algorithm/copy.h" }
      module copy_backward                   { private header "__algorithm/copy_backward.h" }
      module copy_if                         { private header "__algorithm/copy_if.h" }
      module copy_move_common                { private header "__algorithm/copy_move_common.h" }
      module copy_n                          { private header "__algorithm/copy_n.h" }
      module count                           { private header "__algorithm/count.h" }
      module count_if                        { private header "__algorithm/count_if.h" }
      module equal                           { private header "__algorithm/equal.h" }
      module equal_range                     { private header "__algorithm/equal_range.h" }
      module fill                            { private header "__algorithm/fill.h" }
      module fill_n                          { private header "__algorithm/fill_n.h" }
      module find                            { private header "__algorithm/find.h" }
      module find_end                        { private header "__algorithm/find_end.h" }
      module find_first_of                   { private header "__algorithm/find_first_of.h" }
      module find_if                         { private header "__algorithm/find_if.h" }
      module find_if_not                     { private header "__algorithm/find_if_not.h" }
      module for_each                        { private header "__algorithm/for_each.h" }
      module for_each_n                      { private header "__algorithm/for_each_n.h" }
      module for_each_segment                { private header "__algorithm/for_each_segment.h" }
      module generate                        { private header "__algorithm/generate.h" }
      module generate_n                      { private header "__algorithm/generate_n.h" }
      module half_positive                   { private header "__algorithm/half_positive.h" }
      module in_found_result                 { private header "__algorithm/in_found_result.h" }
      module in_fun_result                   { private header "__algorithm/in_fun_result.h" }
      module in_in_out_result                { private header "__algorithm/in_in_out_result.h" }
      module in_in_result                    { private header "__algorithm/in_in_result.h" }
      module in_out_out_result               { private header "__algorithm/in_out_out_result.h" }
      module in_out_result                   { private header "__algorithm/in_out_result.h" }
      module includes                        { private header "__algorithm/includes.h" }
      module inplace_merge                   { private header "__algorithm/inplace_merge.h" }
      module is_heap                         { private header "__algorithm/is_heap.h" }
      module is_heap_until                   { private header "__algorithm/is_heap_until.h" }
      module is_partitioned                  { private header "__algorithm/is_partitioned.h" }
      module is_permutation                  { private header "__algorithm/is_permutation.h" }
      module is_sorted                       { private header "__algorithm/is_sorted.h" }
      module is_sorted_until                 { private header "__algorithm/is_sorted_until.h" }
      module iter_swap                       { private header "__algorithm/iter_swap.h" }
      module iterator_operations             {
        private header "__algorithm/iterator_operations.h"
        export *
      }
      module lexicographical_compare         { private header "__algorithm/lexicographical_compare.h" }
      module lexicographical_compare_three_way {
        private header "__algorithm/lexicographical_compare_three_way.h"
      }
      module lower_bound                     { private header "__algorithm/lower_bound.h" }
      module make_heap                       { private header "__algorithm/make_heap.h" }
      module make_projected                  { private header "__algorithm/make_projected.h" }
      module max                             { private header "__algorithm/max.h" }
      module max_element                     { private header "__algorithm/max_element.h" }
      module merge                           { private header "__algorithm/merge.h" }
      module min                             { private header "__algorithm/min.h" }
      module min_element                     { private header "__algorithm/min_element.h" }
      module min_max_result                  { private header "__algorithm/min_max_result.h" }
      module minmax                          {
        private header "__algorithm/minmax.h"
        export *
      }
      module minmax_element                  { private header "__algorithm/minmax_element.h" }
      module mismatch                        { private header "__algorithm/mismatch.h" }
      module move                            { private header "__algorithm/move.h" }
      module move_backward                   { private header "__algorithm/move_backward.h" }
      module next_permutation                { private header "__algorithm/next_permutation.h" }
      module none_of                         { private header "__algorithm/none_of.h" }
      module nth_element                     { private header "__algorithm/nth_element.h" }
      module partial_sort                    { private header "__algorithm/partial_sort.h" }
      module partial_sort_copy               { private header "__algorithm/partial_sort_copy.h" }
      module partition                       { private header "__algorithm/partition.h" }
      module partition_copy                  { private header "__algorithm/partition_copy.h" }
      module partition_point                 { private header "__algorithm/partition_point.h" }
      module pop_heap                        { private header "__algorithm/pop_heap.h" }
      module prev_permutation                { private header "__algorithm/prev_permutation.h" }
      module pstl_backends_cpu_backend       {
        private header "__algorithm/pstl_backends/cpu_backend.h"
        export *
      }
      module pstl_backends_cpu_backends_any_of {
        private header "__algorithm/pstl_backends/cpu_backends/any_of.h"
      }
      module pstl_backends_cpu_backends_backend {
        private header "__algorithm/pstl_backends/cpu_backends/backend.h"
        export *
      }
      module pstl_backends_cpu_backends_fill { private header "__algorithm/pstl_backends/cpu_backends/fill.h" }
      module pstl_backends_cpu_backends_find_if {
        private header "__algorithm/pstl_backends/cpu_backends/find_if.h"
      }
      module pstl_backends_cpu_backends_for_each {
        private header "__algorithm/pstl_backends/cpu_backends/for_each.h"
      }
      module pstl_backends_cpu_backends_merge {
        private header "__algorithm/pstl_backends/cpu_backends/merge.h"
      }
      module pstl_backends_cpu_backends_serial {
        private header "__algorithm/pstl_backends/cpu_backends/serial.h"
      }
      module pstl_backends_cpu_backends_stable_sort {
        private header "__algorithm/pstl_backends/cpu_backends/stable_sort.h"
      }
      module pstl_backends_cpu_backends_thread {
        private header "__algorithm/pstl_backends/cpu_backends/thread.h"
      }
      module pstl_backends_cpu_backends_transform {
        private header "__algorithm/pstl_backends/cpu_backends/transform.h"
      }
      module pstl_backends_cpu_backends_transform_reduce {
        private header "__algorithm/pstl_backends/cpu_backends/transform_reduce.h"
      }
      module push_heap                       { private header "__algorithm/push_heap.h" }
      module ranges_adjacent_find            { private header "__algorithm/ranges_adjacent_find.h" }
      module ranges_all_of                   { private header "__algorithm/ranges_all_of.h" }
      module ranges_any_of                   { private header "__algorithm/ranges_any_of.h" }
      module ranges_binary_search {
        private header "__algorithm/ranges_binary_search.h"
        export functional.__functional.ranges_operations
      }
      module ranges_clamp {
        private header "__algorithm/ranges_clamp.h"
        export functional.__functional.ranges_operations
      }
      module ranges_copy {
        private header "__algorithm/ranges_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_copy_backward {
        private header "__algorithm/ranges_copy_backward.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_copy_if {
        private header "__algorithm/ranges_copy_if.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_copy_n {
        private header "__algorithm/ranges_copy_n.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_count                    { private header "__algorithm/ranges_count.h" }
      module ranges_count_if                 { private header "__algorithm/ranges_count_if.h" }
      module ranges_equal                    { private header "__algorithm/ranges_equal.h" }
      module ranges_equal_range {
        private header "__algorithm/ranges_equal_range.h"
        export functional.__functional.ranges_operations
      }
      module ranges_fill                     { private header "__algorithm/ranges_fill.h" }
      module ranges_fill_n                   { private header "__algorithm/ranges_fill_n.h" }
      module ranges_find                     { private header "__algorithm/ranges_find.h" }
      module ranges_find_end                 { private header "__algorithm/ranges_find_end.h" }
      module ranges_find_first_of            { private header "__algorithm/ranges_find_first_of.h" }
      module ranges_find_if                  { private header "__algorithm/ranges_find_if.h" }
      module ranges_find_if_not              { private header "__algorithm/ranges_find_if_not.h" }
      module ranges_for_each {
        private header "__algorithm/ranges_for_each.h"
        export algorithm.__algorithm.in_fun_result
      }
      module ranges_for_each_n {
        private header "__algorithm/ranges_for_each_n.h"
        export algorithm.__algorithm.in_fun_result
      }
      module ranges_generate                 { private header "__algorithm/ranges_generate.h" }
      module ranges_generate_n               { private header "__algorithm/ranges_generate_n.h" }
      module ranges_includes {
        private header "__algorithm/ranges_includes.h"
        export functional.__functional.ranges_operations
      }
      module ranges_inplace_merge {
        private header "__algorithm/ranges_inplace_merge.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_heap {
        private header "__algorithm/ranges_is_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_heap_until {
        private header "__algorithm/ranges_is_heap_until.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_partitioned           { private header "__algorithm/ranges_is_partitioned.h" }
      module ranges_is_permutation           { private header "__algorithm/ranges_is_permutation.h" }
      module ranges_is_sorted {
        private header "__algorithm/ranges_is_sorted.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_sorted_until {
        private header "__algorithm/ranges_is_sorted_until.h"
        export functional.__functional.ranges_operations
      }
      module ranges_iterator_concept         { private header "__algorithm/ranges_iterator_concept.h" }
      module ranges_lexicographical_compare {
        private header "__algorithm/ranges_lexicographical_compare.h"
        export functional.__functional.ranges_operations
      }
      module ranges_lower_bound {
        private header "__algorithm/ranges_lower_bound.h"
        export functional.__functional.ranges_operations
      }
      module ranges_make_heap {
        private header "__algorithm/ranges_make_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_max {
        private header "__algorithm/ranges_max.h"
        export functional.__functional.ranges_operations
      }
      module ranges_max_element {
        private header "__algorithm/ranges_max_element.h"
        export functional.__functional.ranges_operations
      }
      module ranges_merge {
        private header "__algorithm/ranges_merge.h"
        export algorithm.__algorithm.in_in_out_result
      }
      module ranges_min {
        private header "__algorithm/ranges_min.h"
        export functional.__functional.ranges_operations
      }
      module ranges_min_element {
        private header "__algorithm/ranges_min_element.h"
        export functional.__functional.ranges_operations
      }
      module ranges_minmax {
        private header "__algorithm/ranges_minmax.h"
        export functional.__functional.ranges_operations
        export algorithm.__algorithm.min_max_result
      }
      module ranges_minmax_element {
        private header "__algorithm/ranges_minmax_element.h"
        export functional.__functional.ranges_operations
        export algorithm.__algorithm.min_max_result
      }
      module ranges_mismatch {
        private header "__algorithm/ranges_mismatch.h"
        export algorithm.__algorithm.in_in_result
      }
      module ranges_move {
        private header "__algorithm/ranges_move.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_move_backward {
        private header "__algorithm/ranges_move_backward.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_next_permutation {
        private header "__algorithm/ranges_next_permutation.h"
        export algorithm.__algorithm.in_found_result
        export functional.__functional.ranges_operations
      }
      module ranges_none_of                  { private header "__algorithm/ranges_none_of.h" }
      module ranges_nth_element {
        private header "__algorithm/ranges_nth_element.h"
        export functional.__functional.ranges_operations
      }
      module ranges_partial_sort {
        private header "__algorithm/ranges_partial_sort.h"
        export algorithm.__algorithm.in_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_partial_sort_copy {
        private header "__algorithm/ranges_partial_sort_copy.h"
        export algorithm.__algorithm.in_out_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_partition                { private header "__algorithm/ranges_partition.h" }
      module ranges_partition_copy           { private header "__algorithm/ranges_partition_copy.h" }
      module ranges_partition_point          { private header "__algorithm/ranges_partition_point.h" }
      module ranges_pop_heap {
        private header "__algorithm/ranges_pop_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_prev_permutation {
        private header "__algorithm/ranges_prev_permutation.h"
        export algorithm.__algorithm.in_found_result
        export functional.__functional.ranges_operations
      }
      module ranges_push_heap {
        private header "__algorithm/ranges_push_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_remove                   { private header "__algorithm/ranges_remove.h" }
      module ranges_remove_copy {
        private header "__algorithm/ranges_remove_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_remove_copy_if {
        private header "__algorithm/ranges_remove_copy_if.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_remove_if                { private header "__algorithm/ranges_remove_if.h" }
      module ranges_replace                  { private header "__algorithm/ranges_replace.h" }
      module ranges_replace_copy {
        private header "__algorithm/ranges_replace_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_replace_copy_if {
        private header "__algorithm/ranges_replace_copy_if.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
      module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
      module ranges_reverse_copy {
        private header "__algorithm/ranges_reverse_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_rotate                   { private header "__algorithm/ranges_rotate.h" }
      module ranges_rotate_copy {
        private header "__algorithm/ranges_rotate_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_sample                   { private header "__algorithm/ranges_sample.h" }
      module ranges_search                   { private header "__algorithm/ranges_search.h" }
      module ranges_search_n                 { private header "__algorithm/ranges_search_n.h" }
      module ranges_set_difference {
        private header "__algorithm/ranges_set_difference.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_set_intersection {
        private header "__algorithm/ranges_set_intersection.h"
        export algorithm.__algorithm.in_in_out_result
      }
      module ranges_set_symmetric_difference {
        private header "__algorithm/ranges_set_symmetric_difference.h"
        export algorithm.__algorithm.in_in_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_set_union {
        private header "__algorithm/ranges_set_union.h"
        export algorithm.__algorithm.in_in_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_shuffle                  { private header "__algorithm/ranges_shuffle.h" }
      module ranges_sort {
        private header "__algorithm/ranges_sort.h"
        export functional.__functional.ranges_operations
      }
      module ranges_sort_heap {
        private header "__algorithm/ranges_sort_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_stable_partition         { private header "__algorithm/ranges_stable_partition.h" }
      module ranges_stable_sort {
        private header "__algorithm/ranges_stable_sort.h"
        export functional.__functional.ranges_operations
      }
      module ranges_starts_with         { private header "__algorithm/ranges_starts_with.h" }
      module ranges_swap_ranges {
        private header "__algorithm/ranges_swap_ranges.h"
        export algorithm.__algorithm.in_in_result
      }
      module ranges_transform {
        private header "__algorithm/ranges_transform.h"
        export algorithm.__algorithm.in_in_out_result
        export algorithm.__algorithm.in_out_result
      }
      module uniform_random_bit_generator_adaptor {
        private header "__algorithm/uniform_random_bit_generator_adaptor.h"
      }
      module ranges_unique                   { private header "__algorithm/ranges_unique.h" }
      module ranges_unique_copy {
        private header "__algorithm/ranges_unique_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_upper_bound {
        private header "__algorithm/ranges_upper_bound.h"
        export functional.__functional.ranges_operations
      }
      module remove                          { private header "__algorithm/remove.h" }
      module remove_copy                     { private header "__algorithm/remove_copy.h" }
      module remove_copy_if                  { private header "__algorithm/remove_copy_if.h" }
      module remove_if                       { private header "__algorithm/remove_if.h" }
      module replace                         { private header "__algorithm/replace.h" }
      module replace_copy                    { private header "__algorithm/replace_copy.h" }
      module replace_copy_if                 { private header "__algorithm/replace_copy_if.h" }
      module replace_if                      { private header "__algorithm/replace_if.h" }
      module reverse                         { private header "__algorithm/reverse.h" }
      module reverse_copy                    { private header "__algorithm/reverse_copy.h" }
      module rotate                          { private header "__algorithm/rotate.h" }
      module rotate_copy                     { private header "__algorithm/rotate_copy.h" }
      module sample                          { private header "__algorithm/sample.h" }
      module search                          { private header "__algorithm/search.h" }
      module search_n                        { private header "__algorithm/search_n.h" }
      module set_difference                  { private header "__algorithm/set_difference.h" }
      module set_intersection                { private header "__algorithm/set_intersection.h" }
      module set_symmetric_difference        { private header "__algorithm/set_symmetric_difference.h" }
      module set_union                       { private header "__algorithm/set_union.h" }
      module shift_left                      { private header "__algorithm/shift_left.h" }
      module shift_right                     { private header "__algorithm/shift_right.h" }
      module shuffle                         { private header "__algorithm/shuffle.h" }
      module sift_down                       { private header "__algorithm/sift_down.h" }
      module sort                            { private header "__algorithm/sort.h" }
      module sort_heap                       { private header "__algorithm/sort_heap.h" }
      module stable_partition                { private header "__algorithm/stable_partition.h" }
      module stable_sort                     { private header "__algorithm/stable_sort.h" }
      module swap_ranges                     { private header "__algorithm/swap_ranges.h" }
      module three_way_comp_ref_type         { private header "__algorithm/three_way_comp_ref_type.h" }
      module transform                       { private header "__algorithm/transform.h" }
      module unique                          { private header "__algorithm/unique.h" }
      module unique_copy                     { private header "__algorithm/unique_copy.h" }
      module unwrap_iter                     { private header "__algorithm/unwrap_iter.h" }
      module unwrap_range {
        private header "__algorithm/unwrap_range.h"
        export utility.__utility.pair
      }
      module upper_bound                     { private header "__algorithm/upper_bound.h" }
    }
  }
  module any {
    header "any"
    export *
  }
  module array {
    header "array"
    export initializer_list
    export *

    module array_fwd { private header "__fwd/array.h" }
  }
  module atomic {
    header "atomic"
    export *

    module __atomic {
      module aliases             {
        private header "__atomic/aliases.h"
        export atomic
      }
      module atomic              {
        private header "__atomic/atomic.h"

        export atomic_base
      }
      module atomic_base         { private header "__atomic/atomic_base.h" }
      module atomic_flag         { private header "__atomic/atomic_flag.h" }
      module atomic_init         { private header "__atomic/atomic_init.h" }
      module atomic_lock_free    { private header "__atomic/atomic_lock_free.h" }
      module atomic_sync         { private header "__atomic/atomic_sync.h" }
      module check_memory_order  { private header "__atomic/check_memory_order.h" }
      module contention_t        { private header "__atomic/contention_t.h" }
      module cxx_atomic_impl     { private header "__atomic/cxx_atomic_impl.h" }
      module fence               { private header "__atomic/fence.h" }
      module is_always_lock_free { private header "__atomic/is_always_lock_free.h" }
      module kill_dependency     { private header "__atomic/kill_dependency.h" }
      module memory_order        { private header "__atomic/memory_order.h" }
    }
  }
  module barrier {
    @requires_LIBCXX_ENABLE_THREADS@
    header "barrier"
    export *
  }
  module bit {
    header "bit"
    export *

    module __bit {
      module bit_cast       { private header "__bit/bit_cast.h" }
      module bit_ceil       { private header "__bit/bit_ceil.h" }
      module bit_floor      { private header "__bit/bit_floor.h" }
      module bit_log2       { private header "__bit/bit_log2.h" }
      module bit_width      { private header "__bit/bit_width.h" }
      module blsr           { private header "__bit/blsr.h" }
      module byteswap       { private header "__bit/byteswap.h" }
      module countl         { private header "__bit/countl.h" }
      module countr         { private header "__bit/countr.h" }
      module endian         { private header "__bit/endian.h" }
      module has_single_bit { private header "__bit/has_single_bit.h" }
      module popcount       { private header "__bit/popcount.h" }
      module rotate         { private header "__bit/rotate.h" }
    }
  }
  module bitset {
    header "bitset"
    export string
    export iosfwd
    export *
  }
  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
  module charconv {
    header "charconv"
    export *

    module __charconv {
      module chars_format            { private header "__charconv/chars_format.h" }
      module from_chars_integral     { private header "__charconv/from_chars_integral.h" }
      module from_chars_result       { private header "__charconv/from_chars_result.h" }
      module tables                  { private header "__charconv/tables.h" }
      module to_chars                { private header "__charconv/to_chars.h" }
      module to_chars_base_10        { private header "__charconv/to_chars_base_10.h" }
      module to_chars_floating_point { private header "__charconv/to_chars_floating_point.h" }
      module to_chars_integral       { private header "__charconv/to_chars_integral.h" }
      module to_chars_result         { private header "__charconv/to_chars_result.h" }
      module traits                  { private header "__charconv/traits.h" }
    }

  }
  module chrono {
    header "chrono"
    export *

    module __chrono {
      module calendar               { private header "__chrono/calendar.h" }
      module concepts               { private header "__chrono/concepts.h" }
      module convert_to_timespec    { private header "__chrono/convert_to_timespec.h" }
      module convert_to_tm          { private header "__chrono/convert_to_tm.h" }
      module day                    { private header "__chrono/day.h" }
      module duration               { private header "__chrono/duration.h" }
      module file_clock             { private header "__chrono/file_clock.h" }
      module formatter              {
        @requires_LIBCXX_ENABLE_LOCALIZATION@
        private header "__chrono/formatter.h"
      }
      module hh_mm_ss               { private header "__chrono/hh_mm_ss.h" }
      module high_resolution_clock  {
        private header "__chrono/high_resolution_clock.h"
        export steady_clock
        export system_clock
        export time_point
      }
      module literals               { private header "__chrono/literals.h" }
      module month                  { private header "__chrono/month.h" }
      module month_weekday          { private header "__chrono/month_weekday.h" }
      module monthday               { private header "__chrono/monthday.h" }
      module ostream                {
        @requires_LIBCXX_ENABLE_LOCALIZATION@
        private header "__chrono/ostream.h"
      }
      module parser_std_format_spec {
        @requires_LIBCXX_ENABLE_LOCALIZATION@
        private header "__chrono/parser_std_format_spec.h"
      }
      module statically_widen       { private header "__chrono/statically_widen.h" }
      module steady_clock           { private header "__chrono/steady_clock.h" }
      module system_clock           { private header "__chrono/system_clock.h" }
      module time_point             { private header "__chrono/time_point.h" }
      module weekday                { private header "__chrono/weekday.h" }
      module year                   { private header "__chrono/year.h" }
      module year_month             { private header "__chrono/year_month.h" }
      module year_month_day         { private header "__chrono/year_month_day.h" }
      module year_month_weekday     { private header "__chrono/year_month_weekday.h" }
    }
  }
  module codecvt {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "codecvt"
    export *
  }
  module compare {
    header "compare"
    export *

    module __compare {
      module common_comparison_category     { private header "__compare/common_comparison_category.h" }
      module compare_partial_order_fallback { private header "__compare/compare_partial_order_fallback.h" }
      module compare_strong_order_fallback  { private header "__compare/compare_strong_order_fallback.h" }
      module compare_three_way              { private header "__compare/compare_three_way.h" }
      module compare_three_way_result       { private header "__compare/compare_three_way_result.h" }
      module compare_weak_order_fallback    { private header "__compare/compare_weak_order_fallback.h" }
      module is_eq                          { private header "__compare/is_eq.h" }
      module ordering                       { private header "__compare/ordering.h" }
      module partial_order                  { private header "__compare/partial_order.h" }
      module strong_order                   { private header "__compare/strong_order.h" }
      module synth_three_way                { private header "__compare/synth_three_way.h" }
      module three_way_comparable           { private header "__compare/three_way_comparable.h" }
      module weak_order                     { private header "__compare/weak_order.h" }
    }
  }
  module complex {
    header "complex"
    export *
  }
  module concepts {
    header "concepts"
    export *

    module __concepts {
      module arithmetic                 { private header "__concepts/arithmetic.h" }
      module assignable                 { private header "__concepts/assignable.h" }
      module boolean_testable           { private header "__concepts/boolean_testable.h" }
      module class_or_enum              { private header "__concepts/class_or_enum.h" }
      module common_reference_with      { private header "__concepts/common_reference_with.h" }
      module common_with                { private header "__concepts/common_with.h" }
      module constructible              { private header "__concepts/constructible.h" }
      module convertible_to             { private header "__concepts/convertible_to.h" }
      module copyable                   { private header "__concepts/copyable.h" }
      module derived_from               { private header "__concepts/derived_from.h" }
      module destructible               { private header "__concepts/destructible.h" }
      module different_from             { private header "__concepts/different_from.h" }
      module equality_comparable {
        private header "__concepts/equality_comparable.h"
        export type_traits.common_reference
      }
      module invocable                  { private header "__concepts/invocable.h" }
      module movable                    { private header "__concepts/movable.h" }
      module predicate                  { private header "__concepts/predicate.h" }
      module regular                    { private header "__concepts/regular.h" }
      module relation                   { private header "__concepts/relation.h" }
      module same_as {
        private header "__concepts/same_as.h"
        export type_traits.is_same
      }
      module semiregular                { private header "__concepts/semiregular.h" }
      module swappable                  { private header "__concepts/swappable.h" }
      module totally_ordered            { private header "__concepts/totally_ordered.h" }
    }
  }
  module condition_variable {
    header "condition_variable"
    export *

    module __condition_variable {
      module condition_variable { private header "__condition_variable/condition_variable.h" }
    }
  }
  module deque {
    header "deque"
    export initializer_list
    export *
  }
  module exception {
    header "exception"
    export *

    module __exception {
      module exception        { private header "__exception/exception.h" }
      module exception_ptr    { private header "__exception/exception_ptr.h" }
      module nested_exception { private header "__exception/nested_exception.h" }
      module operations       { private header "__exception/operations.h" }
      module terminate        { private header "__exception/terminate.h" }
    }
  }
  module execution {
    header "execution"
    export *
  }
  module expected {
    header "expected"
    export *

    module __expected {
      module bad_expected_access          { private header "__expected/bad_expected_access.h" }
      module expected                     { private header "__expected/expected.h" }
      module unexpect                     { private header "__expected/unexpect.h" }
      module unexpected                   { private header "__expected/unexpected.h" }
    }
  }
  module filesystem {
    @requires_LIBCXX_ENABLE_FILESYSTEM@
    header "filesystem"
    export *

    module __filesystem {
      module copy_options                 { private header "__filesystem/copy_options.h" }
      module directory_entry              { private header "__filesystem/directory_entry.h" }
      module directory_iterator           { private header "__filesystem/directory_iterator.h" }
      module directory_options            { private header "__filesystem/directory_options.h" }
      module file_status                  { private header "__filesystem/file_status.h" }
      module file_time_type               { private header "__filesystem/file_time_type.h" }
      module file_type                    { private header "__filesystem/file_type.h" }
      module filesystem_error             { private header "__filesystem/filesystem_error.h" }
      module operations                   { private header "__filesystem/operations.h" }
      module path                         {
        private header "__filesystem/path.h"
        export functional.__functional.hash
        export functional.__functional.unary_function
      }
      module path_iterator                { private header "__filesystem/path_iterator.h" }
      module perm_options                 { private header "__filesystem/perm_options.h" }
      module perms                        { private header "__filesystem/perms.h" }
      module recursive_directory_iterator { private header "__filesystem/recursive_directory_iterator.h" }
      module space_info                   { private header "__filesystem/space_info.h" }
      module u8path                       { private header "__filesystem/u8path.h" }
    }
  }
  module format {
    header "format"
    export *

    module __format {
      module buffer                          { private header "__format/buffer.h" }
      module concepts                        { private header "__format/concepts.h" }
      module container_adaptor               { private header "__format/container_adaptor.h" }
      module enable_insertable               { private header "__format/enable_insertable.h" }
      module escaped_output_table            { private header "__format/escaped_output_table.h" }
      module extended_grapheme_cluster_table { private header "__format/extended_grapheme_cluster_table.h" }
      module format_arg                      { private header "__format/format_arg.h" }
      module format_arg_store                { private header "__format/format_arg_store.h" }
      module format_args                     { private header "__format/format_args.h" }
      module format_context {
        private header "__format/format_context.h"
        export optional
        export locale
        export __locale
      }
      module format_error                    { private header "__format/format_error.h" }
      module format_functions                {
        private header "__format/format_functions.h"
        export string
      }
      module format_fwd                      { private header "__format/format_fwd.h" }
      module format_parse_context            { private header "__format/format_parse_context.h" }
      module format_string                   { private header "__format/format_string.h" }
      module format_to_n_result {
        private header "__format/format_to_n_result.h"
        export iterator.__iterator.incrementable_traits
      }
      module formatter                       { private header "__format/formatter.h" }
      module formatter_bool                  { private header "__format/formatter_bool.h" }
      module formatter_char                  { private header "__format/formatter_char.h" }
      module formatter_floating_point        { private header "__format/formatter_floating_point.h" }
      module formatter_integer               { private header "__format/formatter_integer.h" }
      module formatter_integral              { private header "__format/formatter_integral.h" }
      module formatter_output                { private header "__format/formatter_output.h" }
      module formatter_pointer               { private header "__format/formatter_pointer.h" }
      module formatter_string                { private header "__format/formatter_string.h" }
      module formatter_tuple                 { private header "__format/formatter_tuple.h" }
      module parser_std_format_spec          { private header "__format/parser_std_format_spec.h" }
      module range_default_formatter         { private header "__format/range_default_formatter.h" }
      module range_formatter                 { private header "__format/range_formatter.h" }
      module unicode                         { private header "__format/unicode.h" }
      module width_estimation_table          { private header "__format/width_estimation_table.h" }
    }
  }
  module forward_list {
    header "forward_list"
    export initializer_list
    export *
  }
  module fstream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    @requires_LIBCXX_ENABLE_FSTREAM@
    header "fstream"
    export *
  }
  module functional {
    header "functional"
    // the contents of __type_traits/unwrap_ref.h should be available from functional too.
    export type_traits.unwrap_ref
    export *

    module __functional {
      module binary_function            { private header "__functional/binary_function.h" }
      module binary_negate              { private header "__functional/binary_negate.h" }
      module bind                       { private header "__functional/bind.h" }
      module bind_back                  { private header "__functional/bind_back.h" }
      module bind_front                 { private header "__functional/bind_front.h" }
      module binder1st                  { private header "__functional/binder1st.h" }
      module binder2nd                  { private header "__functional/binder2nd.h" }
      module boyer_moore_searcher       { private header "__functional/boyer_moore_searcher.h" }
      module compose                    { private header "__functional/compose.h" }
      module default_searcher           { private header "__functional/default_searcher.h" }
      module function                   { private header "__functional/function.h" }
      module hash                       { private header "__functional/hash.h" }
      module hash_fwd                   { private header "__fwd/hash.h" }
      module identity                   { private header "__functional/identity.h" }
      module invoke                     {
        private header "__functional/invoke.h"
        export type_traits
      }
      module is_transparent             { private header "__functional/is_transparent.h" }
      module mem_fn                     { private header "__functional/mem_fn.h" }
      module mem_fun_ref                { private header "__functional/mem_fun_ref.h" }
      module not_fn                     { private header "__functional/not_fn.h" }
      module operations                 { private header "__functional/operations.h" }
      module perfect_forward            { private header "__functional/perfect_forward.h" }
      module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
      module pointer_to_unary_function  { private header "__functional/pointer_to_unary_function.h" }
      module ranges_operations          { private header "__functional/ranges_operations.h" }
      module reference_wrapper          { private header "__functional/reference_wrapper.h" }
      module unary_function             { private header "__functional/unary_function.h" }
      module unary_negate               { private header "__functional/unary_negate.h" }
      module weak_result_type           { private header "__functional/weak_result_type.h" }
    }
  }
  module future {
    @requires_LIBCXX_ENABLE_THREADS@
    header "future"
    export *
  }
  module initializer_list {
    header "initializer_list"
    export *
  }
  module iomanip {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "iomanip"
    export *
  }
  module ios {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "ios"
    export iosfwd
    export *

    module __ios {
      module fpos { private header "__ios/fpos.h" }
    }
  }
  module iosfwd {
    header "iosfwd"
    export *
    module __iosfwd {
      module fstream_fwd   { private header "__fwd/fstream.h" }
      module ios_fwd       { private header "__fwd/ios.h" }
      module istream_fwd   { private header "__fwd/istream.h" }
      module ostream_fwd   { private header "__fwd/ostream.h" }
      module sstream_fwd   { private header "__fwd/sstream.h" }
      module streambuf_fwd { private header "__fwd/streambuf.h" }
    }
  }
  module iostream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "iostream"
    export ios
    export streambuf
    export istream
    export ostream
    export *
  }
  module istream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "istream"
    // FIXME: should re-export ios, streambuf?
    export *
  }
  module iterator {
    header "iterator"
    export *

    module __iterator {
      module access                { private header "__iterator/access.h" }
      module advance               { private header "__iterator/advance.h" }
      module back_insert_iterator  { private header "__iterator/back_insert_iterator.h" }
      module bounded_iter          { private header "__iterator/bounded_iter.h" }
      module common_iterator       { private header "__iterator/common_iterator.h" }
      module concepts {
        private header "__iterator/concepts.h"
        export concepts.equality_comparable
        export type_traits.common_reference
      }
      module counted_iterator      { private header "__iterator/counted_iterator.h" }
      module data                  { private header "__iterator/data.h" }
      module default_sentinel      { private header "__iterator/default_sentinel.h" }
      module distance              { private header "__iterator/distance.h" }
      module empty                 { private header "__iterator/empty.h" }
      module erase_if_container    { private header "__iterator/erase_if_container.h" }
      module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
      module incrementable_traits  { private header "__iterator/incrementable_traits.h" }
      module indirectly_comparable { private header "__iterator/indirectly_comparable.h" }
      module insert_iterator       { private header "__iterator/insert_iterator.h" }
      module istream_iterator      { private header "__iterator/istream_iterator.h" }
      module istreambuf_iterator   { private header "__iterator/istreambuf_iterator.h" }
      module iter_move             { private header "__iterator/iter_move.h" }
      module iter_swap             { private header "__iterator/iter_swap.h" }
      module iterator              { private header "__iterator/iterator.h" }
      module iterator_traits       { private header "__iterator/iterator_traits.h" }
      module iterator_with_data    { private header "__iterator/iterator_with_data.h" }
      module mergeable {
        private header "__iterator/mergeable.h"
        export functional.__functional.ranges_operations
      }
      module move_iterator         { private header "__iterator/move_iterator.h" }
      module move_sentinel         { private header "__iterator/move_sentinel.h" }
      module next                  { private header "__iterator/next.h" }
      module ostream_iterator      { private header "__iterator/ostream_iterator.h" }
      module ostreambuf_iterator   {
        private header "__iterator/ostreambuf_iterator.h"
        export iosfwd
      }
      module permutable            { private header "__iterator/permutable.h" }
      module prev                  { private header "__iterator/prev.h" }
      module projected             { private header "__iterator/projected.h" }
      module readable_traits       {
        private header "__iterator/readable_traits.h"
        export __iterator.iterator_traits
      }
      module reverse_access        { private header "__iterator/reverse_access.h" }
      module reverse_iterator      { private header "__iterator/reverse_iterator.h" }
      module segmented_iterator    { private header "__iterator/segmented_iterator.h" }
      module size                  { private header "__iterator/size.h" }
      module sortable {
        private header "__iterator/sortable.h"
        export functional.__functional.ranges_operations
      }
      module unreachable_sentinel  { private header "__iterator/unreachable_sentinel.h" }
      module wrap_iter             { private header "__iterator/wrap_iter.h" }
    }
  }
  module latch {
    @requires_LIBCXX_ENABLE_THREADS@
    header "latch"
    export *
  }

  module __debug_utils {
    module randomize_range { private header "__debug_utils/randomize_range.h" }
  }

  module limits {
    header "limits"
    export *
  }
  module list {
    header "list"
    export initializer_list
    export *
  }
  module locale {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "locale"
    export *
  }
  module map {
    header "map"
    export initializer_list
    export *
  }
  module mdspan {
    header "mdspan"
    export array
    export span
    export *

    module __mdspan {
      module extents                         { private header "__mdspan/extents.h" }
    }
  }
  module memory {
    header "memory"
    export *

    module __memory {
      module addressof                       { private header "__memory/addressof.h" }
      module align                           { private header "__memory/align.h" }
      module aligned_alloc                   { private header "__memory/aligned_alloc.h" }
      module allocate_at_least               { private header "__memory/allocate_at_least.h" }
      module allocation_guard                { private header "__memory/allocation_guard.h" }
      module allocator                       { private header "__memory/allocator.h" }
      module allocator_arg_t                 { private header "__memory/allocator_arg_t.h" }
      module allocator_destructor            { private header "__memory/allocator_destructor.h" }
      module allocator_traits                { private header "__memory/allocator_traits.h" }
      module assume_aligned                  { private header "__memory/assume_aligned.h" }
      module auto_ptr                        { private header "__memory/auto_ptr.h" }
      module builtin_new_allocator           { private header "__memory/builtin_new_allocator.h" }
      module compressed_pair                 { private header "__memory/compressed_pair.h" }
      module concepts                        {
        private header "__memory/concepts.h"
        export type_traits.remove_reference
      }
      module construct_at                    { private header "__memory/construct_at.h" }
      module destruct_n                      { private header "__memory/destruct_n.h" }
      module pointer_traits                  { private header "__memory/pointer_traits.h" }
      module ranges_construct_at             { private header "__memory/ranges_construct_at.h" }
      module ranges_uninitialized_algorithms {
        private header "__memory/ranges_uninitialized_algorithms.h"
        export algorithm.__algorithm.in_out_result
      }
      module raw_storage_iterator            { private header "__memory/raw_storage_iterator.h" }
      module shared_ptr                      { private header "__memory/shared_ptr.h" }
      module swap_allocator                  { private header "__memory/swap_allocator.h" }
      module temp_value                      { private header "__memory/temp_value.h" }
      module temporary_buffer                { private header "__memory/temporary_buffer.h" }
      module uninitialized_algorithms        { private header "__memory/uninitialized_algorithms.h" }
      module unique_ptr                      { private header "__memory/unique_ptr.h" }
      module uses_allocator                  { private header "__memory/uses_allocator.h" }
      module uses_allocator_construction     { private header "__memory/uses_allocator_construction.h" }
      module voidify                         { private header "__memory/voidify.h" }
    }
  }
  module memory_resource {
    header "memory_resource"
    export *

    module __memory_resource {
      module memory_resource              { private header "__memory_resource/memory_resource.h" }
      module memory_resource_fwd          { private header "__fwd/memory_resource.h" }
      module monotonic_buffer_resource    { private header "__memory_resource/monotonic_buffer_resource.h" }
      module polymorphic_allocator        { private header "__memory_resource/polymorphic_allocator.h" }
      module pool_options                 { private header "__memory_resource/pool_options.h" }
      module synchronized_pool_resource   { private header "__memory_resource/synchronized_pool_resource.h" }
      module unsynchronized_pool_resource { private header "__memory_resource/unsynchronized_pool_resource.h" }
    }
  }
  module mutex {
    @requires_LIBCXX_ENABLE_THREADS@
    header "mutex"
    export *

    module __mutex {
      module lock_guard  { private header "__mutex/lock_guard.h" }
      module mutex       { private header "__mutex/mutex.h" }
      module tag_types   { private header "__mutex/tag_types.h" }
      module unique_lock { private header "__mutex/unique_lock.h" }
    }
  }
  module new {
    header "new"
    export *
  }
  module numbers {
    header "numbers"
    export *
  }
  module numeric {
    header "numeric"
    export *

    module __numeric {
      module accumulate               { private header "__numeric/accumulate.h" }
      module adjacent_difference      { private header "__numeric/adjacent_difference.h" }
      module exclusive_scan           { private header "__numeric/exclusive_scan.h" }
      module gcd_lcm                  { private header "__numeric/gcd_lcm.h" }
      module inclusive_scan           { private header "__numeric/inclusive_scan.h" }
      module inner_product            { private header "__numeric/inner_product.h" }
      module iota                     { private header "__numeric/iota.h" }
      module midpoint                 { private header "__numeric/midpoint.h" }
      module partial_sum              { private header "__numeric/partial_sum.h" }
      module reduce                   { private header "__numeric/reduce.h" }
      module transform_exclusive_scan { private header "__numeric/transform_exclusive_scan.h" }
      module transform_inclusive_scan { private header "__numeric/transform_inclusive_scan.h" }
      module transform_reduce         { private header "__numeric/transform_reduce.h" }
    }
  }
  module optional {
    header "optional"
    export *
  }
  module ostream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "ostream"
    // FIXME: should re-export ios, streambuf?
    export *
  }
  module queue {
    header "queue"
    export initializer_list
    export *
  }
  module random {
    header "random"
    export initializer_list
    export *

    module __random {
      module bernoulli_distribution          { private header "__random/bernoulli_distribution.h" }
      module binomial_distribution           { private header "__random/binomial_distribution.h" }
      module cauchy_distribution             { private header "__random/cauchy_distribution.h" }
      module chi_squared_distribution        { private header "__random/chi_squared_distribution.h" }
      module clamp_to_integral               { private header "__random/clamp_to_integral.h" }
      module default_random_engine           { private header "__random/default_random_engine.h" }
      module discard_block_engine            { private header "__random/discard_block_engine.h" }
      module discrete_distribution {
        private header "__random/discrete_distribution.h"
        export vector
      }
      module exponential_distribution        { private header "__random/exponential_distribution.h" }
      module extreme_value_distribution      { private header "__random/extreme_value_distribution.h" }
      module fisher_f_distribution           { private header "__random/fisher_f_distribution.h" }
      module gamma_distribution              { private header "__random/gamma_distribution.h" }
      module generate_canonical              { private header "__random/generate_canonical.h" }
      module geometric_distribution          { private header "__random/geometric_distribution.h" }
      module independent_bits_engine         { private header "__random/independent_bits_engine.h" }
      module is_seed_sequence                { private header "__random/is_seed_sequence.h" }
      module is_valid                        { private header "__random/is_valid.h" }
      module knuth_b                         { private header "__random/knuth_b.h" }
      module linear_congruential_engine      { private header "__random/linear_congruential_engine.h" }
      module log2                            { private header "__random/log2.h" }
      module lognormal_distribution          { private header "__random/lognormal_distribution.h" }
      module mersenne_twister_engine         { private header "__random/mersenne_twister_engine.h" }
      module negative_binomial_distribution  { private header "__random/negative_binomial_distribution.h" }
      module normal_distribution             { private header "__random/normal_distribution.h" }
      module piecewise_constant_distribution {
        private header "__random/piecewise_constant_distribution.h"
        export vector
      }
      module piecewise_linear_distribution {
        private header "__random/piecewise_linear_distribution.h"
        export vector
      }
      module poisson_distribution            { private header "__random/poisson_distribution.h" }
      module random_device                   { private header "__random/random_device.h" }
      module ranlux                          { private header "__random/ranlux.h" }
      module seed_seq                        { private header "__random/seed_seq.h" }
      module shuffle_order_engine            { private header "__random/shuffle_order_engine.h" }
      module student_t_distribution          { private header "__random/student_t_distribution.h" }
      module subtract_with_carry_engine      { private header "__random/subtract_with_carry_engine.h" }
      module uniform_int_distribution        { private header "__random/uniform_int_distribution.h" }
      module uniform_random_bit_generator    { private header "__random/uniform_random_bit_generator.h" }
      module uniform_real_distribution       { private header "__random/uniform_real_distribution.h" }
      module weibull_distribution            { private header "__random/weibull_distribution.h" }
    }
  }
  module ranges {
    header "ranges"
    export compare
    export initializer_list
    export iterator
    export *

    module __ranges {
      module access                     { private header "__ranges/access.h" }
      module all                        {
        private header "__ranges/all.h"
        export functional.__functional.compose
        export functional.__functional.perfect_forward
      }
      module as_rvalue_view             { private header "__ranges/as_rvalue_view.h" }
      module common_view                { private header "__ranges/common_view.h" }
      module concepts                   { private header "__ranges/concepts.h" }
      module container_compatible_range { private header "__ranges/container_compatible_range.h" }
      module copyable_box               { private header "__ranges/copyable_box.h" }
      module counted                    {
        private header "__ranges/counted.h"
        export span
      }
      module dangling                   { private header "__ranges/dangling.h" }
      module data                       { private header "__ranges/data.h" }
      module drop_view                  { private header "__ranges/drop_view.h" }
      module drop_while_view            { private header "__ranges/drop_while_view.h" }
      module elements_view              { private header "__ranges/elements_view.h" }
      module empty                      { private header "__ranges/empty.h" }
      module empty_view                 { private header "__ranges/empty_view.h" }
      module enable_borrowed_range      { private header "__ranges/enable_borrowed_range.h" }
      module enable_view                { private header "__ranges/enable_view.h" }
      module filter_view                { private header "__ranges/filter_view.h" }
      module from_range                 { private header "__ranges/from_range.h" }
      module iota_view                  { private header "__ranges/iota_view.h" }
      module istream_view               {
        @requires_LIBCXX_ENABLE_LOCALIZATION@
        private header "__ranges/istream_view.h"
      }
      module join_view                  { private header "__ranges/join_view.h" }
      module lazy_split_view            { private header "__ranges/lazy_split_view.h" }
      module non_propagating_cache      { private header "__ranges/non_propagating_cache.h" }
      module owning_view                { private header "__ranges/owning_view.h" }
      module range_adaptor              { private header "__ranges/range_adaptor.h" }
      module rbegin                     { private header "__ranges/rbegin.h" }
      module ref_view                   { private header "__ranges/ref_view.h" }
      module rend                       { private header "__ranges/rend.h" }
      module reverse_view               { private header "__ranges/reverse_view.h" }
      module single_view                { private header "__ranges/single_view.h" }
      module size                       { private header "__ranges/size.h" }
      module split_view                 { private header "__ranges/split_view.h" }
      module subrange                   {
        private header "__ranges/subrange.h"
        export subrange_fwd
      }
      module subrange_fwd               { private header "__fwd/subrange.h" }
      module take_view                  { private header "__ranges/take_view.h" }
      module take_while_view            { private header "__ranges/take_while_view.h" }
      module transform_view             {
        private header "__ranges/transform_view.h"
        export functional.__functional.bind_back
        export functional.__functional.perfect_forward
      }
      module view_interface             { private header "__ranges/view_interface.h" }
      module views                      { private header "__ranges/views.h" }
      module zip_view                   { private header "__ranges/zip_view.h" }
    }
  }
  module ratio {
    header "ratio"
    export *
  }
  module regex {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "regex"
    export initializer_list
    export *
  }
  module scoped_allocator {
    header "scoped_allocator"
    export *
  }
  module semaphore {
    @requires_LIBCXX_ENABLE_THREADS@
    header "semaphore"
    export *
  }
  module set {
    header "set"
    export initializer_list
    export *
  }
  module shared_mutex {
    @requires_LIBCXX_ENABLE_THREADS@
    header "shared_mutex"
    export version
  }
  module source_location {
    header "source_location"
    export *
  }
  module span {
    header "span"
    export ranges.__ranges.enable_borrowed_range
    export version
    module span_fwd { private header "__fwd/span.h" }
  }
  module sstream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "sstream"
    // FIXME: should re-export istream, ostream, ios, streambuf, string?
    export *
  }
  module stack {
    header "stack"
    export initializer_list
    export *
  }
  module stdexcept {
    header "stdexcept"
    export *
  }
  module stop_token {
    export *
    module __stop_token {
      module atomic_unique_lock   { private header "__stop_token/atomic_unique_lock.h" }
      module intrusive_list_view  { private header "__stop_token/intrusive_list_view.h" }
      module intrusive_shared_ptr { private header "__stop_token/intrusive_shared_ptr.h" }
    }
  }
  module streambuf {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "streambuf"
    export *
  }
  module string {
    header "string"
    export initializer_list
    export string_view
    module __string {
      module char_traits           { private header "__string/char_traits.h" }
      module constexpr_c_functions { private header "__string/constexpr_c_functions.h" }
      module extern_template_lists { private header "__string/extern_template_lists.h" }
      module string_fwd            { private header "__fwd/string.h" }
    }
    export *
  }
  module string_view {
    header "string_view"
    export initializer_list
    export *
    module string_view_fwd { private header "__fwd/string_view.h" }
  }
  module strstream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "strstream"
    export *
  }
  module system_error {
    header "system_error"
    export __errc
    export *
    module __system_error {
      module errc           { private header "__system_error/errc.h" }
      module error_category { private header "__system_error/error_category.h" }
      module error_code {
        private header "__system_error/error_code.h"
        export functional.__functional.hash
        export functional.__functional.unary_function
      }
      module error_condition {
        private header "__system_error/error_condition.h"
        export functional.__functional.hash
        export functional.__functional.unary_function
      }
      module system_error { private header "__system_error/system_error.h" }

    }
  }
  module thread {
    @requires_LIBCXX_ENABLE_THREADS@
    header "thread"
    export *

    module __thread {
      module poll_with_backoff    { private header "__thread/poll_with_backoff.h" }
      module timed_backoff_policy { private header "__thread/timed_backoff_policy.h" }
    }
  }
  module tuple {
    header "tuple"
    export *

    module get_fwd          { private header "__fwd/get.h" }
    module make_tuple_types { private header "__tuple/make_tuple_types.h" }
    module pair_like        { private header "__tuple/pair_like.h" }
    module sfinae_helpers   { private header "__tuple/sfinae_helpers.h" }
    module tuple_element    { private header "__tuple/tuple_element.h" }
    module tuple_fwd        { private header "__fwd/tuple.h" }
    module tuple_indices    { private header "__tuple/tuple_indices.h" }
    module tuple_like       { private header "__tuple/tuple_like.h" }
    module tuple_like_ext   { private header "__tuple/tuple_like_ext.h" }
    module tuple_size       { private header "__tuple/tuple_size.h" }
    module tuple_types      { private header "__tuple/tuple_types.h" }
  }
  module type_traits {
    header "type_traits"
    export *

    module add_const                                 { private header "__type_traits/add_const.h" }
    module add_cv                                    { private header "__type_traits/add_cv.h" }
    module add_lvalue_reference                      { private header "__type_traits/add_lvalue_reference.h" }
    module add_pointer                               { private header "__type_traits/add_pointer.h" }
    module add_rvalue_reference                      { private header "__type_traits/add_rvalue_reference.h" }
    module add_volatile                              { private header "__type_traits/add_volatile.h" }
    module aligned_storage                           { private header "__type_traits/aligned_storage.h" }
    module aligned_union                             { private header "__type_traits/aligned_union.h" }
    module alignment_of                              { private header "__type_traits/alignment_of.h" }
    module apply_cv                                  { private header "__type_traits/apply_cv.h" }
    module can_extract_key                           { private header "__type_traits/can_extract_key.h" }
    module common_reference                          { private header "__type_traits/common_reference.h" }
    module common_type                               { private header "__type_traits/common_type.h" }
    module conditional                               { private header "__type_traits/conditional.h" }
    module conjunction                               { private header "__type_traits/conjunction.h" }
    module copy_cv                                   { private header "__type_traits/copy_cv.h" }
    module copy_cvref                                { private header "__type_traits/copy_cvref.h" }
    module decay                                     { private header "__type_traits/decay.h" }
    module dependent_type                            { private header "__type_traits/dependent_type.h" }
    module disjunction                               { private header "__type_traits/disjunction.h" }
    module enable_if                                 { private header "__type_traits/enable_if.h" }
    module extent                                    { private header "__type_traits/extent.h" }
    module has_unique_object_representation          { private header "__type_traits/has_unique_object_representation.h" }
    module has_virtual_destructor                    { private header "__type_traits/has_virtual_destructor.h" }
    module integral_constant                         { private header "__type_traits/integral_constant.h" }
    module invoke                                    { private header "__type_traits/invoke.h" }
    module is_abstract                               { private header "__type_traits/is_abstract.h" }
    module is_aggregate                              { private header "__type_traits/is_aggregate.h" }
    module is_allocator                              { private header "__type_traits/is_allocator.h" }
    module is_always_bitcastable                     { private header "__type_traits/is_always_bitcastable.h" }
    module is_arithmetic {
      private header "__type_traits/is_arithmetic.h"
      export integral_constant
    }
    module is_array                                  {
      private header "__type_traits/is_array.h"
      export integral_constant
    }
    module is_assignable                             { private header "__type_traits/is_assignable.h" }
    module is_base_of                                { private header "__type_traits/is_base_of.h" }
    module is_bounded_array                          { private header "__type_traits/is_bounded_array.h" }
    module is_callable                               { private header "__type_traits/is_callable.h" }
    module is_char_like_type                         { private header "__type_traits/is_char_like_type.h" }
    module is_class                                  { private header "__type_traits/is_class.h" }
    module is_compound                               { private header "__type_traits/is_compound.h" }
    module is_const                                  { private header "__type_traits/is_const.h" }
    module is_constant_evaluated                     { private header "__type_traits/is_constant_evaluated.h" }
    module is_constructible                          { private header "__type_traits/is_constructible.h" }
    module is_convertible                            { private header "__type_traits/is_convertible.h" }
    module is_copy_assignable                        { private header "__type_traits/is_copy_assignable.h" }
    module is_copy_constructible                     { private header "__type_traits/is_copy_constructible.h" }
    module is_core_convertible                       {
      private header "__type_traits/is_core_convertible.h"
      export integral_constant
    }
    module is_default_constructible                  { private header "__type_traits/is_default_constructible.h" }
    module is_destructible                           { private header "__type_traits/is_destructible.h" }
    module is_empty                                  { private header "__type_traits/is_empty.h" }
    module is_enum                                   {
      private header "__type_traits/is_enum.h"
      export integral_constant
    }
    module is_equality_comparable                    {
      private header "__type_traits/is_equality_comparable.h"
      export integral_constant
    }
    module is_execution_policy                       { private header "__type_traits/is_execution_policy.h" }
    module is_final                                  { private header "__type_traits/is_final.h" }
    module is_floating_point                         { private header "__type_traits/is_floating_point.h" }
    module is_function                               { private header "__type_traits/is_function.h" }
    module is_fundamental                            { private header "__type_traits/is_fundamental.h" }
    module is_implicitly_default_constructible       { private header "__type_traits/is_implicitly_default_constructible.h" }
    module is_integral                               { private header "__type_traits/is_integral.h" }
    module is_literal_type                           { private header "__type_traits/is_literal_type.h" }
    module is_member_function_pointer                { private header "__type_traits/is_member_function_pointer.h" }
    module is_member_object_pointer                  { private header "__type_traits/is_member_object_pointer.h" }
    module is_member_pointer                         { private header "__type_traits/is_member_pointer.h" }
    module is_move_assignable                        { private header "__type_traits/is_move_assignable.h" }
    module is_move_constructible                     { private header "__type_traits/is_move_constructible.h" }
    module is_nothrow_assignable                     { private header "__type_traits/is_nothrow_assignable.h" }
    module is_nothrow_constructible                  { private header "__type_traits/is_nothrow_constructible.h" }
    module is_nothrow_convertible                    { private header "__type_traits/is_nothrow_convertible.h" }
    module is_nothrow_copy_assignable                { private header "__type_traits/is_nothrow_copy_assignable.h" }
    module is_nothrow_copy_constructible             { private header "__type_traits/is_nothrow_copy_constructible.h" }
    module is_nothrow_default_constructible          { private header "__type_traits/is_nothrow_default_constructible.h" }
    module is_nothrow_destructible                   { private header "__type_traits/is_nothrow_destructible.h" }
    module is_nothrow_move_assignable                { private header "__type_traits/is_nothrow_move_assignable.h" }
    module is_nothrow_move_constructible             { private header "__type_traits/is_nothrow_move_constructible.h" }
    module is_null_pointer                           { private header "__type_traits/is_null_pointer.h" }
    module is_object                                 { private header "__type_traits/is_object.h" }
    module is_pod                                    { private header "__type_traits/is_pod.h" }
    module is_pointer                                { private header "__type_traits/is_pointer.h" }
    module is_polymorphic                            { private header "__type_traits/is_polymorphic.h" }
    module is_primary_template                       { private header "__type_traits/is_primary_template.h" }
    module is_reference                              { private header "__type_traits/is_reference.h" }
    module is_reference_wrapper                      { private header "__type_traits/is_reference_wrapper.h" }
    module is_referenceable                          { private header "__type_traits/is_referenceable.h" }
    module is_same                                   {
      private header "__type_traits/is_same.h"
      export type_traits.integral_constant
    }
    module is_scalar                                 { private header "__type_traits/is_scalar.h" }
    module is_scoped_enum                            { private header "__type_traits/is_scoped_enum.h" }
    module is_signed                                 { private header "__type_traits/is_signed.h" }
    module is_signed_integer                         { private header "__type_traits/is_signed_integer.h" }
    module is_specialization                         { private header "__type_traits/is_specialization.h" }
    module is_standard_layout                        { private header "__type_traits/is_standard_layout.h" }
    module is_swappable                              { private header "__type_traits/is_swappable.h" }
    module is_trivial                                { private header "__type_traits/is_trivial.h" }
    module is_trivially_assignable                   { private header "__type_traits/is_trivially_assignable.h" }
    module is_trivially_constructible                { private header "__type_traits/is_trivially_constructible.h" }
    module is_trivially_copy_assignable              { private header "__type_traits/is_trivially_copy_assignable.h" }
    module is_trivially_copy_constructible           { private header "__type_traits/is_trivially_copy_constructible.h" }
    module is_trivially_copyable                     { private header "__type_traits/is_trivially_copyable.h" }
    module is_trivially_default_constructible        { private header "__type_traits/is_trivially_default_constructible.h" }
    module is_trivially_destructible                 { private header "__type_traits/is_trivially_destructible.h" }
    module is_trivially_lexicographically_comparable { private header "__type_traits/is_trivially_lexicographically_comparable.h" }
    module is_trivially_move_assignable              { private header "__type_traits/is_trivially_move_assignable.h" }
    module is_trivially_move_constructible           { private header "__type_traits/is_trivially_move_constructible.h" }
    module is_unbounded_array                        { private header "__type_traits/is_unbounded_array.h" }
    module is_union                                  { private header "__type_traits/is_union.h" }
    module is_unsigned                               { private header "__type_traits/is_unsigned.h" }
    module is_unsigned_integer                       { private header "__type_traits/is_unsigned_integer.h" }
    module is_valid_expansion                        { private header "__type_traits/is_valid_expansion.h" }
    module is_void                                   {
      private header "__type_traits/is_void.h"
      export integral_constant
    }
    module is_volatile                               { private header "__type_traits/is_volatile.h" }
    module lazy                                      { private header "__type_traits/lazy.h" }
    module make_32_64_or_128_bit                     { private header "__type_traits/make_32_64_or_128_bit.h" }
    module make_const_lvalue_ref                     { private header "__type_traits/make_const_lvalue_ref.h" }
    module make_signed                               { private header "__type_traits/make_signed.h" }
    module make_unsigned                             { private header "__type_traits/make_unsigned.h" }
    module maybe_const                               { private header "__type_traits/maybe_const.h" }
    module nat                                       { private header "__type_traits/nat.h" }
    module negation                                  { private header "__type_traits/negation.h" }
    module noexcept_move_assign_container            { private header "__type_traits/noexcept_move_assign_container.h" }
    module operation_traits                          { private header "__type_traits/operation_traits.h" }
    module predicate_traits                          { private header "__type_traits/predicate_traits.h" }
    module promote                                   { private header "__type_traits/promote.h" }
    module rank                                      { private header "__type_traits/rank.h" }
    module remove_all_extents                        { private header "__type_traits/remove_all_extents.h" }
    module remove_const                              { private header "__type_traits/remove_const.h" }
    module remove_const_ref                          { private header "__type_traits/remove_const_ref.h" }
    module remove_cv                                 { private header "__type_traits/remove_cv.h" }
    module remove_cvref                              { private header "__type_traits/remove_cvref.h" }
    module remove_extent                             { private header "__type_traits/remove_extent.h" }
    module remove_pointer                            { private header "__type_traits/remove_pointer.h" }
    module remove_reference                          { private header "__type_traits/remove_reference.h" }
    module remove_volatile                           { private header "__type_traits/remove_volatile.h" }
    module result_of                                 { private header "__type_traits/result_of.h" }
    module strip_signature                           { private header "__type_traits/strip_signature.h" }
    module type_identity                             { private header "__type_traits/type_identity.h" }
    module type_list                                 { private header "__type_traits/type_list.h" }
    module underlying_type                           {
      private header "__type_traits/underlying_type.h"

      export type_traits
    }
    module unwrap_ref                                { private header "__type_traits/unwrap_ref.h" }
    module void_t                                    { private header "__type_traits/void_t.h" }
  }
  module typeindex {
    header "typeindex"
    export *
  }
  module typeinfo {
    header "typeinfo"
    export *
  }
  module unordered_map {
    header "unordered_map"
    export initializer_list
    export *
  }
  module unordered_set {
    header "unordered_set"
    export initializer_list
    export *
  }
  module utility {
    header "utility"
    export initializer_list
    export *

    module __utility {
      module as_const               { private header "__utility/as_const.h" }
      module auto_cast              {
        private header "__utility/auto_cast.h"
        export type_traits.decay
      }
      module cmp                    { private header "__utility/cmp.h" }
      module convert_to_integral    { private header "__utility/convert_to_integral.h" }
      module declval                { private header "__utility/declval.h" }
      module exception_guard        { private header "__utility/exception_guard.h" }
      module exchange               { private header "__utility/exchange.h" }
      module forward                { private header "__utility/forward.h" }
      module forward_like           { private header "__utility/forward_like.h" }
      module in_place               { private header "__utility/in_place.h" }
      module integer_sequence       { private header "__utility/integer_sequence.h" }
      module move                   { private header "__utility/move.h" }
      module pair                   { private header "__utility/pair.h" }
      module pair_fwd               { private header "__fwd/pair.h" }
      module piecewise_construct    { private header "__utility/piecewise_construct.h" }
      module priority_tag           { private header "__utility/priority_tag.h" }
      module rel_ops                { private header "__utility/rel_ops.h" }
      module swap                   { private header "__utility/swap.h" }
      module terminate_on_exception { private header "__utility/terminate_on_exception.h" }
      module to_underlying          { private header "__utility/to_underlying.h" }
      module unreachable            { private header "__utility/unreachable.h" }
    }
  }
  module valarray {
    header "valarray"
    export initializer_list
    export *
  }
  module variant {
    header "variant"
    export *

    module __variant {
      module monostate { private header "__variant/monostate.h" }
    }
  }
  module vector {
    header "vector"
    export initializer_list
    export *
  }
  module version {
    header "version"
    export *
  }

  // FIXME: These should be private.
  module __assert            {         header "__assert"            export * }
  module __availability      { private header "__availability"      export * }
  module __bit_reference     { private header "__bit_reference"     export * }
  module __debug             {         header "__debug"             export * }
  module __hash_table        {         header "__hash_table"        export * }
  module __locale            {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    private header "__locale" export *
  }
  module __mbstate_t         { private header "__mbstate_t.h"       export * }
  module __node_handle       { private header "__node_handle"       export * }
  module __split_buffer      { private header "__split_buffer"      export * }
  module __std_mbstate_t     { private header "__std_mbstate_t.h"   export * }
  module __threading_support {         header "__threading_support" export * }
  module __tree              {         header "__tree"              export * }
  module __undef_macros      {         header "__undef_macros"      export * }
  module __verbose_abort     {         header "__verbose_abort"     export * }

  // This one needs to appear after __tree to work around issues with modules in Objective-C++ mode.
  module coroutine {
    header "coroutine"
    export compare
    export *

    module __coroutine {
      module coroutine_handle           { private header "__coroutine/coroutine_handle.h" }
      module coroutine_traits           { private header "__coroutine/coroutine_traits.h" }
      module noop_coroutine_handle      { private header "__coroutine/noop_coroutine_handle.h" }
      module trivial_awaitables         { private header "__coroutine/trivial_awaitables.h" }
    }
  }

  module experimental {
    requires cplusplus11

    module deque {
      header "experimental/deque"
      export *
    }
    module forward_list {
      header "experimental/forward_list"
      export *
    }
    module iterator {
      header "experimental/iterator"
      export *
    }
    module list {
      header "experimental/list"
      export *
    }
    module map {
      header "experimental/map"
      export *
    }
    module memory_resource {
      header "experimental/memory_resource"
      export *
    }
    module propagate_const {
      header "experimental/propagate_const"
      export *
    }
    module regex {
      @requires_LIBCXX_ENABLE_LOCALIZATION@
      header "experimental/regex"
      export *
    }
    module simd {
      header "experimental/simd"
      export *
    }
    module set {
      header "experimental/set"
      export *
    }
    module span {
      header "span"
      export *
    }
    module string {
      header "experimental/string"
      export *
    }
    module type_traits {
      header "experimental/type_traits"
      export *
    }
    module unordered_map {
      header "experimental/unordered_map"
      export *
    }
    module unordered_set {
      header "experimental/unordered_set"
      export *
    }
    module utility {
      header "experimental/utility"
      export *
    }
    module vector {
      header "experimental/vector"
      export *
    }
    // FIXME these should be private
    module __memory {
      header "experimental/__memory"
      export *
    }
  } // end experimental
}
