COMPILATION_UNIT -> COMPILATION_UNIT [4:1]
`--MODULE_DEF -> MODULE_DEF [4:1]
    |--ANNOTATIONS -> ANNOTATIONS [4:1]
    |--LITERAL_MODULE -> module [4:1]
    |--IDENT -> module [4:8]
    `--DIRECTIVE_BLOCK -> DIRECTIVE_BLOCK [4:15]
        |--LCURLY -> { [4:15]
        |--REQUIRES -> requires [5:5]
        |   |--IDENT -> requires [5:14]
        |   `--SEMI -> ; [5:22]
        |--REQUIRES -> requires [6:5]
        |   |--IDENT -> transitive [6:14]
        |   `--SEMI -> ; [6:24]
        |--REQUIRES -> requires [7:5]
        |   |--LITERAL_TRANSITIVE -> transitive [7:14]
        |   |--IDENT -> transitive [7:25]
        |   `--SEMI -> ; [7:35]
        |--REQUIRES -> requires [8:5]
        |   |--LITERAL_STATIC -> static [8:14]
        |   |--IDENT -> requires [8:21]
        |   `--SEMI -> ; [8:29]
        |--EXPORTS -> exports [9:5]
        |   |--IDENT -> exports [9:13]
        |   `--SEMI -> ; [9:20]
        |--EXPORTS -> exports [10:5]
        |   |--IDENT -> to [10:13]
        |   |--TO -> to [10:16]
        |   |   `--IDENT -> to [10:19]
        |   `--SEMI -> ; [10:21]
        |--OPENS -> opens [11:5]
        |   |--IDENT -> opens [11:11]
        |   |--TO -> to [11:17]
        |   |   |--IDENT -> open [11:20]
        |   |   |--COMMA -> , [11:24]
        |   |   `--IDENT -> with [11:26]
        |   `--SEMI -> ; [11:30]
        |--USES -> uses [12:5]
        |   |--IDENT -> uses [12:10]
        |   `--SEMI -> ; [12:14]
        |--PROVIDES -> provides [13:5]
        |   |--IDENT -> provides [13:14]
        |   |--WITH -> with [13:23]
        |   |   `--IDENT -> with [13:28]
        |   `--SEMI -> ; [13:32]
        `--RCURLY -> } [14:1]
