// 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_site" // generated via CMake
  textual header "__config"
  textual header "__configuration/abi.h"
  textual header "__configuration/availability.h"
  textual header "__configuration/compiler.h"
  textual header "__configuration/experimental.h"
  textual header "__configuration/hardening.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_pointer                                { header "__type_traits/add_pointer.h" }
    module add_reference                              { header "__type_traits/add_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 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 integer_traits                             { header "__type_traits/integer_traits.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" }
    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_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_generic_transparent_comparator { header "__type_traits/is_generic_transparent_comparator.h" }
    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_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 {
      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_union {
      header "__type_traits/is_union.h"
      export std_core.type_traits.integral_constant
    }
    module is_unqualified { header "__type_traits/is_unqualified.h" }
    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 is_within_lifetime                         { header "__type_traits/is_within_lifetime.h" }
    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_transparent                           { header "__type_traits/make_transparent.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"
      export std.iterator_traits
    }
    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_n_segment                     { header "__algorithm/for_each_n_segment.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 out_value_result                       { header "__algorithm/out_value_result.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"
      export std.ranges.subrange // return type
    }
    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"
      export std.ranges.subrange // return type
    }
    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 specialized_algorithms                 { header "__algorithm/specialized_algorithms.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://llvm.org/PR120108
    }
    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 *
    export std.iterator.reverse_iterator
  }

  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_sync_timed      { header "__atomic/atomic_sync_timed.h" }
    module atomic_waitable_traits { header "__atomic/atomic_waitable_traits.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 floating_point_helper  { header "__atomic/floating_point_helper.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"
      export std.system_error.errc
    }
    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"
      export std.charconv.to_chars_result
    }
    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 is_clock {
      header "__chrono/is_clock.h"
      export std_core.type_traits.integral_constant
    }
    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 comparison_common_type   { header "__concepts/comparison_common_type.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 *
    export std.iterator.reverse_iterator
    export std.algorithm.simd_utils // This is a workaround for https://llvm.org/PR120108.
  }

  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://llvm.org/PR120108.
      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 *
    export std.algorithm.ranges_sort
    export std.iterator.reverse_iterator
    export std.ranges.zip_view
    export std.tuple
  }

  module flat_set {
    module flat_set                       {
      header "__flat_set/flat_set.h"
      header "__flat_set/flat_multiset.h"
      export std.vector.vector
      export std.vector.fwd
    }
    module ra_iterator                    { header "__flat_set/ra_iterator.h" }
    module utils                          { header "__flat_set/utils.h" }

    header "flat_set"
    export std.flat_map.sorted_unique
    export std.flat_map.sorted_equivalent
    export *
    export std.algorithm.ranges_sort
    export std.iterator.reverse_iterator
    export std.ranges.zip_view
    export std.tuple
  }

  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 fmt_pair_like                      { header "__format/fmt_pair_like.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_format                       { header "__format/range_format.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 *
    export std.iterator.reverse_iterator
  }

  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
      export std_core.type_traits.is_convertible
    }
    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 product_iterator           { header "__iterator/product_iterator.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 *
    export std.iterator.reverse_iterator
  }

  module locale {
    header "locale"
    module check_grouping  { header "__locale_dir/check_grouping.h" }
    module get_c_locale    { header "__locale_dir/get_c_locale.h" }
    module messages        { header "__locale_dir/messages.h" }
    module money           { header "__locale_dir/money.h" }
    module num             { header "__locale_dir/num.h" }
    module pad_and_output  { header "__locale_dir/pad_and_output.h" }
    module scan_keyword    { header "__locale_dir/scan_keyword.h" }
    module time            { header "__locale_dir/time.h" }
    module wbuffer_convert { header "__locale_dir/wbuffer_convert.h" }
    module wstring_convert { header "__locale_dir/wstring_convert.h" }

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

    module support_impl {
      textual header "__locale_dir/support/aix.h"
      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/netbsd.h"
      textual header "__locale_dir/support/newlib.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/bsd_locale_fallbacks.h"
      textual header "__locale_dir/locale_base_api/ibm.h"
      textual header "__locale_dir/locale_base_api/openbsd.h"
    }
    export *
  }

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

  module map {
    header "map"
    export *
    export std.iterator.reverse_iterator
  }

  module mdspan {
    module aligned_accessor   { header "__mdspan/aligned_accessor.h" }
    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 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://llvm.org/PR120108
    }
    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 is_sufficiently_aligned            { header "__memory/is_sufficiently_aligned.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"
      export std.functional.hash
    }
    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"
      export std.functional.hash
    }
    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://llvm.org/PR120108
    }
    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://llvm.org/PR120108
    }
    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 ranges_iota                { header "__numeric/ranges_iota.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 adjacent_transform_view        { header "__ranges/adjacent_transform_view.h" }
    module adjacent_view                  { header "__ranges/adjacent_view.h" }
    module all                            {
      header "__ranges/all.h"
      export std.ranges.ref_view
    }
    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_of                    { header "__ranges/elements_of.h" }
    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 join_with_view                 { header "__ranges/join_with_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
    }
    module zip_transform_view {
      header "__ranges/zip_transform_view.h"
    }

    header "ranges"
    export *
  } // module ranges

  module ratio {
    header "ratio"
    export *
  }

  module regex {
    header "regex"
    export *
    export std.iterator.reverse_iterator
  }

  module scoped_allocator {
    header "scoped_allocator"
    export *
  }

  module semaphore {
    header "semaphore"
    export *
  }

  module set {
    header "set"
    export *
    export std.iterator.reverse_iterator
  }

  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 *
    export std.iterator.reverse_iterator
  }

  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 *
    export std.iterator.reverse_iterator
  }

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

    header "string_view"
    export *
    export std.iterator.reverse_iterator
  }

  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 sfinae_helpers           { header "__tuple/sfinae_helpers.h" }
    module tuple_element            { header "__tuple/tuple_element.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_trasnform          { header "__tuple/tuple_transform.h" }

    header "tuple"
    export *
  }

  module typeindex {
    header "typeindex"
    export *
  }

  module typeinfo {
    header "typeinfo"
    export *
  }

  module unordered_map {
    header "unordered_map"
    export *
    export std.iterator.reverse_iterator
  }

  module unordered_set {
    header "unordered_set"
    export *
    export std.iterator.reverse_iterator
  }

  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 default_three_way_comparator    { header "__utility/default_three_way_comparator.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 lazy_synth_three_way_comparator { header "__utility/lazy_synth_three_way_comparator.h" }
    module move                            { header "__utility/move.h" }
    module no_destroy                      { header "__utility/no_destroy.h" }
    module pair                            {
      header "__utility/pair.h"
      export std.utility.piecewise_construct
    }
    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 try_key_extraction              { header "__utility/try_key_extraction.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 std.iterator.reverse_iterator
    export *
    export std.algorithm.simd_utils // This is a workaround for https://llvm.org/PR120108.
  }

  // 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"
    export std.memory.unique_ptr
  }
  module std_mbstate_t {
    header "__std_mbstate_t.h"
    export *
  }
  module log_hardening_failure {
    header "__log_hardening_failure"
  }
  module verbose_abort {
    header "__verbose_abort"
  }
  module verbose_trap {
    header "__verbose_trap"
  }
  module internal_assert {
    header "__assert"
    export *
  }
  module assertion_handler {
    header "__assertion_handler" // generated via CMake
    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 *
    export std.functional.hash
  }
} // 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_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 *
}
