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

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

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

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

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

  module algorithm {
    header "algorithm"
    export initializer_list
    export *

    module __algorithm {
      module adjacent_find                   { private header "__algorithm/adjacent_find.h" }
      module all_of                          { private header "__algorithm/all_of.h" }
      module any_of                          { private header "__algorithm/any_of.h" }
      module binary_search                   { private header "__algorithm/binary_search.h" }
      module clamp                           { private header "__algorithm/clamp.h" }
      module comp                            { private header "__algorithm/comp.h" }
      module comp_ref_type                   { private header "__algorithm/comp_ref_type.h" }
      module copy                            { private header "__algorithm/copy.h" }
      module copy_backward                   { private header "__algorithm/copy_backward.h" }
      module copy_if                         { private header "__algorithm/copy_if.h" }
      module copy_move_common                { private header "__algorithm/copy_move_common.h" }
      module copy_n                          { private header "__algorithm/copy_n.h" }
      module count                           { private header "__algorithm/count.h" }
      module count_if                        { private header "__algorithm/count_if.h" }
      module equal                           { private header "__algorithm/equal.h" }
      module equal_range                     { private header "__algorithm/equal_range.h" }
      module fill                            { private header "__algorithm/fill.h" }
      module fill_n                          { private header "__algorithm/fill_n.h" }
      module find                            { private header "__algorithm/find.h" }
      module find_end                        { private header "__algorithm/find_end.h" }
      module find_first_of                   { private header "__algorithm/find_first_of.h" }
      module find_if                         { private header "__algorithm/find_if.h" }
      module find_if_not                     { private header "__algorithm/find_if_not.h" }
      module for_each                        { private header "__algorithm/for_each.h" }
      module for_each_n                      { private header "__algorithm/for_each_n.h" }
      module 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 push_heap                       { private header "__algorithm/push_heap.h" }
      module ranges_adjacent_find            { private header "__algorithm/ranges_adjacent_find.h" }
      module ranges_all_of                   { private header "__algorithm/ranges_all_of.h" }
      module ranges_any_of                   { private header "__algorithm/ranges_any_of.h" }
      module ranges_binary_search {
        private header "__algorithm/ranges_binary_search.h"
        export functional.__functional.ranges_operations
      }
      module ranges_clamp {
        private header "__algorithm/ranges_clamp.h"
        export functional.__functional.ranges_operations
      }
      module ranges_copy {
        private header "__algorithm/ranges_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_copy_backward {
        private header "__algorithm/ranges_copy_backward.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_copy_if {
        private header "__algorithm/ranges_copy_if.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_copy_n {
        private header "__algorithm/ranges_copy_n.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_count                    { private header "__algorithm/ranges_count.h" }
      module ranges_count_if                 { private header "__algorithm/ranges_count_if.h" }
      module ranges_equal                    { private header "__algorithm/ranges_equal.h" }
      module ranges_equal_range {
        private header "__algorithm/ranges_equal_range.h"
        export functional.__functional.ranges_operations
      }
      module ranges_fill                     { private header "__algorithm/ranges_fill.h" }
      module ranges_fill_n                   { private header "__algorithm/ranges_fill_n.h" }
      module ranges_find                     { private header "__algorithm/ranges_find.h" }
      module ranges_find_end                 { private header "__algorithm/ranges_find_end.h" }
      module ranges_find_first_of            { private header "__algorithm/ranges_find_first_of.h" }
      module ranges_find_if                  { private header "__algorithm/ranges_find_if.h" }
      module ranges_find_if_not              { private header "__algorithm/ranges_find_if_not.h" }
      module ranges_for_each {
        private header "__algorithm/ranges_for_each.h"
        export algorithm.__algorithm.in_fun_result
      }
      module ranges_for_each_n {
        private header "__algorithm/ranges_for_each_n.h"
        export algorithm.__algorithm.in_fun_result
      }
      module ranges_generate                 { private header "__algorithm/ranges_generate.h" }
      module ranges_generate_n               { private header "__algorithm/ranges_generate_n.h" }
      module ranges_includes {
        private header "__algorithm/ranges_includes.h"
        export functional.__functional.ranges_operations
      }
      module ranges_inplace_merge {
        private header "__algorithm/ranges_inplace_merge.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_heap {
        private header "__algorithm/ranges_is_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_heap_until {
        private header "__algorithm/ranges_is_heap_until.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_partitioned           { private header "__algorithm/ranges_is_partitioned.h" }
      module ranges_is_permutation           { private header "__algorithm/ranges_is_permutation.h" }
      module ranges_is_sorted {
        private header "__algorithm/ranges_is_sorted.h"
        export functional.__functional.ranges_operations
      }
      module ranges_is_sorted_until {
        private header "__algorithm/ranges_is_sorted_until.h"
        export functional.__functional.ranges_operations
      }
      module ranges_iterator_concept         { private header "__algorithm/ranges_iterator_concept.h" }
      module ranges_lexicographical_compare {
        private header "__algorithm/ranges_lexicographical_compare.h"
        export functional.__functional.ranges_operations
      }
      module ranges_lower_bound {
        private header "__algorithm/ranges_lower_bound.h"
        export functional.__functional.ranges_operations
      }
      module ranges_make_heap {
        private header "__algorithm/ranges_make_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_max {
        private header "__algorithm/ranges_max.h"
        export functional.__functional.ranges_operations
      }
      module ranges_max_element {
        private header "__algorithm/ranges_max_element.h"
        export functional.__functional.ranges_operations
      }
      module ranges_merge {
        private header "__algorithm/ranges_merge.h"
        export algorithm.__algorithm.in_in_out_result
      }
      module ranges_min {
        private header "__algorithm/ranges_min.h"
        export functional.__functional.ranges_operations
      }
      module ranges_min_element {
        private header "__algorithm/ranges_min_element.h"
        export functional.__functional.ranges_operations
      }
      module ranges_minmax {
        private header "__algorithm/ranges_minmax.h"
        export functional.__functional.ranges_operations
        export algorithm.__algorithm.min_max_result
      }
      module ranges_minmax_element {
        private header "__algorithm/ranges_minmax_element.h"
        export functional.__functional.ranges_operations
        export algorithm.__algorithm.min_max_result
      }
      module ranges_mismatch {
        private header "__algorithm/ranges_mismatch.h"
        export algorithm.__algorithm.in_in_result
      }
      module ranges_move {
        private header "__algorithm/ranges_move.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_move_backward {
        private header "__algorithm/ranges_move_backward.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_next_permutation {
        private header "__algorithm/ranges_next_permutation.h"
        export algorithm.__algorithm.in_found_result
        export functional.__functional.ranges_operations
      }
      module ranges_none_of                  { private header "__algorithm/ranges_none_of.h" }
      module ranges_nth_element {
        private header "__algorithm/ranges_nth_element.h"
        export functional.__functional.ranges_operations
      }
      module ranges_partial_sort {
        private header "__algorithm/ranges_partial_sort.h"
        export algorithm.__algorithm.in_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_partial_sort_copy {
        private header "__algorithm/ranges_partial_sort_copy.h"
        export algorithm.__algorithm.in_out_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_partition                { private header "__algorithm/ranges_partition.h" }
      module ranges_partition_copy           { private header "__algorithm/ranges_partition_copy.h" }
      module ranges_partition_point          { private header "__algorithm/ranges_partition_point.h" }
      module ranges_pop_heap {
        private header "__algorithm/ranges_pop_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_prev_permutation {
        private header "__algorithm/ranges_prev_permutation.h"
        export algorithm.__algorithm.in_found_result
        export functional.__functional.ranges_operations
      }
      module ranges_push_heap {
        private header "__algorithm/ranges_push_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_remove                   { private header "__algorithm/ranges_remove.h" }
      module ranges_remove_copy {
        private header "__algorithm/ranges_remove_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_remove_copy_if {
        private header "__algorithm/ranges_remove_copy_if.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_remove_if                { private header "__algorithm/ranges_remove_if.h" }
      module ranges_replace                  { private header "__algorithm/ranges_replace.h" }
      module ranges_replace_copy {
        private header "__algorithm/ranges_replace_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_replace_copy_if {
        private header "__algorithm/ranges_replace_copy_if.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
      module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
      module ranges_reverse_copy {
        private header "__algorithm/ranges_reverse_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_rotate                   { private header "__algorithm/ranges_rotate.h" }
      module ranges_rotate_copy {
        private header "__algorithm/ranges_rotate_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_sample                   { private header "__algorithm/ranges_sample.h" }
      module ranges_search                   { private header "__algorithm/ranges_search.h" }
      module ranges_search_n                 { private header "__algorithm/ranges_search_n.h" }
      module ranges_set_difference {
        private header "__algorithm/ranges_set_difference.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_set_intersection {
        private header "__algorithm/ranges_set_intersection.h"
        export algorithm.__algorithm.in_in_out_result
      }
      module ranges_set_symmetric_difference {
        private header "__algorithm/ranges_set_symmetric_difference.h"
        export algorithm.__algorithm.in_in_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_set_union {
        private header "__algorithm/ranges_set_union.h"
        export algorithm.__algorithm.in_in_out_result
        export functional.__functional.ranges_operations
      }
      module ranges_shuffle                  { private header "__algorithm/ranges_shuffle.h" }
      module ranges_sort {
        private header "__algorithm/ranges_sort.h"
        export functional.__functional.ranges_operations
      }
      module ranges_sort_heap {
        private header "__algorithm/ranges_sort_heap.h"
        export functional.__functional.ranges_operations
      }
      module ranges_stable_partition         { private header "__algorithm/ranges_stable_partition.h" }
      module ranges_stable_sort {
        private header "__algorithm/ranges_stable_sort.h"
        export functional.__functional.ranges_operations
      }
      module ranges_swap_ranges {
        private header "__algorithm/ranges_swap_ranges.h"
        export algorithm.__algorithm.in_in_result
      }
      module ranges_transform {
        private header "__algorithm/ranges_transform.h"
        export algorithm.__algorithm.in_in_out_result
        export algorithm.__algorithm.in_out_result
      }
      module uniform_random_bit_generator_adaptor {
        private header "__algorithm/uniform_random_bit_generator_adaptor.h"
      }
      module ranges_unique                   { private header "__algorithm/ranges_unique.h" }
      module ranges_unique_copy {
        private header "__algorithm/ranges_unique_copy.h"
        export algorithm.__algorithm.in_out_result
      }
      module ranges_upper_bound {
        private header "__algorithm/ranges_upper_bound.h"
        export functional.__functional.ranges_operations
      }
      module remove                          { private header "__algorithm/remove.h" }
      module remove_copy                     { private header "__algorithm/remove_copy.h" }
      module remove_copy_if                  { private header "__algorithm/remove_copy_if.h" }
      module remove_if                       { private header "__algorithm/remove_if.h" }
      module replace                         { private header "__algorithm/replace.h" }
      module replace_copy                    { private header "__algorithm/replace_copy.h" }
      module replace_copy_if                 { private header "__algorithm/replace_copy_if.h" }
      module replace_if                      { private header "__algorithm/replace_if.h" }
      module reverse                         { private header "__algorithm/reverse.h" }
      module reverse_copy                    { private header "__algorithm/reverse_copy.h" }
      module rotate                          { private header "__algorithm/rotate.h" }
      module rotate_copy                     { private header "__algorithm/rotate_copy.h" }
      module sample                          { private header "__algorithm/sample.h" }
      module search                          { private header "__algorithm/search.h" }
      module search_n                        { private header "__algorithm/search_n.h" }
      module set_difference                  { private header "__algorithm/set_difference.h" }
      module set_intersection                { private header "__algorithm/set_intersection.h" }
      module set_symmetric_difference        { private header "__algorithm/set_symmetric_difference.h" }
      module set_union                       { private header "__algorithm/set_union.h" }
      module shift_left                      { private header "__algorithm/shift_left.h" }
      module shift_right                     { private header "__algorithm/shift_right.h" }
      module shuffle                         { private header "__algorithm/shuffle.h" }
      module sift_down                       { private header "__algorithm/sift_down.h" }
      module sort                            { private header "__algorithm/sort.h" }
      module sort_heap                       { private header "__algorithm/sort_heap.h" }
      module stable_partition                { private header "__algorithm/stable_partition.h" }
      module stable_sort                     { private header "__algorithm/stable_sort.h" }
      module swap_ranges                     { private header "__algorithm/swap_ranges.h" }
      module three_way_comp_ref_type         { private header "__algorithm/three_way_comp_ref_type.h" }
      module transform                       { private header "__algorithm/transform.h" }
      module unique                          { private header "__algorithm/unique.h" }
      module unique_copy                     { private header "__algorithm/unique_copy.h" }
      module unwrap_iter                     { private header "__algorithm/unwrap_iter.h" }
      module unwrap_range {
        private header "__algorithm/unwrap_range.h"
        export utility.__utility.pair
      }
      module upper_bound                     { private header "__algorithm/upper_bound.h" }
    }
  }
  module any {
    header "any"
    export *
  }
  module array {
    header "array"
    export initializer_list
    export *

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

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

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

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

  }
  module chrono {
    header "chrono"
    export *

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

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

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

    module __condition_variable {
      module condition_variable { private header "__condition_variable/condition_variable.h" }
    }
  }
  module coroutine {
    header "coroutine"
    export compare
    export *

    module __coroutine {
      module coroutine_handle           { private header "__coroutine/coroutine_handle.h" }
      module coroutine_traits           { private header "__coroutine/coroutine_traits.h" }
      module noop_coroutine_handle      { private header "__coroutine/noop_coroutine_handle.h" }
      module trivial_awaitables         { private header "__coroutine/trivial_awaitables.h" }
    }
  }
  module deque {
    header "deque"
    export initializer_list
    export *
  }
  module exception {
    header "exception"
    export *

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

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

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

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

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

    module __ios {
      module fpos { private header "__ios/fpos.h" }
    }
  }
  module iosfwd {
    header "iosfwd"
    export *
  }
  module iostream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "iostream"
    export ios
    export streambuf
    export istream
    export ostream
    export *
  }
  module istream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "istream"
    // FIXME: should re-export ios, streambuf?
    export *
  }
  module iterator {
    header "iterator"
    export *

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

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

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

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

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

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

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

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

    module __ranges {
      module access                 { private header "__ranges/access.h" }
      module all                    {
        private header "__ranges/all.h"
        export functional.__functional.compose
        export functional.__functional.perfect_forward
      }
      module as_rvalue_view         { private header "__ranges/as_rvalue_view.h" }
      module common_view            { private header "__ranges/common_view.h" }
      module concepts               { private header "__ranges/concepts.h" }
      module copyable_box           { private header "__ranges/copyable_box.h" }
      module counted                {
        private header "__ranges/counted.h"
        export span
      }
      module dangling               { private header "__ranges/dangling.h" }
      module data                   { private header "__ranges/data.h" }
      module drop_view              { private header "__ranges/drop_view.h" }
      module drop_while_view        { private header "__ranges/drop_while_view.h" }
      module elements_view          { private header "__ranges/elements_view.h" }
      module empty                  { private header "__ranges/empty.h" }
      module empty_view             { private header "__ranges/empty_view.h" }
      module enable_borrowed_range  { private header "__ranges/enable_borrowed_range.h" }
      module enable_view            { private header "__ranges/enable_view.h" }
      module filter_view            { private header "__ranges/filter_view.h" }
      module iota_view              { private header "__ranges/iota_view.h" }
      module istream_view           {
        @requires_LIBCXX_ENABLE_LOCALIZATION@
        private header "__ranges/istream_view.h"
      }
      module join_view              { private header "__ranges/join_view.h" }
      module lazy_split_view        { private header "__ranges/lazy_split_view.h" }
      module non_propagating_cache  { private header "__ranges/non_propagating_cache.h" }
      module owning_view            { private header "__ranges/owning_view.h" }
      module range_adaptor          { private header "__ranges/range_adaptor.h" }
      module rbegin                 { private header "__ranges/rbegin.h" }
      module ref_view               { private header "__ranges/ref_view.h" }
      module rend                   { private header "__ranges/rend.h" }
      module reverse_view           { private header "__ranges/reverse_view.h" }
      module single_view            { private header "__ranges/single_view.h" }
      module size                   { private header "__ranges/size.h" }
      module split_view             { private header "__ranges/split_view.h" }
      module subrange               {
        private header "__ranges/subrange.h"

        module subrange_fwd { private header "__fwd/subrange.h" }
      }
      module take_view              { private header "__ranges/take_view.h" }
      module take_while_view        { private header "__ranges/take_while_view.h" }
      module transform_view         {
        private header "__ranges/transform_view.h"
        export functional.__functional.bind_back
        export functional.__functional.perfect_forward
      }
      module view_interface         { private header "__ranges/view_interface.h" }
      module views                  { private header "__ranges/views.h" }
      module zip_view               { private header "__ranges/zip_view.h" }
    }
  }
  module ratio {
    header "ratio"
    export *
  }
  module regex {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "regex"
    export initializer_list
    export *
  }
  module scoped_allocator {
    header "scoped_allocator"
    export *
  }
  module semaphore {
    @requires_LIBCXX_ENABLE_THREADS@
    header "semaphore"
    export *
  }
  module set {
    header "set"
    export initializer_list
    export *
  }
  module shared_mutex {
    @requires_LIBCXX_ENABLE_THREADS@
    header "shared_mutex"
    export version
  }
  module source_location {
    header "source_location"
    export *
  }
  module span {
    header "span"
    export ranges.__ranges.enable_borrowed_range
    export version
    module span_fwd { private header "__fwd/span.h" }
  }
  module sstream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "sstream"
    // FIXME: should re-export istream, ostream, ios, streambuf, string?
    export *
  }
  module stack {
    header "stack"
    export initializer_list
    export *
  }
  module stdexcept {
    header "stdexcept"
    export *
  }
  module streambuf {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "streambuf"
    export *
  }
  module string {
    header "string"
    export initializer_list
    export string_view
    module __string {
      module char_traits           { private header "__string/char_traits.h" }
      module constexpr_c_functions { private header "__string/constexpr_c_functions.h" }
      module extern_template_lists { private header "__string/extern_template_lists.h" }
      module string_fwd            { private header "__fwd/string.h" }
    }
    export *
  }
  module string_view {
    header "string_view"
    export initializer_list
    export *
    module string_view_fwd { private header "__fwd/string_view.h" }
  }
  module strstream {
    @requires_LIBCXX_ENABLE_LOCALIZATION@
    header "strstream"
    export *
  }
  module system_error {
    header "system_error"
    export __errc
    export *
    module __system_error {
      module errc           { private header "__system_error/errc.h" }
      module error_category { private header "__system_error/error_category.h" }
      module error_code {
        private header "__system_error/error_code.h"
        export functional.__functional.hash
        export functional.__functional.unary_function
      }
      module error_condition {
        private header "__system_error/error_condition.h"
        export functional.__functional.hash
        export functional.__functional.unary_function
      }
      module system_error { private header "__system_error/system_error.h" }

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

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

    module apply_cv         { private header "__tuple/apply_cv.h" }
    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 functional.__functional.unwrap_ref
    export *

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

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

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

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

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

  module experimental {
    requires cplusplus11

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