module cstd [system] {
  // Only in compiler support directory
  module float_constants {
    header "float.h"
  }

  // Only in system headers directory
  module stdio {
    header "stdio.h"
  }

  // In both directories (compiler support version wins, does not forward)
  module stdbool {
    header "stdbool.h"
  }

  // In both directories (compiler support version wins, forwards)
  module stdint {
    header "stdint.h"
  }
}

module other_constants {
  explicit module dbl_max {
    header "dbl_max.h"
  }
}

module uses_other_constants {
  header "uses_other_constants.h"
  export *
}

module Darwin {
  module C {
    module excluded {
      requires excluded
      header "assert.h"
    }
  }
}

module Tcl {
  module Private {
    requires excluded
    umbrella ""
  }
}

module IOKit {
  module avc {
    requires cplusplus
  }
}
