module X {
  module Empty { header "empty.h" }

  exclude header "textual1.h"
  textual header "textual2.h"
  textual header "textual3.h"

  module A { header "usetextual1.h" }
  module B { header "usetextual2.h" }
  module C { header "usetextual3.h" }
  module D { header "usetextual4.h" }
  module E { header "usetextual5.h" }

  module P { private header "private1.h" }
  module Q { private header "private2.h" }
  module R { private header "private3.h" }
  module S { header "useprivate1.h" export * }
  module T { header "useprivate3.h" }
}

module Other { textual header "textual4.h" }