module "stuff" {
  textual header "defs.h"
  module "empty" { header "empty.h" }
  module "use" { header "use-defs.h" }
  module "use-2" { requires use_defs_twice header "use-defs-2.h" }
}

module "redef" {
  header "import-and-redefine.h"
  // Do not re-export stuff.use
  use "stuff"
}

module "merged-defs" {
  header "merged-defs.h"
  use "stuff"
}

module "indirect" {
  header "indirect.h"
  use "merged-defs"
}