// This module contains headers related to the configuration of the library. These headers
// are free of any dependency on the rest of libc++.
module std_config [system] {
  textual header "__config"
  textual header "__configuration/abi.h"
  textual header "__configuration/availability.h"
  textual header "__configuration/compiler.h"
  textual header "__configuration/language.h"
  textual header "__configuration/platform.h"
  textual header "version"
}

module std_core [system] {
  module cstddef {
    module byte         { header "__cstddef/byte.h" }
    module max_align_t  {
      header "__cstddef/max_align_t.h"
      export *
    }
    module nullptr_t    { header "__cstddef/nullptr_t.h" }
    module ptrdiff_t    { header "__cstddef/ptrdiff_t.h" }
    module size_t       { header "__cstddef/size_t.h" }
  }

  module cstdint {
    header "cstdint"
    export *
  }

  module fwd {
    module byte         { header "__fwd/byte.h" }
    module functional   { header "__fwd/functional.h" }
    module pair         { header "__fwd/pair.h" }
    module tuple        { header "__fwd/tuple.h" }
  }

  module limits {
    header "limits"
    export *
  }

  module math {
    module abs                              { header "__math/abs.h" }
    module copysign                         { header "__math/copysign.h" }
    module error_functions                  { header "__math/error_functions.h" }
    module exponential_functions            { header "__math/exponential_functions.h" }
    module fdim                             { header "__math/fdim.h" }
    module fma                              { header "__math/fma.h" }
    module gamma                            { header "__math/gamma.h" }
    module hyperbolic_functions             { header "__math/hyperbolic_functions.h" }
    module hypot                            { header "__math/hypot.h" }
    module inverse_hyperbolic_functions     { header "__math/inverse_hyperbolic_functions.h" }
    module inverse_trigonometric_functions  { header "__math/inverse_trigonometric_functions.h" }
    module logarithms                       { header "__math/logarithms.h" }
    module min_max                          { header "__math/min_max.h" }
    module modulo                           { header "__math/modulo.h" }
    module remainder                        { header "__math/remainder.h" }
    module roots                            { header "__math/roots.h" }
    module rounding_functions               { header "__math/rounding_functions.h" }
    module special_functions                { header "__math/special_functions.h" }
    module traits                           { header "__math/traits.h" }
    module trigonometric_functions          { header "__math/trigonometric_functions.h" }
  }

  module type_traits {
    module add_cv_quals                               { header "__type_traits/add_cv_quals.h" }
    module add_lvalue_reference                       { header "__type_traits/add_lvalue_reference.h" }
    module add_pointer                                { header "__type_traits/add_pointer.h" }
    module add_rvalue_reference                       { header "__type_traits/add_rvalue_reference.h" }
    module aligned_storage                            { header "__type_traits/aligned_storage.h" }
    module aligned_union                              { header "__type_traits/aligned_union.h" }
    module alignment_of                               { header "__type_traits/alignment_of.h" }
    module can_extract_key                            { header "__type_traits/can_extract_key.h" }
    module common_reference                           { header "__type_traits/common_reference.h" }
    module common_type {
      header "__type_traits/common_type.h"
      // We need to export those because common_type inherits from either of those based on __builtin_common_type.
      export std_core.type_traits.type_identity
      export std_core.utility_core.empty
    }
    module conditional                                { header "__type_traits/conditional.h" }
    module conjunction                                { header "__type_traits/conjunction.h" }
    module container_traits                           { header "__type_traits/container_traits.h" }
    module copy_cv                                    { header "__type_traits/copy_cv.h" }
    module copy_cvref                                 { header "__type_traits/copy_cvref.h" }
    module datasizeof                                 { header "__type_traits/datasizeof.h" }
    module decay                                      { header "__type_traits/decay.h" }
    module dependent_type                             { header "__type_traits/dependent_type.h" }
    module desugars_to                                { header "__type_traits/desugars_to.h" }
    module detected_or                                { header "__type_traits/detected_or.h" }
    module disjunction                                { header "__type_traits/disjunction.h" }
    module enable_if                                  { header "__type_traits/enable_if.h" }
    module extent                                     { header "__type_traits/extent.h" }
    module has_unique_object_representation           { header "__type_traits/has_unique_object_representation.h" }
    module has_virtual_destructor                     { header "__type_traits/has_virtual_destructor.h" }
    module integral_constant                          { header "__type_traits/integral_constant.h" }
    module invoke                                     { header "__type_traits/invoke.h" }
    module is_abstract {
      header "__type_traits/is_abstract.h"
      export std_core.type_traits.integral_constant
    }
    module is_aggregate {
      header "__type_traits/is_aggregate.h"
      export std_core.type_traits.integral_constant
    }
    module is_allocator {
      header "__type_traits/is_allocator.h"
      export std_core.type_traits.integral_constant
    }
    module is_always_bitcastable {
      header "__type_traits/is_always_bitcastable.h"
      export std_core.type_traits.integral_constant
    }
    module is_arithmetic {
      header "__type_traits/is_arithmetic.h"
      export std_core.type_traits.integral_constant
    }
    module is_array {
      header "__type_traits/is_array.h"
      export std_core.type_traits.integral_constant
    }
    module is_assignable {
      header "__type_traits/is_assignable.h"
      export std_core.type_traits.integral_constant
    }
    module is_base_of {
      header "__type_traits/is_base_of.h"
      export std_core.type_traits.integral_constant
    }
    module is_bounded_array {
      header "__type_traits/is_bounded_array.h"
      export std_core.type_traits.integral_constant
    }
    module is_callable {
      header "__type_traits/is_callable.h"
      export std_core.type_traits.integral_constant
    }
    module is_char_like_type {
      header "__type_traits/is_char_like_type.h"
      export std_core.type_traits.integral_constant
    }
    module is_class {
      header "__type_traits/is_class.h"
      export std_core.type_traits.integral_constant
    }
    module is_compound {
      header "__type_traits/is_compound.h"
      export std_core.type_traits.integral_constant
    }
    module is_const {
      header "__type_traits/is_const.h"
      export std_core.type_traits.integral_constant
    }
    module is_constant_evaluated {
      header "__type_traits/is_constant_evaluated.h"
      export std_core.type_traits.integral_constant
    }
    module is_constructible {
      header "__type_traits/is_constructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_convertible {
      header "__type_traits/is_convertible.h"
      export std_core.type_traits.integral_constant
    }
    module is_core_convertible {
      header "__type_traits/is_core_convertible.h"
      export std_core.type_traits.integral_constant
    }
    module is_destructible {
      header "__type_traits/is_destructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_empty {
      header "__type_traits/is_empty.h"
      export std_core.type_traits.integral_constant
    }
    module is_enum {
      header "__type_traits/is_enum.h"
      export std_core.type_traits.integral_constant
    }
    module is_equality_comparable {
      header "__type_traits/is_equality_comparable.h"
      export std_core.type_traits.integral_constant
    }
    module is_execution_policy {
      header "__type_traits/is_execution_policy.h"
      export std_core.type_traits.integral_constant
    }
    module is_final {
      header "__type_traits/is_final.h"
      export std_core.type_traits.integral_constant
    }
    module is_floating_point {
      header "__type_traits/is_floating_point.h"
      export std_core.type_traits.integral_constant
    }
    module is_function {
      header "__type_traits/is_function.h"
      export std_core.type_traits.integral_constant
    }
    module is_fundamental {
      header "__type_traits/is_fundamental.h"
      export std_core.type_traits.integral_constant
    }
    module is_implicit_lifetime {
      header "__type_traits/is_implicit_lifetime.h"
      export std_core.type_traits.integral_constant
    }
    module is_implicitly_default_constructible {
      header "__type_traits/is_implicitly_default_constructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_integral {
      header "__type_traits/is_integral.h"
      export std_core.type_traits.integral_constant
    }
    module is_literal_type {
      header "__type_traits/is_literal_type.h"
      export std_core.type_traits.integral_constant
    }
    module is_member_pointer {
      header "__type_traits/is_member_pointer.h"
      export std_core.type_traits.integral_constant
    }
    module is_nothrow_assignable {
      header "__type_traits/is_nothrow_assignable.h"
      export std_core.type_traits.integral_constant
    }
    module is_nothrow_constructible {
      header "__type_traits/is_nothrow_constructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_nothrow_convertible {
      header "__type_traits/is_nothrow_convertible.h"
      export std_core.type_traits.integral_constant
    }
    module is_nothrow_destructible {
      header "__type_traits/is_nothrow_destructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_null_pointer {
      header "__type_traits/is_null_pointer.h"
      export std_core.type_traits.integral_constant
    }
    module is_object {
      header "__type_traits/is_object.h"
      export std_core.type_traits.integral_constant
    }
    module is_pod {
      header "__type_traits/is_pod.h"
      export std_core.type_traits.integral_constant
    }
    module is_pointer {
      header "__type_traits/is_pointer.h"
      export std_core.type_traits.integral_constant
    }
    module is_polymorphic {
      header "__type_traits/is_polymorphic.h"
      export std_core.type_traits.integral_constant
    }
    module is_primary_template {
      header "__type_traits/is_primary_template.h"
      export std_core.type_traits.integral_constant
    }
    module is_reference_wrapper {
      header "__type_traits/is_reference_wrapper.h"
      export std_core.type_traits.integral_constant
    }
    module is_reference {
      header "__type_traits/is_reference.h"
      export std_core.type_traits.integral_constant
    }
    module is_referenceable {
      header "__type_traits/is_referenceable.h"
      export std_core.type_traits.integral_constant
    }
    module is_same {
      header "__type_traits/is_same.h"
      export std_core.type_traits.integral_constant
    }
    module is_scalar {
      header "__type_traits/is_scalar.h"
      export std_core.type_traits.integral_constant
    }
    module is_signed_integer {
      header "__type_traits/is_signed_integer.h"
      export std_core.type_traits.integral_constant
    }
    module is_signed {
      header "__type_traits/is_signed.h"
      export std_core.type_traits.integral_constant
    }
    module is_specialization {
      header "__type_traits/is_specialization.h"
      export std_core.type_traits.integral_constant
    }
    module is_standard_layout {
      header "__type_traits/is_standard_layout.h"
      export std_core.type_traits.integral_constant
    }
    module is_swappable {
      header "__type_traits/is_swappable.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivial {
      header "__type_traits/is_trivial.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivially_assignable {
      header "__type_traits/is_trivially_assignable.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivially_constructible {
      header "__type_traits/is_trivially_constructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivially_copyable {
      header "__type_traits/is_trivially_copyable.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivially_destructible {
      header "__type_traits/is_trivially_destructible.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivially_lexicographically_comparable {
      header "__type_traits/is_trivially_lexicographically_comparable.h"
      export std_core.type_traits.integral_constant
    }
    module is_trivially_relocatable {
      header "__type_traits/is_trivially_relocatable.h"
      export std_core.type_traits.integral_constant
    }
    module is_unbounded_array {
      header "__type_traits/is_unbounded_array.h"
      export std_core.type_traits.integral_constant
    }
    module is_union {
      header "__type_traits/is_union.h"
      export std_core.type_traits.integral_constant
    }
    module is_unsigned_integer {
      header "__type_traits/is_unsigned_integer.h"
      export std_core.type_traits.integral_constant
    }
    module is_unsigned {
      header "__type_traits/is_unsigned.h"
      export std_core.type_traits.integral_constant
    }
    module is_valid_expansion {
      header "__type_traits/is_valid_expansion.h"
      export std_core.type_traits.integral_constant
    }
    module is_void {
      header "__type_traits/is_void.h"
      export std_core.type_traits.integral_constant
    }
    module is_volatile {
      header "__type_traits/is_volatile.h"
      export std_core.type_traits.integral_constant
    }
    module lazy                                       { header "__type_traits/lazy.h" }
    module make_32_64_or_128_bit                      { header "__type_traits/make_32_64_or_128_bit.h" }
    module make_const_lvalue_ref                      { header "__type_traits/make_const_lvalue_ref.h" }
    module make_signed                                { header "__type_traits/make_signed.h" }
    module make_unsigned                              { header "__type_traits/make_unsigned.h" }
    module maybe_const                                { header "__type_traits/maybe_const.h" }
    module nat                                        { header "__type_traits/nat.h" }
    module negation                                   { header "__type_traits/negation.h" }
    module promote                                    { header "__type_traits/promote.h" }
    module rank                                       { header "__type_traits/rank.h" }
    module remove_all_extents                         { header "__type_traits/remove_all_extents.h" }
    module remove_const_ref                           { header "__type_traits/remove_const_ref.h" }
    module remove_const                               { header "__type_traits/remove_const.h" }
    module remove_cv                                  { header "__type_traits/remove_cv.h" }
    module remove_cvref                               { header "__type_traits/remove_cvref.h" }
    module remove_extent                              { header "__type_traits/remove_extent.h" }
    module remove_pointer                             { header "__type_traits/remove_pointer.h" }
    module remove_reference                           { header "__type_traits/remove_reference.h" }
    module remove_volatile                            { header "__type_traits/remove_volatile.h" }
    module result_of                                  { header "__type_traits/result_of.h" }
    module strip_signature                            { header "__type_traits/strip_signature.h" }
    module type_identity                              { header "__type_traits/type_identity.h" }
    module type_list                                  { header "__type_traits/type_list.h" }
    module underlying_type                            { header "__type_traits/underlying_type.h" }
    module unwrap_ref                                 { header "__type_traits/unwrap_ref.h" }
    module void_t                                     { header "__type_traits/void_t.h" }

    header "type_traits"
    export *
  } // module type_traits

  // Only the truly dependency-free parts of __utility are here
  module utility_core {
    module declval  { header "__utility/declval.h" }
    module empty    { header "__utility/empty.h" }
    module forward  { header "__utility/forward.h" }
  }
} // module std_core

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

    header "algorithm"
    export *
  } // module algorithm

  module any {
    header "any"
    export *
  }

  module array {
    module fwd { header "__fwd/array.h" }

    header "array"
    export *
  }

  module atomic {
    module aliases                { header "__atomic/aliases.h" }
    module atomic_flag            { header "__atomic/atomic_flag.h" }
    module atomic_init            { header "__atomic/atomic_init.h" }
    module atomic_lock_free       { header "__atomic/atomic_lock_free.h" }
    module atomic_ref             { header "__atomic/atomic_ref.h" }
    module atomic_sync            { header "__atomic/atomic_sync.h" }
    module atomic {
      header "__atomic/atomic.h"
      export std.atomic.atomic_base // most of std::atomic methods are defined there
    }
    module check_memory_order     { header "__atomic/check_memory_order.h" }
    module contention_t           { header "__atomic/contention_t.h" }
    module fence                  { header "__atomic/fence.h" }
    module is_always_lock_free    { header "__atomic/is_always_lock_free.h" }
    module kill_dependency        { header "__atomic/kill_dependency.h" }
    module memory_order           { header "__atomic/memory_order.h" }
    module to_gcc_order           { header "__atomic/to_gcc_order.h" }

    module support {
      header "__atomic/support.h"
      textual header "__atomic/support/c11.h"
      textual header "__atomic/support/gcc.h"
    }

    header "atomic"
    export *
  }

  module barrier {
    header "barrier"
    export *
  }

  module bit {
    module bit_cast         { header "__bit/bit_cast.h" }
    module bit_ceil         { header "__bit/bit_ceil.h" }
    module bit_floor        { header "__bit/bit_floor.h" }
    module bit_log2         { header "__bit/bit_log2.h" }
    module bit_width        { header "__bit/bit_width.h" }
    module blsr             { header "__bit/blsr.h" }
    module byteswap         { header "__bit/byteswap.h" }
    module countl           { header "__bit/countl.h" }
    module countr           { header "__bit/countr.h" }
    module endian           { header "__bit/endian.h" }
    module has_single_bit   { header "__bit/has_single_bit.h" }
    module invert_if        { header "__bit/invert_if.h" }
    module popcount         { header "__bit/popcount.h" }
    module rotate           { header "__bit/rotate.h" }

    header "bit"
    export *
  }

  module bitset {
    header "bitset"
    export *
  }

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

    header "charconv"
    export *
  }

  module chrono {
    module calendar                   { header "__chrono/calendar.h" }
    module concepts                   { header "__chrono/concepts.h" }
    module convert_to_timespec        { header "__chrono/convert_to_timespec.h" }
    module convert_to_tm              { header "__chrono/convert_to_tm.h" }
    module day                        { header "__chrono/day.h" }
    module duration                   { header "__chrono/duration.h" }
    module exception                  { header "__chrono/exception.h" }
    module file_clock                 { header "__chrono/file_clock.h" }
    module formatter                  { header "__chrono/formatter.h" }
    module hh_mm_ss                   { header "__chrono/hh_mm_ss.h" }
    module high_resolution_clock {
      header "__chrono/high_resolution_clock.h"
      export *
    }
    module leap_second {
      header "__chrono/leap_second.h"
    }
    module literals {
      header "__chrono/literals.h"
    }
    module local_info {
      header "__chrono/local_info.h"
      export std.chrono.sys_info
    }
    module month_weekday              { header "__chrono/month_weekday.h" }
    module month                      { header "__chrono/month.h" }
    module monthday                   { header "__chrono/monthday.h" }
    module ostream                    { header "__chrono/ostream.h" }
    module parser_std_format_spec     { header "__chrono/parser_std_format_spec.h" }
    module statically_widen           { header "__chrono/statically_widen.h" }
    module steady_clock {
      header "__chrono/steady_clock.h"
      export std.chrono.time_point
    }
    module sys_info {
      header "__chrono/sys_info.h"
    }
    module system_clock {
      header "__chrono/system_clock.h"
      export std.chrono.time_point
    }
    module time_point                 { header "__chrono/time_point.h" }
    module time_zone_link             { header "__chrono/time_zone_link.h" }
    module time_zone                  { header "__chrono/time_zone.h" }
    module tzdb_list {
      header "__chrono/tzdb_list.h"
      export std.forward_list // forward_list iterators are used to implement this API
      export std.string_view // by-value argument of type std::string_view
    }
    module tzdb {
      header "__chrono/tzdb.h"
      export std.string // public data member of type std::string
      export std.vector // public data members of type std::vector
    }
    module weekday                    { header "__chrono/weekday.h" }
    module year_month_day             { header "__chrono/year_month_day.h" }
    module year_month_weekday         { header "__chrono/year_month_weekday.h" }
    module year_month                 { header "__chrono/year_month.h" }
    module year                       { header "__chrono/year.h" }
    module zoned_time                 { header "__chrono/zoned_time.h" }

    header "chrono"
    export *
  } // module chrono

  module codecvt {
    header "codecvt"
    export *
  }

  module compare {
    module common_comparison_category       { header "__compare/common_comparison_category.h" }
    module compare_partial_order_fallback   { header "__compare/compare_partial_order_fallback.h" }
    module compare_strong_order_fallback    { header "__compare/compare_strong_order_fallback.h" }
    module compare_three_way                { header "__compare/compare_three_way.h" }
    module compare_three_way_result         { header "__compare/compare_three_way_result.h" }
    module compare_weak_order_fallback      { header "__compare/compare_weak_order_fallback.h" }
    module is_eq                            { header "__compare/is_eq.h" }
    module ordering                         { header "__compare/ordering.h" }
    module partial_order                    { header "__compare/partial_order.h" }
    module strong_order                     { header "__compare/strong_order.h" }
    module synth_three_way                  { header "__compare/synth_three_way.h" }
    module three_way_comparable             { header "__compare/three_way_comparable.h" }
    module weak_order                       { header "__compare/weak_order.h" }

    header "compare"
    export *
  }

  module complex {
    module fwd { header "__fwd/complex.h" }

    header "complex"
    export *
  }

  module concepts {
    module arithmetic               { header "__concepts/arithmetic.h" }
    module assignable               { header "__concepts/assignable.h" }
    module boolean_testable         { header "__concepts/boolean_testable.h" }
    module class_or_enum            { header "__concepts/class_or_enum.h" }
    module common_reference_with    { header "__concepts/common_reference_with.h" }
    module common_with              { header "__concepts/common_with.h" }
    module constructible            { header "__concepts/constructible.h" }
    module convertible_to           { header "__concepts/convertible_to.h" }
    module copyable                 { header "__concepts/copyable.h" }
    module derived_from             { header "__concepts/derived_from.h" }
    module destructible             { header "__concepts/destructible.h" }
    module different_from           { header "__concepts/different_from.h" }
    module equality_comparable      { header "__concepts/equality_comparable.h" }
    module invocable                { header "__concepts/invocable.h" }
    module movable                  { header "__concepts/movable.h" }
    module predicate                { header "__concepts/predicate.h" }
    module regular                  { header "__concepts/regular.h" }
    module relation                 { header "__concepts/relation.h" }
    module same_as                  { header "__concepts/same_as.h" }
    module semiregular              { header "__concepts/semiregular.h" }
    module swappable                { header "__concepts/swappable.h" }
    module totally_ordered          { header "__concepts/totally_ordered.h" }

    header "concepts"
    export *
  }

  module condition_variable {
    module condition_variable   { header "__condition_variable/condition_variable.h" }

    header "condition_variable"
    export *
  }

  module cassert {
    textual header "cassert" // NDEBUG requires textual inclusion
  }

  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 {
    header "clocale"
    export *
  }

  module cmath {
    header "cmath"
    export *
  }

  // TODO: Make non-textual. This seems to cause problems when compiling against Glibc.
  module csetjmp {
    textual header "csetjmp"
  }

  module csignal {
    header "csignal"
    export *
  }

  module cstdalign {
    header "cstdalign"
    export *
  }

  module cstdarg {
    header "cstdarg"
    export *
  }

  module cstdbool {
    header "cstdbool"
    export *
  }

  module cstddef {
    header "cstddef"
    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 {
    header "cwchar"
    export *
  }

  module cwctype {
    header "cwctype"
    export *
  }

  module deque {
    module fwd { header "__fwd/deque.h" }

    header "deque"
    export *
  }

  module exception {
    module exception          { header "__exception/exception.h" }
    module exception_ptr      { header "__exception/exception_ptr.h" }
    module nested_exception   { header "__exception/nested_exception.h" }
    module operations         { header "__exception/operations.h" }
    module terminate          { header "__exception/terminate.h" }

    header "exception"
    export *
  }

  module execution {
    header "execution"
    export *
  }

  module expected {
    module bad_expected_access    { header "__expected/bad_expected_access.h" }
    module expected               { header "__expected/expected.h" }
    module unexpect               { header "__expected/unexpect.h" }
    module unexpected             { header "__expected/unexpected.h" }

    header "expected"
    export *
  }

  module filesystem {
    module copy_options                   { header "__filesystem/copy_options.h" }
    module directory_entry                { header "__filesystem/directory_entry.h" }
    module directory_iterator             { header "__filesystem/directory_iterator.h" }
    module directory_options              { header "__filesystem/directory_options.h" }
    module file_status                    { header "__filesystem/file_status.h" }
    module file_time_type                 { header "__filesystem/file_time_type.h" }
    module file_type                      { header "__filesystem/file_type.h" }
    module filesystem_error               { header "__filesystem/filesystem_error.h" }
    module operations                     { header "__filesystem/operations.h" }
    module path_iterator                  { header "__filesystem/path_iterator.h" }
    module path                           {
      header "__filesystem/path.h"
      export std.string // returned by various methods of filesystem::path
    }
    module perm_options                   { header "__filesystem/perm_options.h" }
    module perms                          { header "__filesystem/perms.h" }
    module recursive_directory_iterator   { header "__filesystem/recursive_directory_iterator.h" }
    module space_info                     { header "__filesystem/space_info.h" }
    module u8path                         { header "__filesystem/u8path.h" }

    header "filesystem"
    export *
  }

  module flat_map {
    module flat_map                       { header "__flat_map/flat_map.h" }
    module key_value_iterator             { header "__flat_map/key_value_iterator.h" }
    module sorted_unique                  { header "__flat_map/sorted_unique.h" }

    header "flat_map"
    export *
  }

  module format {
    module buffer                             { header "__format/buffer.h" }
    module concepts                           { header "__format/concepts.h" }
    module container_adaptor                  { header "__format/container_adaptor.h" }
    module enable_insertable                  { header "__format/enable_insertable.h" }
    module escaped_output_table               { header "__format/escaped_output_table.h" }
    module extended_grapheme_cluster_table    { header "__format/extended_grapheme_cluster_table.h" }
    module format_arg                         { header "__format/format_arg.h" }
    module format_arg_store                   { header "__format/format_arg_store.h" }
    module format_args                        { header "__format/format_args.h" }
    module format_context {
      header "__format/format_context.h"
      export std.optional // default argument for __format_context_create
    }
    module format_error {
      header "__format/format_error.h"
    }
    module format_functions {
      header "__format/format_functions.h"
      export std.string // returned by the functions in that header
    }
    module format_parse_context               { header "__format/format_parse_context.h" }
    module format_string                      { header "__format/format_string.h" }
    module format_to_n_result                 { header "__format/format_to_n_result.h" }
    module formatter                          { header "__format/formatter.h" }
    module formatter_bool                     { header "__format/formatter_bool.h" }
    module formatter_char                     { header "__format/formatter_char.h" }
    module formatter_floating_point           { header "__format/formatter_floating_point.h" }
    module formatter_integer                  { header "__format/formatter_integer.h" }
    module formatter_integral                 { header "__format/formatter_integral.h" }
    module formatter_output                   { header "__format/formatter_output.h" }
    module formatter_pointer                  { header "__format/formatter_pointer.h" }
    module formatter_string                   { header "__format/formatter_string.h" }
    module formatter_tuple                    { header "__format/formatter_tuple.h" }
    module fwd                                { header "__fwd/format.h" }
    module indic_conjunct_break_table         { header "__format/indic_conjunct_break_table.h" }
    module parser_std_format_spec             { header "__format/parser_std_format_spec.h" }
    module range_default_formatter            { header "__format/range_default_formatter.h" }
    module range_formatter                    { header "__format/range_formatter.h" }
    module unicode                            { header "__format/unicode.h" }
    module width_estimation_table             { header "__format/width_estimation_table.h" }
    module write_escaped                      { header "__format/write_escaped.h" }

    header "format"
    export *
  } // module format

  module forward_list {
    header "forward_list"
    export *
  }

  module fstream {
    module fwd { header "__fwd/fstream.h" }

    header "fstream"
    export *
  }

  module functional {
    module binary_function              { header "__functional/binary_function.h" }
    module binary_negate                { header "__functional/binary_negate.h" }
    module bind_back {
      header "__functional/bind_back.h"
      export std.functional.perfect_forward // inherited from and using its operators
    }
    module bind_front {
      header "__functional/bind_front.h"
      export std.functional.perfect_forward // inherited from and using its operators
    }
    module bind                         { header "__functional/bind.h" }
    module binder1st                    { header "__functional/binder1st.h" }
    module binder2nd                    { header "__functional/binder2nd.h" }
    module boyer_moore_searcher {
      header "__functional/boyer_moore_searcher.h"
      export std.memory.shared_ptr
    }
    module compose {
      header "__functional/compose.h"
      export std.functional.perfect_forward // inherited from and using its operators
    }
    module default_searcher             { header "__functional/default_searcher.h" }
    module function                     { header "__functional/function.h" }
    module hash                         { header "__functional/hash.h" }
    module identity                     { header "__functional/identity.h" }
    module invoke                       { header "__functional/invoke.h" }
    module is_transparent               { header "__functional/is_transparent.h" }
    module mem_fn                       { header "__functional/mem_fn.h" }
    module mem_fun_ref                  { header "__functional/mem_fun_ref.h" }
    module not_fn {
      header "__functional/not_fn.h"
      export std.functional.perfect_forward // inherited from and using its operators
    }
    module operations                   { header "__functional/operations.h" }
    module perfect_forward {
      header "__functional/perfect_forward.h"
      export std.tuple
    }
    module pointer_to_binary_function   { header "__functional/pointer_to_binary_function.h" }
    module pointer_to_unary_function    { header "__functional/pointer_to_unary_function.h" }
    module ranges_operations            { header "__functional/ranges_operations.h" }
    module reference_wrapper            { header "__functional/reference_wrapper.h" }
    module unary_function               { header "__functional/unary_function.h" }
    module unary_negate                 { header "__functional/unary_negate.h" }
    module weak_result_type             { header "__functional/weak_result_type.h" }

    header "functional"
    export *
  } // module functional

  module future {
    header "future"
    export *
  }

  module initializer_list {
    header "initializer_list"
    export *
  }

  module iomanip {
    header "iomanip"
    export *
  }

  module ios {
    module fwd  { header "__fwd/ios.h" }
    module fpos { header "__ios/fpos.h" }

    header "ios"
    export *
  }

  module iosfwd {
    header "iosfwd"
    export *
  }

  module iostream {
    header "iostream"
    export *
  }

  module istream {
    module fwd { header "__fwd/istream.h" }

    header "istream"
    export std.ios // base class
  }

  module iterator {
    module access                     { header "__iterator/access.h" }
    module advance                    { header "__iterator/advance.h" }
    module aliasing_iterator          { header "__iterator/aliasing_iterator.h" }
    module back_insert_iterator       { header "__iterator/back_insert_iterator.h" }
    module bounded_iter               { header "__iterator/bounded_iter.h" }
    module common_iterator            { header "__iterator/common_iterator.h" }
    module concepts {
      header "__iterator/concepts.h"
      export std_core.type_traits.common_reference
    }
    module counted_iterator           { header "__iterator/counted_iterator.h" }
    module cpp17_iterator_concepts    { header "__iterator/cpp17_iterator_concepts.h" }
    module data                       { header "__iterator/data.h" }
    module default_sentinel           { header "__iterator/default_sentinel.h" }
    module distance                   { header "__iterator/distance.h" }
    module empty                      { header "__iterator/empty.h" }
    module erase_if_container         { header "__iterator/erase_if_container.h" }
    module front_insert_iterator      { header "__iterator/front_insert_iterator.h" }
    module incrementable_traits       { header "__iterator/incrementable_traits.h" }
    module indirectly_comparable      { header "__iterator/indirectly_comparable.h" }
    module insert_iterator            { header "__iterator/insert_iterator.h" }
    module istream_iterator           { header "__iterator/istream_iterator.h" }
    module istreambuf_iterator        {
      header "__iterator/istreambuf_iterator.h"
      export std.string.char_traits
    }
    module iter_move                  { header "__iterator/iter_move.h" }
    module iter_swap                  { header "__iterator/iter_swap.h" }
    module iterator_traits {
      header "__iterator/iterator_traits.h"
      export std_core.type_traits.integral_constant
    }
    module iterator_with_data         { header "__iterator/iterator_with_data.h" }
    module iterator                   { header "__iterator/iterator.h" }
    module mergeable                  { header "__iterator/mergeable.h" }
    module move_iterator              { header "__iterator/move_iterator.h" }
    module move_sentinel              { header "__iterator/move_sentinel.h" }
    module next                       { header "__iterator/next.h" }
    module ostream_iterator           { header "__iterator/ostream_iterator.h" }
    module ostreambuf_iterator {
      header "__iterator/ostreambuf_iterator.h"
      export iosfwd // for default template argument of ostreambuf_iterator
    }
    module permutable                 { header "__iterator/permutable.h" }
    module prev                       { header "__iterator/prev.h" }
    module projected                  { header "__iterator/projected.h" }
    module ranges_iterator_traits     { header "__iterator/ranges_iterator_traits.h" }
    module readable_traits            { header "__iterator/readable_traits.h" }
    module reverse_access             { header "__iterator/reverse_access.h" }
    module reverse_iterator           { header "__iterator/reverse_iterator.h" }
    module segmented_iterator         { header "__iterator/segmented_iterator.h" }
    module size                       { header "__iterator/size.h" }
    module sortable                   { header "__iterator/sortable.h" }
    module static_bounded_iter        { header "__iterator/static_bounded_iter.h" }
    module unreachable_sentinel       { header "__iterator/unreachable_sentinel.h" }
    module wrap_iter                  { header "__iterator/wrap_iter.h" }

    header "iterator"
    export *
  }

  module latch {
    header "latch"
    export *
  }

  module list {
    header "list"
    export *
  }

  module locale {
    header "locale"
    module pad_and_output { header "__locale_dir/pad_and_output.h" }

    module support {
      header "__locale_dir/locale_base_api.h"
      export *
    }

    module support_impl {
      textual header "__locale_dir/support/apple.h"
      textual header "__locale_dir/support/bsd_like.h"
      textual header "__locale_dir/support/freebsd.h"
      textual header "__locale_dir/support/windows.h"
    }

    module locale_base_api {
      textual header "__locale_dir/locale_base_api/android.h"
      textual header "__locale_dir/locale_base_api/bsd_locale_fallbacks.h"
      textual header "__locale_dir/locale_base_api/fuchsia.h"
      textual header "__locale_dir/locale_base_api/ibm.h"
      textual header "__locale_dir/locale_base_api/musl.h"
      textual header "__locale_dir/locale_base_api/openbsd.h"
    }
    export *
  }

  // TODO: Understand why this needs to live in its own module
  module locale_base [system] {
    header "__locale"
    export *
  }

  module map {
    header "map"
    export *
  }

  module mdspan {
    module default_accessor   { header "__mdspan/default_accessor.h" }
    module extents            { header "__mdspan/extents.h" }
    module fwd                { header "__fwd/mdspan.h" }
    module layout_left        { header "__mdspan/layout_left.h" }
    module layout_right       { header "__mdspan/layout_right.h" }
    module layout_stride      { header "__mdspan/layout_stride.h" }
    module mdspan {
      header "__mdspan/mdspan.h"
      export std.array // returned by some methods
    }

    header "mdspan"
    export *
  }

  module memory {
    module addressof                          { header "__memory/addressof.h" }
    module align                              { header "__memory/align.h" }
    module aligned_alloc                      { header "__memory/aligned_alloc.h" }
    module allocate_at_least                  { header "__memory/allocate_at_least.h" }
    module allocation_guard                   { header "__memory/allocation_guard.h" }
    module allocator                          { header "__memory/allocator.h" }
    module allocator_arg_t                    { header "__memory/allocator_arg_t.h" }
    module allocator_destructor               { header "__memory/allocator_destructor.h" }
    module allocator_traits                   { header "__memory/allocator_traits.h" }
    module array_cookie                       { header "__memory/array_cookie.h" }
    module assume_aligned                     { header "__memory/assume_aligned.h" }
    module auto_ptr                           { header "__memory/auto_ptr.h" }
    module builtin_new_allocator              { header "__memory/builtin_new_allocator.h" }
    module compressed_pair                    { header "__memory/compressed_pair.h" }
    module concepts                           { header "__memory/concepts.h" }
    module construct_at                       { header "__memory/construct_at.h" }
    module destruct_n                         { header "__memory/destruct_n.h" }
    module fwd                                { header "__fwd/memory.h" }
    module inout_ptr                          { header "__memory/inout_ptr.h" }
    module noexcept_move_assign_container     { header "__memory/noexcept_move_assign_container.h" }
    module out_ptr                            { header "__memory/out_ptr.h" }
    module pointer_traits                     { header "__memory/pointer_traits.h" }
    module ranges_construct_at                { header "__memory/ranges_construct_at.h" }
    module ranges_uninitialized_algorithms {
      header "__memory/ranges_uninitialized_algorithms.h"
      export std.algorithm.in_out_result
    }
    module raw_storage_iterator               { header "__memory/raw_storage_iterator.h" }
    module shared_count                       { header "__memory/shared_count.h" }
    module shared_ptr                         { header "__memory/shared_ptr.h" }
    module swap_allocator                     { header "__memory/swap_allocator.h" }
    module temp_value                         { header "__memory/temp_value.h" }
    module temporary_buffer                   {
      header "__memory/temporary_buffer.h"
      export std.utility.pair // return type of std::get_temporary_buffer()
    }
    module uninitialized_algorithms {
      header "__memory/uninitialized_algorithms.h"
      export std.utility.pair
    }
    module unique_ptr {
      header "__memory/unique_ptr.h"
    }
    module unique_temporary_buffer {
      header "__memory/unique_temporary_buffer.h"
      export std.memory.unique_ptr
      export std_core.type_traits.is_constant_evaluated
    }
    module uses_allocator                     { header "__memory/uses_allocator.h" }
    module uses_allocator_construction        { header "__memory/uses_allocator_construction.h" }

    header "memory"
    export *
  }

  module memory_resource {
    module fwd                            { header "__fwd/memory_resource.h" }
    module memory_resource                { header "__memory_resource/memory_resource.h" }
    module monotonic_buffer_resource      { header "__memory_resource/monotonic_buffer_resource.h" }
    module polymorphic_allocator          { header "__memory_resource/polymorphic_allocator.h" }
    module pool_options                   { header "__memory_resource/pool_options.h" }
    module synchronized_pool_resource     { header "__memory_resource/synchronized_pool_resource.h" }
    module unsynchronized_pool_resource   { header "__memory_resource/unsynchronized_pool_resource.h" }

    header "memory_resource"
    export *
  }

  module mutex {
    module lock_guard     { header "__mutex/lock_guard.h" }
    module mutex          { header "__mutex/mutex.h" }
    module once_flag      { header "__mutex/once_flag.h" }
    module tag_types      { header "__mutex/tag_types.h" }
    module unique_lock    { header "__mutex/unique_lock.h" }

    header "mutex"
    export *
  }

  module new {
    header "new"
    module align_val_t          { header "__new/align_val_t.h" }
    module allocate             { header "__new/allocate.h" }
    module destroying_delete_t  { header "__new/destroying_delete_t.h" }
    module exceptions           { header "__new/exceptions.h" }
    module global_new_delete    {
      header "__new/global_new_delete.h"

      export std.new.nothrow_t
    }
    module interference_size    { header "__new/interference_size.h" }
    module launder              { header "__new/launder.h" }
    module new_handler          { header "__new/new_handler.h" }
    module nothrow_t            { header "__new/nothrow_t.h" }
    module placement_new_delete { header "__new/placement_new_delete.h" }

    export *
  }

  module numbers {
    header "numbers"
    export *
  }

  module numeric {
    module accumulate                 { header "__numeric/accumulate.h" }
    module adjacent_difference        { header "__numeric/adjacent_difference.h" }
    module exclusive_scan             { header "__numeric/exclusive_scan.h" }
    module gcd_lcm                    { header "__numeric/gcd_lcm.h" }
    module inclusive_scan             { header "__numeric/inclusive_scan.h" }
    module inner_product              { header "__numeric/inner_product.h" }
    module iota                       { header "__numeric/iota.h" }
    module midpoint                   { header "__numeric/midpoint.h" }
    module partial_sum                { header "__numeric/partial_sum.h" }
    module pstl                       { header "__numeric/pstl.h" }
    module reduce                     { header "__numeric/reduce.h" }
    module saturation_arithmetic      { header "__numeric/saturation_arithmetic.h" }
    module transform_exclusive_scan   { header "__numeric/transform_exclusive_scan.h" }
    module transform_inclusive_scan   { header "__numeric/transform_inclusive_scan.h" }
    module transform_reduce           { header "__numeric/transform_reduce.h" }

    header "numeric"
    export *
  }

  module optional {
    header "optional"
    export *
  }

  module ostream {
    module basic_ostream {
      header "__ostream/basic_ostream.h"
      export std.ios // base class
    }
    module fwd {
      header "__fwd/ostream.h"
    }
    module print {
      header "__ostream/print.h"
      export *
    }
    module put_character_sequence { header "__ostream/put_character_sequence.h" }

    header "ostream"
    export *
  }

  module print {
    header "print"
    export *
  }

  module queue {
    module fwd { header "__fwd/queue.h" }

    header "queue"
    export *
  }

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

    header "random"
    export *
  }

  module ranges {
    module access                         { header "__ranges/access.h" }
    module all                            { header "__ranges/all.h" }
    module as_rvalue_view                 { header "__ranges/as_rvalue_view.h" }
    module chunk_by_view {
      header "__ranges/chunk_by_view.h"
      export std.functional.bind_back
    }
    module common_view                    { header "__ranges/common_view.h" }
    module concepts                       { header "__ranges/concepts.h" }
    module container_compatible_range     { header "__ranges/container_compatible_range.h" }
    module counted {
      header "__ranges/counted.h"
      export std.span            // return type of views::counted
      export std.ranges.subrange // return type of views::counted
    }
    module dangling {
      header "__ranges/dangling.h"
    }
    module data {
      header "__ranges/data.h"
    }
    module drop_view {
      header "__ranges/drop_view.h"
      export std.functional.bind_back
    }
    module drop_while_view {
      header "__ranges/drop_while_view.h"
      export std.functional.bind_back
    }
    module elements_view                  { header "__ranges/elements_view.h" }
    module empty                          { header "__ranges/empty.h" }
    module empty_view                     { header "__ranges/empty_view.h" }
    module enable_borrowed_range          { header "__ranges/enable_borrowed_range.h" }
    module enable_view                    { header "__ranges/enable_view.h" }
    module filter_view {
      header "__ranges/filter_view.h"
      export std.functional.bind_back
    }
    module from_range                     { header "__ranges/from_range.h" }
    module iota_view                      { header "__ranges/iota_view.h" }
    module istream_view                   { header "__ranges/istream_view.h" }
    module join_view                      { header "__ranges/join_view.h" }
    module lazy_split_view {
      header "__ranges/lazy_split_view.h"
      export std.functional.bind_back
    }
    module movable_box                    { header "__ranges/movable_box.h" }
    module non_propagating_cache          { header "__ranges/non_propagating_cache.h" }
    module owning_view                    { header "__ranges/owning_view.h" }
    module range_adaptor                  { header "__ranges/range_adaptor.h" }
    module rbegin                         { header "__ranges/rbegin.h" }
    module ref_view                       { header "__ranges/ref_view.h" }
    module rend                           { header "__ranges/rend.h" }
    module repeat_view                    { header "__ranges/repeat_view.h" }
    module reverse_view                   { header "__ranges/reverse_view.h" }
    module single_view                    { header "__ranges/single_view.h" }
    module size                           { header "__ranges/size.h" }
    module split_view {
      header "__ranges/split_view.h"
      export std.functional.bind_back
    }
    module subrange {
      header "__ranges/subrange.h"
      export std.ranges.subrange_fwd
    }
    module subrange_fwd {
      header "__fwd/subrange.h"
    }
    module take_view {
      header "__ranges/take_view.h"
      export std.functional.bind_back
    }
    module take_while_view {
      header "__ranges/take_while_view.h"
      export std.functional.bind_back
    }
    module to {
      header "__ranges/to.h"
      export std.functional.bind_back
    }
    module transform_view {
      header "__ranges/transform_view.h"
      export std.functional.bind_back
    }
    module view_interface {
      header "__ranges/view_interface.h"
    }
    module views {
      header "__ranges/views.h"
    }
    module zip_view {
      header "__ranges/zip_view.h"
      export std.utility.pair
    }

    header "ranges"
    export *
  } // module ranges

  module ratio {
    header "ratio"
    export *
  }

  module regex {
    header "regex"
    export *
  }

  module scoped_allocator {
    header "scoped_allocator"
    export *
  }

  module semaphore {
    header "semaphore"
    export *
  }

  module set {
    header "set"
    export *
  }

  module shared_mutex {
    header "shared_mutex"
    export *
  }

  module source_location {
    header "source_location"
    export *
  }

  module span {
    module fwd { header "__fwd/span.h" }

    header "span"
    export *
  }

  module sstream {
    module fwd { header "__fwd/sstream.h" }

    header "sstream"
    export *
  }

  module stack {
    module fwd { header "__fwd/stack.h" }

    header "stack"
    export *
  }

  module stdexcept {
    header "stdexcept"
    export *
  }

  module stop_token {
    module atomic_unique_lock     { header "__stop_token/atomic_unique_lock.h" }
    module intrusive_list_view    { header "__stop_token/intrusive_list_view.h" }
    module intrusive_shared_ptr   { header "__stop_token/intrusive_shared_ptr.h" }
    module stop_callback          { header "__stop_token/stop_callback.h" }
    module stop_source            { header "__stop_token/stop_source.h" }
    module stop_state             { header "__stop_token/stop_state.h" }
    module stop_token             { header "__stop_token/stop_token.h" }

    header "stop_token"
    export *
  }

  module streambuf {
    module fwd { header "__fwd/streambuf.h" }

    header "streambuf"
    export *
  }

  module string {
    module char_traits              { header "__string/char_traits.h" }
    module constexpr_c_functions    { header "__string/constexpr_c_functions.h" }
    module extern_template_lists    { header "__string/extern_template_lists.h" }
    module fwd                      {  header "__fwd/string.h" }

    header "string"
    export *
  }

  module string_view {
    module fwd { header "__fwd/string_view.h" }

    header "string_view"
    export *
  }

  module strstream {
    header "strstream"
    export *
  }

  module syncstream {
    header "syncstream"
    export *
  }

  module system_error {
    module errc               { header "__system_error/errc.h" }
    module error_category     { header "__system_error/error_category.h" }
    module error_code {
      header "__system_error/error_code.h"
      export std.system_error.error_category // methods of error_code return that type
    }
    module error_condition    { header "__system_error/error_condition.h" }
    module system_error       { header "__system_error/system_error.h" }
    module throw_system_error { header "__system_error/throw_system_error.h" }

    header "system_error"
    export *
  }

  module thread {
    module formatter              { header "__thread/formatter.h" }
    module id                     { header "__thread/id.h" }
    module jthread                { header "__thread/jthread.h" }
    module poll_with_backoff      { header "__thread/poll_with_backoff.h" }
    module this_thread            { header "__thread/this_thread.h" }
    module thread                 { header "__thread/thread.h" }
    module timed_backoff_policy   { header "__thread/timed_backoff_policy.h" }

    module support {
      header "__thread/support.h"
      export *
    }
    module support_impl {
      textual header "__thread/support/c11.h"
      textual header "__thread/support/external.h"
      textual header "__thread/support/pthread.h"
      textual header "__thread/support/windows.h"
    }

    header "thread"
    export *
  }

  module tuple {
    module find_index               { header "__tuple/find_index.h" }
    module ignore                   { header "__tuple/ignore.h" }
    module make_tuple_types         { header "__tuple/make_tuple_types.h" }
    module sfinae_helpers           { header "__tuple/sfinae_helpers.h" }
    module tuple_element            { header "__tuple/tuple_element.h" }
    module tuple_indices            { header "__tuple/tuple_indices.h" }
    module tuple_like_ext           { header "__tuple/tuple_like_ext.h" }
    module tuple_like_no_subrange   { header "__tuple/tuple_like_no_subrange.h" }
    module tuple_like               { header "__tuple/tuple_like.h" }
    module tuple_size               { header "__tuple/tuple_size.h" }
    module tuple_types              { header "__tuple/tuple_types.h" }

    header "tuple"
    export *
  }

  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 {
    module as_const                   { header "__utility/as_const.h" }
    module as_lvalue                  { header "__utility/as_lvalue.h" }
    module auto_cast                  {
      header "__utility/auto_cast.h"
      export std_core.type_traits.decay // the macro expansion uses that trait
    }
    module cmp                        { header "__utility/cmp.h" }
    module convert_to_integral        { header "__utility/convert_to_integral.h" }
    module exception_guard            { header "__utility/exception_guard.h" }
    module exchange                   { header "__utility/exchange.h" }
    module forward_like               { header "__utility/forward_like.h" }
    module in_place {
      header "__utility/in_place.h"
      export std_core.type_traits.integral_constant
    }
    module integer_sequence           { header "__utility/integer_sequence.h" }
    module is_pointer_in_range        { header "__utility/is_pointer_in_range.h" }
    module is_valid_range             { header "__utility/is_valid_range.h" }
    module move                       { header "__utility/move.h" }
    module no_destroy                 { header "__utility/no_destroy.h" }
    module pair                       { header "__utility/pair.h" }
    module piecewise_construct        { header "__utility/piecewise_construct.h" }
    module priority_tag               { header "__utility/priority_tag.h" }
    module private_constructor_tag    { header "__utility/private_constructor_tag.h" }
    module rel_ops                    { header "__utility/rel_ops.h" }
    module scope_guard                { header "__utility/scope_guard.h" }
    module small_buffer               { header "__utility/small_buffer.h" }
    module swap                       { header "__utility/swap.h" }
    module to_underlying              { header "__utility/to_underlying.h" }
    module unreachable                { header "__utility/unreachable.h" }

    header "utility"
    export *
  }

  module valarray {
    header "valarray"
    export *
  }

  module variant {
    module fwd       { header "__fwd/variant.h" }
    module monostate { header "__variant/monostate.h" }

    header "variant"
    export *
  }

  module vector {
    module fwd                   { header "__fwd/vector.h" }

    module comparison            { header "__vector/comparison.h" }
    module container_traits      { header "__vector/container_traits.h" }
    module erase                 { header "__vector/erase.h" }
    module vector_bool_formatter {
      header "__vector/vector_bool_formatter.h"

      export std.format.formatter
    }
    module pmr                   {
      header "__vector/pmr.h"

      export std.memory_resource.polymorphic_allocator
    }
    module swap                  { header "__vector/swap.h" }
    module vector_bool           {
      header "__vector/vector_bool.h"
      export std.bit_reference
      export std.memory.allocator
      export std.vector.comparison
      export std.vector.fwd
      export std.vector.swap
    }
    module vector                {
      header "__vector/vector.h"
      export std.iterator.bounded_iter
      export std.iterator.wrap_iter
      export std.memory.allocator
      export std.vector.comparison
      export std.vector.fwd
      export std.vector.swap
    }

    header "vector"
    export *
  }

  // Experimental C++ Standard Library interfaces
  module experimental {
    module iterator           { header "experimental/iterator" }
    module memory             { header "experimental/memory" }
    module propagate_const    { header "experimental/propagate_const" }
    module type_traits        { header "experimental/type_traits" }
    module utility            { header "experimental/utility" }
    module simd {
      private header "experimental/__simd/aligned_tag.h"
      private header "experimental/__simd/declaration.h"
      private header "experimental/__simd/reference.h"
      private header "experimental/__simd/scalar.h"
      private header "experimental/__simd/simd_mask.h"
      private header "experimental/__simd/simd.h"
      private header "experimental/__simd/traits.h"
      private header "experimental/__simd/utility.h"
      private header "experimental/__simd/vec_ext.h"
      header "experimental/simd"
      export *
    }
  }

  // Implementation detail headers that are private to libc++. These modules
  // must not be directly imported.
  module debug_utils {
    module randomize_range              { header "__debug_utils/randomize_range.h" }
    module sanitizers                   { header "__debug_utils/sanitizers.h" }
    module strict_weak_ordering_check   { header "__debug_utils/strict_weak_ordering_check.h" }
  }

  module get_fwd {
    header "__fwd/get.h"
    export std_core.fwd.pair
    export std_core.fwd.tuple
    export std.array.fwd
    export std.complex.fwd
    export std.ranges.subrange_fwd
    export std.variant.fwd
  }

  module pstl {
    module backend_fwd {
      header "__pstl/backend_fwd.h"
    }
    module backend {
      header "__pstl/backend.h"
      export * // need to export everything from whatever backend is currently configured
    }
    module backends {
      module default {
        header "__pstl/backends/default.h"
        export std_core.utility_core.empty
      }
      module libdispatch {
        header "__pstl/backends/libdispatch.h"
        export std.pstl.cpu_algos
        export std_core.utility_core.empty
      }
      module serial {
        header "__pstl/backends/serial.h"
        export std_core.utility_core.empty
      }
      module std_thread {
        header "__pstl/backends/std_thread.h"
        export std.pstl.cpu_algos
        export std_core.utility_core.empty
      }
    }
    module cpu_algos {
      module any_of {
        header "__pstl/cpu_algos/any_of.h"
      }
      module cpu_traits {
        header "__pstl/cpu_algos/cpu_traits.h"
      }
      module fill {
        header "__pstl/cpu_algos/fill.h"
        export std_core.utility_core.empty
      }
      module find_if {
        header "__pstl/cpu_algos/find_if.h"
      }
      module for_each {
        header "__pstl/cpu_algos/for_each.h"
        export std_core.utility_core.empty
      }
      module merge {
        header "__pstl/cpu_algos/merge.h"
      }
      module stable_sort {
        header "__pstl/cpu_algos/stable_sort.h"
        export std_core.utility_core.empty
      }
      module transform {
        header "__pstl/cpu_algos/transform.h"
      }
      module transform_reduce {
        header "__pstl/cpu_algos/transform_reduce.h"
      }
    }
    module dispatch           { header "__pstl/dispatch.h" }
    module handle_exception   { header "__pstl/handle_exception.h" }
  }

  // Miscellaneous modules for top-level headers
  module bit_reference_fwd {
    header "__fwd/bit_reference.h"
  }
  module bit_reference {
    header "__bit_reference"
    export std.bit_reference_fwd
  }
  module hash_table           { header "__hash_table" }
  module node_handle          { header "__node_handle" }
  module split_buffer         { header "__split_buffer" }
  module tree                 { header "__tree" }
  module std_mbstate_t {
    header "__std_mbstate_t.h"
    export *
  }
  module verbose_abort {
    header "__verbose_abort"
  }
  module internal_assert {
    header "__assert"
    export *
  }

  module undef_macros {
    textual header "__undef_macros"
  }

  // This module needs to appear after __tree to work around issues with modules in Objective-C++ mode.
  module coroutine {
    module coroutine_handle         { header "__coroutine/coroutine_handle.h" }
    module coroutine_traits         { header "__coroutine/coroutine_traits.h" }
    module noop_coroutine_handle    { header "__coroutine/noop_coroutine_handle.h" }
    module trivial_awaitables       { header "__coroutine/trivial_awaitables.h" }

    header "coroutine"
    export *
  }
} // module std

// C compatibility headers
//
// These modules need to be their own top-level modules because they depend on the system-provided
// headers (via include_next), which are then free to include other C headers provided by libc++.
// If we group these headers in a single module, we would end up with circular dependencies.
module std_complex_h [system] {
  header "complex.h"
  export *
}
module std_ctype_h [system] {
  header "ctype.h"
  export *
}
module std_errno_h [system] {
  header "errno.h"
  export *
}
module std_fenv_h [system] {
  header "fenv.h"
  export *
}
module std_float_h [system] {
  header "float.h"
  export *
}
module std_inttypes_h [system] {
  header "inttypes.h"
  export *
}
module std_math_h [system] {
  header "math.h"
  export *
}
module std_stdatomic_h [system] {
  header "stdatomic.h"
  export *
}
module std_stdbool_h [system] {
  // <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
  textual header "stdbool.h"
}
module std_stddef_h [system] {
  // <stddef.h> supports being included multiple times with different pre-defined macros
  textual header "stddef.h"
}
module std_stdio_h [system] {
  // <stdio.h> supports being included multiple times with different pre-defined macros
  textual header "stdio.h"
}
module std_stdlib_h [system] {
  // <stdlib.h> supports being included multiple times with different pre-defined macros
  textual header "stdlib.h"
}
module std_string_h [system] {
  header "string.h"
  export *
}
module std_tgmath_h [system] {
  header "tgmath.h"
  export *
}
module std_uchar_h [system] {
  header "uchar.h"
  export *
}
module std_wchar_h [system] {
  // <wchar.h> supports being included multiple times with different pre-defined macros
  textual header "wchar.h"
}
module std_wctype_h [system] {
  header "wctype.h"
  export *
}

// This header is used by other C compatibility headers so it needs to be in its own module.
module std_private_mbstate_t [system] {
  header "__mbstate_t.h"
  export *
}
