module std [system] {
  // FIXME: The standard does not require that each of these submodules
  // re-exports its imported modules. We should provide an alternative form of
  // export that issues a warning if a name from the submodule is used, and
  // use that to provide a 'strict mode' for libc++.
  module algorithm {
    header "algorithm"
    export initializer_list
    export *
  }
  module array {
    header "array"
    export initializer_list
    export *
  }
  module atomic {
    header "atomic"
    export *
    requires cplusplus11
  }
  module bitset {
    header "bitset"
    export string
    export iosfwd
    export *
  }
  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
  module ccomplex {
    header "ccomplex"
    export complex
    export *
  }
  module cctype {
    header "cctype"
    export *
  }
  module cerrno {
    header "cerrno"
/*
    export_macros    ECONNREFUSED, EIO,          ENODEV,      ENOTEMPTY,       ERANGE,
      E2BIG,         ECONNRESET,   EISCONN,      ENOENT,      ENOTRECOVERABLE, EROFS,
      EACCES,        EDEADLK,      EISDIR,       ENOEXEC,     ENOTSOCK,        ESPIPE,
      EADDRINUSE,    EDESTADDRREQ, ELOOP,        ENOLCK,      ENOTSUP,         ESRCH,
      EADDRNOTAVAIL, EDOM,         EMFILE,       ENOLINK,     ENOTTY,          ETIME,
      EAFNOSUPPORT,  EEXIST,       EMLINK,       ENOMEM,      ENXIO,           ETIMEDOUT,
      EAGAIN,        EFAULT,       EMSGSIZE,     ENOMSG,      EOPNOTSUPP,      ETXTBSY,
      EALREADY,      EFBIG,        ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW,       EWOULDBLOCK,
      EBADF,         EHOSTUNREACH, ENETDOWN,     ENOSPC,      EOWNERDEAD,      EXDEV,
      EBADMSG,       EIDRM,        ENETRESET,    ENOSR,       EPERM,           errno,
      EBUSY,         EILSEQ,       ENETUNREACH,  ENOSTR,      EPIPE,
      ECANCELED,     EINPROGRESS,  ENFILE,       ENOSYS,      EPROTO,
      ECHILD,        EINTR,        ENOBUFS,      ENOTCONN,    EPROTONOSUPPORT,
      ECONNABORTED,  EINVAL,       ENODATA,      ENOTDIR,     EPROTOTYPE
*/
    export *
  }
  module cfenv {
    header "cfenv"
/*
    export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
                  FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
                  FE_DFL_ENV
*/
    export *
  }
  module cfloat {
    header "cfloat"
/*
    export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
                  FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
                  FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
                  FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
                  DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
                  DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
                  DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
                  LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
                  LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
                  LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
*/
    export *
  }
  module chrono {
    header "chrono"
    export *
  }
  module cinttypes {
    header "cinttypes"
    export cstdint
/*
    export_macros
      PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
      PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
      PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
      PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
      PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
      PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
      SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
      SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
      SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
      SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
      SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
      SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
*/
    export *
  }
  module ciso646 {
    header "ciso646"
    export *
  }
  module climits {
    header "climits"
/*
    export_macros CHAR_BIT,  CHAR_MIN,  CHAR_MAX,
                  SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
                  SHRT_MIN,  SHRT_MAX,  USHRT_MAX,
                  INT_MIN,   INT_MAX,   UINT_MAX,
                  LONG_MIN,  LONG_MAX,  ULONG_MAX,
                  LLONG_MIN, LLONG_MAX, ULLONG_MAX,
                  MB_LEN_MAX
*/
    export *
  }
  module clocale {
    header "clocale"
/*
    export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
*/
    export *
  }
  module cmath {
    header "cmath"
/*
    export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
                  FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
                  HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
                  MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
*/
    export *
  }
  module codecvt {
    header "codecvt"
    export *
  }
  module complex {
    header "complex"
    export *
  }
  module condition_variable {
    header "condition_variable"
    export *
  }
  module csetjmp {
    header "csetjmp"
/*
    export_macros setjmp
*/
    export *
  }
  module csignal {
    header "csignal"
/*
    export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
                  SIG_DFL, SIG_IGN, SIG_ERR
*/
    export *
  }
  module cstdarg {
    header "cstdarg"
/*
    export_macros va_arg, va_start, va_end, va_copy
*/
    export *
  }
  module cstdbool {
    header "cstdbool"
/*
    export_macros __bool_true_false_are_defined
*/
    export *
  }
  module cstddef {
    header "cstddef"
/*
    export_macros NULL, offsetof
*/
    export *
  }
  module cstdint {
    header "cstdint"
/*
    export_macros
      INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
      INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
      INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
      INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
      INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
      INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
      INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
      PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
      SIZE_MAX
*/
    export *
  }
  module cstdio {
    header "cstdio"
/*
    export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
                  SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
                  stdin, stdout, stderr
*/
    export *
  }
  module cstdlib {
    header "cstdlib"
/*
    export_macros RAND_MAX
*/
    export *
  }
  module cstring {
    header "cstring"
/*
    export_macros NULL
*/
    export *
  }
  module ctgmath {
    header "ctgmath"
    export ccomplex
    export cmath
    export *
  }
  module ctime {
    header "ctime"
/*
    export_macros NULL, CLOCKS_PER_SEC
*/
    export *
  }
  module cwchar {
    header "cwchar"
/*
    export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
*/
    export *
  }
  module cwctype {
    header "cwctype"
/*
    export_macros WEOF
*/
    export *
  }
  module deque {
    header "deque"
    export initializer_list
    export *
  }
  module exception {
    header "exception"
    export *
  }
  module forward_list {
    header "forward_list"
    export initializer_list
    export *
  }
  module fstream {
    header "fstream"
    export *
  }
  module functional {
    header "functional"
    export *
  }
  module future {
    header "future"
    export *
  }
  module initializer_list {
    header "initializer_list"
    export *
  }
  module iomanip {
    header "iomanip"
    export *
  }
  module ios {
    header "ios"
    export iosfwd
    export *
  }
  module iosfwd {
    header "iosfwd"
    export *
  }
  module iostream {
    header "iostream"
    export ios
    export streambuf
    export istream
    export ostream
    export *
  }
  module istream {
    header "istream"
    // FIXME: should re-export ios, streambuf?
    export *
  }
  module iterator {
    header "iterator"
    export *
  }
  module limits {
    header "limits"
    export *
  }
  module list {
    header "list"
    export initializer_list
    export *
  }
  module locale {
    header "locale"
    export *
  }
  module map {
    header "map"
    export initializer_list
    export *
  }
  module memory {
    header "memory"
    export *
  }
  module mutex {
    header "mutex"
    export *
  }
  module new {
    header "new"
    export *
  }
  module numeric {
    header "numeric"
    export *
  }
  module ostream {
    header "ostream"
    // FIXME: should re-export ios, streambuf?
    export *
  }
  module queue {
    header "queue"
    export initializer_list
    export *
  }
  module random {
    header "random"
    export initializer_list
    export *
  }
  module ratio {
    header "ratio"
    export *
  }
  module regex {
    header "regex"
    export initializer_list
    export *
  }
  module scoped_allocator {
    header "scoped_allocator"
    export *
  }
  module set {
    header "set"
    export initializer_list
    export *
  }
  module sstream {
    header "sstream"
    // FIXME: should re-export istream, ostream, ios, streambuf, string?
    export *
  }
  module stack {
    header "stack"
    export initializer_list
    export *
  }
  module stdexcept {
    header "stdexcept"
    export *
  }
  module streambuf {
    header "streambuf"
    export *
  }
  module string {
    header "string"
    export initializer_list
    export *
  }
  module strstream {
    header "strstream"
    requires !cplusplus11
  }
  module system_error {
    header "system_error"
    export *
  }
  module thread {
    header "thread"
    export *
  }
  module tuple {
    header "tuple"
    export *
  }
  module type_traits {
    header "type_traits"
    export *
  }
  module typeindex {
    header "typeindex"
    export *
  }
  module typeinfo {
    header "typeinfo"
    export *
  }
  module unordered_map {
    header "unordered_map"
    export initializer_list
    export *
  }
  module unordered_set {
    header "unordered_set"
    export initializer_list
    export *
  }
  module utility {
    header "utility"
    export initializer_list
    export *
  }
  module valarray {
    header "valarray"
    export initializer_list
    export *
  }
  module vector {
    header "vector"
    export initializer_list
    export *
  }

  // FIXME: We don't have modules for the <foo.h> headers, because they might
  // be included from the C library's headers, and that would create a #include
  // cycle. For the same reason, we don't have a module for __config.
  //module __config { header "__config" export * }

  // FIXME: These should be private.
  module __bit_reference { header "__bit_reference" export * }
  module __debug { header "__debug" export * }
  module __functional_base { header "__functional_base" export * }
  module __hash_table { header "__hash_table" export * }
  module __locale { header "__locale" export * }
  module __mutex_base { header "__mutex_base" export * }
  module __split_buffer { header "__split_buffer" export * }
  module __sso_allocator { header "__sso_allocator" export * }
  module __std_stream { header "__std_stream" export * }
  module __tree { header "__tree" export * }
  module __tuple { header "__tuple" export * }
  module __undef_min_max { header "__undef_min_max" export * }
  module __undef___deallocate { header "__undef___deallocate" export * }
}
