// 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 *
    }
    module float_t {
      header "float.h"
      export *
    }
    module inttypes_h {
      header "inttypes.h"
      export *
    }
    // <iso646.h> provided by compiler.
    module limits_h {
      header "limits.h"
      export *
    }
    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 *
    }
    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 *
  }
  module tgmath_h {
    header "tgmath.h"
    export *
  }

  // C compatibility headers.
  module compat {
    module cassert {
      // <cassert>'s use of NDEBUG requires textual inclusion.
      textual header "cassert"
    }
    module ccomplex {
      header "ccomplex"
      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 *
    }
    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 *
    }
    module cstdio {
      header "cstdio"
      export *
    }
    module cstdlib {
      header "cstdlib"
      export *
    }
    module cstring {
      header "cstring"
      export *
    }
    module ctgmath {
      header "ctgmath"
      export *
    }
    module ctime {
      header "ctime"
      export *
    }
    module cuchar {
      header "cuchar"
      export *
    }
    module cwchar {
      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
      header "cwchar"
      export *
    }
    module cwctype {
      @requires_LIBCXX_ENABLE_WIDE_CHARACTERS@
      header "cwctype"
      export *
    }
  }

  module algorithm {
    header "algorithm"
    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"
        export algorithm.__algorithm.copy_move_common
      }
      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"
        export type_traits.is_trivially_copyable
      }
      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"
        export algorithm.__algorithm.unwrap_iter
      }
      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_any_all_none_of            { private header "__algorithm/pstl_any_all_none_of.h" }
      module pstl_backend                    {
        private header "__algorithm/pstl_backend.h"
        export *
      }
      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 textual 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 textual 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 pstl_copy                       { private header "__algorithm/pstl_copy.h" }
      module pstl_count                      { private header "__algorithm/pstl_count.h" }
      module pstl_fill                       { private header "__algorithm/pstl_fill.h" }
      module pstl_find                       {
        private header "__algorithm/pstl_find.h"
        export *
      }
      module pstl_for_each                   {
        private header "__algorithm/pstl_for_each.h"
        export algorithm.__algorithm.pstl_backend
        export iterator.__iterator.iterator_traits
      }
      module pstl_frontend_dispatch          {
        private header "__algorithm/pstl_frontend_dispatch.h"
        export utility.__utility.forward
      }
      module pstl_generate                   { private header "__algorithm/pstl_generate.h" }
      module pstl_is_partitioned             { private header "__algorithm/pstl_is_partitioned.h" }
      module pstl_merge                      { private header "__algorithm/pstl_merge.h" }
      module pstl_replace                    { private header "__algorithm/pstl_replace.h" }
      module pstl_stable_sort                {
        private header "__algorithm/pstl_stable_sort.h"
        export functional.__functional.operations
      }
      module pstl_transform                  { private header "__algorithm/pstl_transform.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 functional.__functional.ranges_operations
      }
      module ranges_partial_sort_copy {
        private header "__algorithm/ranges_partial_sort_copy.h"
        export algorithm.__algorithm.in_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"
        export __debug_utils.strict_weak_ordering_check
      }
      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"
        export algorithm.__algorithm.iterator_operations
      }
      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"
        export iterator.__iterator.iterator_traits
      }
      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 *

    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 *
  }
  // 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
      }
      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"
        export time_point
      }
      module system_clock           {
        private header "__chrono/system_clock.h"
        export time_point
      }
      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"
        export concepts.__concepts.destructible
      }
      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"
        export type_traits.is_nothrow_destructible
      }
      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"
        export type_traits.is_object
      }
      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 *
  }
  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
        export string
      }
      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
      }
      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 *
  }
  module fstream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    @requires_LIBCXX_ENABLE_FILESYSTEM@
    header "fstream"
    export *
  }
  module functional {
    header "functional"
    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"
        export memory.__memory.shared_ptr
      }
      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"
        export compat.cstdint
        export type_traits.underlying_type
        export utility.__utility.pair
      }
      module hash_fwd                   { private header "__fwd/hash.h" }
      module identity                   { private header "__functional/identity.h" }
      module invoke                     {
        private header "__functional/invoke.h"
        export *
      }
      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"
        export *
      }
      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 *

    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 *
  }
  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 cpp17_iterator_concepts { private header "__iterator/cpp17_iterator_concepts.h" }
      module concepts {
        private header "__iterator/concepts.h"
        export std.concepts.__concepts.constructible
        export std.concepts.__concepts.equality_comparable
        export std.concepts.__concepts.movable
        export type_traits.common_reference
        export type_traits.is_reference
        export type_traits.remove_cvref
      }
      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"
        export ranges.__ranges.size
      }
      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"
        export type_traits.is_primary_template
      }
      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" }
      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 strict_weak_ordering_check {
      private header "__debug_utils/strict_weak_ordering_check.h"
      export type_traits.is_constant_evaluated
    }
  }

  module limits {
    header "limits"
    export *
  }
  module list {
    header "list"
    export *
  }
  module locale {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "locale"
    export *

    module __locale {
      module locale_base_api_bsd_locale_defaults  { private textual header "__locale_dir/locale_base_api/bsd_locale_defaults.h" }
      module locale_base_api_bsd_locale_fallbacks { private textual header "__locale_dir/locale_base_api/bsd_locale_fallbacks.h" }
      module locale_base_api_locale_guard         { private header "__locale_dir/locale_base_api/locale_guard.h" }
    }
  }
  module map {
    header "map"
    export *
  }
  module mdspan {
    header "mdspan"
    export *

    module __mdspan {
      module extents                         {
        private header "__mdspan/extents.h"
        export array
        export span
      }
      module layout_left                     { private header "__mdspan/layout_left.h" }
      module layout_right                    { private header "__mdspan/layout_right.h" }
      module mdspan_fwd                      { private header "__fwd/mdspan.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"
        export memory.__memory.uninitialized_algorithms
      }
      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"
        export algorithm.__algorithm.copy
      }
      module unique_ptr                      {
        private header "__memory/unique_ptr.h"
        export type_traits.add_lvalue_reference
        export type_traits.is_pointer
        export type_traits.type_identity
      }
      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 pstl_reduce              { private header "__numeric/pstl_reduce.h" }
      module pstl_transform_reduce    {
        private header "__numeric/pstl_transform_reduce.h"
        export *
      }
      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 *
  }
  module random {
    header "random"
    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 *

    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"
        export iterator.__iterator.concepts
      }
      module container_compatible_range { private header "__ranges/container_compatible_range.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 movable_box                { private header "__ranges/movable_box.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"
        export type_traits.make_unsigned
      }
      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"
        export iterator.__iterator.concepts
      }
      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 *
  }
  module scoped_allocator {
    header "scoped_allocator"
    export *
  }
  module semaphore {
    @requires_LIBCXX_ENABLE_THREADS@
    header "semaphore"
    export *
  }
  module set {
    header "set"
    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 *
  }
  module stdexcept {
    header "stdexcept"
    export *
  }
  module stop_token {
    @requires_LIBCXX_ENABLE_THREADS@
    header "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 stop_callback        { private header "__stop_token/stop_callback.h" }
      module stop_source          { private header "__stop_token/stop_source.h" }
      module stop_state           { private header "__stop_token/stop_state.h" }
      module stop_token           { private header "__stop_token/stop_token.h" }
    }
  }
  module streambuf {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "streambuf"
    export *
  }
  module string {
    header "string"
    module __string {
      module char_traits           { private header "__string/char_traits.h" }
      module constexpr_c_functions {
        private header "__string/constexpr_c_functions.h"
        export type_traits.is_equality_comparable
      }
      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 *
    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 *
    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 formatter            { private header "__thread/formatter.h" }
      module poll_with_backoff    { private header "__thread/poll_with_backoff.h" }
      module this_thread          { private header "__thread/this_thread.h" }
      module thread               { private header "__thread/thread.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"
      export is_referenceable
    }
    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"
      export is_const
      export is_volatile
    }
    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"
      export utility.__utility.declval
    }
    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 datasizeof                                { private header "__type_traits/datasizeof.h" }
    module decay                                     {
      private header "__type_traits/decay.h"
      export add_pointer
    }
    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"
      export conditional
      export decay
      export is_base_of
      export is_core_convertible
      export is_reference_wrapper
      export is_void
      export remove_cv
    }
    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"
      export is_array
    }
    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"
      export type_traits.remove_cvref
    }
    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"
      export type_traits.is_destructible
    }
    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"
      export type_traits.is_nothrow_constructible
    }
    module is_null_pointer                           {
      private header "__type_traits/is_null_pointer.h"
      export compat.cstddef
    }
    module is_object                                 {
      private header "__type_traits/is_object.h"
      export type_traits.is_scalar
    }
    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"
      export type_traits.enable_if
    }
    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"
      export type_traits.is_null_pointer
    }
    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"
      export type_traits.is_move_constructible
    }
    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"
      export type_traits.is_unsigned
    }
    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"
      export type_traits.remove_const
      export type_traits.remove_volatile
    }
    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.is_enum
    }
    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 *
  }
  module unordered_set {
    header "unordered_set"
    export *
  }
  module utility {
    header "utility"
    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"
        export type_traits.make_unsigned
      }
      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 is_pointer_in_range    { private header "__utility/is_pointer_in_range.h" }
      module move                   {
        private header "__utility/move.h"
        export type_traits.is_copy_constructible
        export type_traits.is_nothrow_move_constructible
        export type_traits.remove_reference
      }
      module pair                   {
        private header "__utility/pair.h"
        export ranges.__ranges.subrange_fwd
        export type_traits.is_assignable
        export type_traits.is_constructible
        export type_traits.is_convertible
        export type_traits.is_copy_assignable
        export type_traits.is_move_assignable
        export type_traits.is_nothrow_copy_constructible
        export type_traits.is_nothrow_default_constructible
        export type_traits.is_nothrow_move_assignable
      }
      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"
        export type_traits.is_swappable
      }
      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 *
  }
  module variant {
    header "variant"
    export *

    module __variant {
      module monostate { private header "__variant/monostate.h" }
    }
  }
  module vector {
    header "vector"
    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 __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      { textual 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 *

    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 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 *
    }
    module __config {
      private textual header "experimental/__config"
      export *
    }
    // FIXME these should be private
    module __memory {
      header "experimental/__memory"
      export *
    }
  } // end experimental
}
