// 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 reference_constructs_from_temporary {
      header "__type_traits/reference_constructs_from_temporary.h"
      export std_core.type_traits.integral_constant
    }
    module reference_converts_from_temporary {
      header "__type_traits/reference_converts_from_temporary.h"
      export std_core.type_traits.integral_constant
    }
    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"
      export std.ranges.subrange // return type
    }
    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"
      export std.ranges.subrange // return type
    }
    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"
      export std.ranges.subrange // return type
    }
    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.ranges.subrange // return type
    }
    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"
      export std.ranges.subrange // return type
    }
    module ranges_search {
      header "__algorithm/ranges_search.h"
      export std.ranges.subrange // return type
    }
    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
      export std.algorithm.sort
      export std.algorithm.make_projected
    }
    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"
      export std.memory.unique_temporary_buffer // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
    }
    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 gps_clock {
      header "__chrono/gps_clock.h"
      export std.chrono.time_point
    }
    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 tai_clock {
      header "__chrono/tai_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 utc_clock {
      header "__chrono/utc_clock.h"
      export std.chrono.time_point
    }
    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"
      // This is a workaround for https://github.com/llvm/llvm-project/issues/120108.
      export *
    }
    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"
      export std.vector.vector
      export std.vector.fwd
    }
    module flat_multimap                  {
      header "__flat_map/flat_multimap.h"
      export std.vector.vector
      export std.vector.fwd
    }
    module key_value_iterator             { header "__flat_map/key_value_iterator.h" }
    module sorted_equivalent              { header "__flat_map/sorted_equivalent.h" }
    module sorted_unique                  { header "__flat_map/sorted_unique.h" }
    module utils                          { header "__flat_map/utils.h" }

    header "flat_map"
    export *
  }

  module format {
    module buffer                             {
      header "__format/buffer.h"
      export std.iterator.back_insert_iterator
    }
    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"
      export std_core.fwd.functional
    }
    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/fuchsia.h"
      textual header "__locale_dir/support/linux.h"
      textual header "__locale_dir/support/no_locale/characters.h"
      textual header "__locale_dir/support/no_locale/strtonum.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/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 {
    module fwd { header "__fwd/map.h" }
    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"
      export * // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
    }
    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 compressed_pair                    { header "__memory/compressed_pair.h" }
    module concepts                           { header "__memory/concepts.h" }
    module construct_at                       { header "__memory/construct_at.h" }
    module destroy                            { header "__memory/destroy.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_destroy                     { header "__memory/ranges_destroy.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
      export * // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
    }
    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"
      export std.utility.element_count // used as part of the API
      export * // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
    }
    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 {
    module fwd { header "__fwd/set.h" }
    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"
      export std.utility.element_count // used as part of the constexpr C function's API
    }
    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 element_count              { header "__utility/element_count.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 *
}
