COMPILATION_UNIT -> COMPILATION_UNIT [6:1]
`--MODULE_DEF -> MODULE_DEF [6:1]
    |--ANNOTATIONS -> ANNOTATIONS [6:1]
    |   `--ANNOTATION -> ANNOTATION [6:1]
    |       |--AT -> @ [6:1]
    |       `--IDENT -> Deprecated [6:2]
    |--LITERAL_OPEN -> open [7:1]
    |--LITERAL_MODULE -> module [7:6]
    |--DOT -> . [7:24]
    |   |--DOT -> . [7:16]
    |   |   |--IDENT -> com [7:13]
    |   |   `--IDENT -> example [7:17]
    |   `--IDENT -> myapp [7:25]
    `--DIRECTIVE_BLOCK -> DIRECTIVE_BLOCK [7:31]
        |--LCURLY -> { [7:31]
        |--REQUIRES -> requires [8:5]
        |   |--DOT -> . [8:18]
        |   |   |--IDENT -> java [8:14]
        |   |   `--IDENT -> base [8:19]
        |   `--SEMI -> ; [8:23]
        |--REQUIRES -> requires [9:5]
        |   |--LITERAL_TRANSITIVE -> transitive [9:14]
        |   |--DOT -> . [9:29]
        |   |   |--IDENT -> java [9:25]
        |   |   `--IDENT -> sql [9:30]
        |   `--SEMI -> ; [9:33]
        |--REQUIRES -> requires [10:5]
        |   |--LITERAL_STATIC -> static [10:14]
        |   |--DOT -> . [10:32]
        |   |   |--DOT -> . [10:24]
        |   |   |   |--IDENT -> com [10:21]
        |   |   |   `--IDENT -> example [10:25]
        |   |   `--IDENT -> annotations [10:33]
        |   `--SEMI -> ; [10:44]
        |--EXPORTS -> exports [12:5]
        |   |--DOT -> . [12:24]
        |   |   |--DOT -> . [12:16]
        |   |   |   |--IDENT -> com [12:13]
        |   |   |   `--IDENT -> example [12:17]
        |   |   `--IDENT -> api [12:25]
        |   `--SEMI -> ; [12:28]
        |--EXPORTS -> exports [13:5]
        |   |--DOT -> . [13:24]
        |   |   |--DOT -> . [13:16]
        |   |   |   |--IDENT -> com [13:13]
        |   |   |   `--IDENT -> example [13:17]
        |   |   `--IDENT -> internal [13:25]
        |   |--TO -> to [13:34]
        |   |   |--DOT -> . [13:48]
        |   |   |   |--DOT -> . [13:40]
        |   |   |   |   |--IDENT -> com [13:37]
        |   |   |   |   `--IDENT -> example [13:41]
        |   |   |   `--IDENT -> other [13:49]
        |   |   |--COMMA -> , [13:54]
        |   |   `--DOT -> . [13:67]
        |   |       |--DOT -> . [13:59]
        |   |       |   |--IDENT -> com [13:56]
        |   |       |   `--IDENT -> example [13:60]
        |   |       `--IDENT -> third [13:68]
        |   `--SEMI -> ; [13:73]
        |--OPENS -> opens [15:5]
        |   |--DOT -> . [15:22]
        |   |   |--DOT -> . [15:14]
        |   |   |   |--IDENT -> com [15:11]
        |   |   |   `--IDENT -> example [15:15]
        |   |   `--IDENT -> model [15:23]
        |   `--SEMI -> ; [15:28]
        |--OPENS -> opens [16:5]
        |   |--DOT -> . [16:22]
        |   |   |--DOT -> . [16:14]
        |   |   |   |--IDENT -> com [16:11]
        |   |   |   `--IDENT -> example [16:15]
        |   |   `--IDENT -> secrets [16:23]
        |   |--TO -> to [16:31]
        |   |   `--DOT -> . [16:45]
        |   |       |--DOT -> . [16:37]
        |   |       |   |--IDENT -> com [16:34]
        |   |       |   `--IDENT -> example [16:38]
        |   |       `--IDENT -> friend [16:46]
        |   `--SEMI -> ; [16:52]
        |--USES -> uses [18:5]
        |   |--DOT -> . [18:25]
        |   |   |--DOT -> . [18:21]
        |   |   |   |--DOT -> . [18:13]
        |   |   |   |   |--IDENT -> com [18:10]
        |   |   |   |   `--IDENT -> example [18:14]
        |   |   |   `--IDENT -> api [18:22]
        |   |   `--IDENT -> Service [18:26]
        |   `--SEMI -> ; [18:33]
        |--PROVIDES -> provides [20:5]
        |   |--DOT -> . [20:29]
        |   |   |--DOT -> . [20:25]
        |   |   |   |--DOT -> . [20:17]
        |   |   |   |   |--IDENT -> com [20:14]
        |   |   |   |   `--IDENT -> example [20:18]
        |   |   |   `--IDENT -> api [20:26]
        |   |   `--IDENT -> Service [20:30]
        |   |--WITH -> with [20:38]
        |   |   `--DOT -> . [20:59]
        |   |       |--DOT -> . [20:54]
        |   |       |   |--DOT -> . [20:46]
        |   |       |   |   |--IDENT -> com [20:43]
        |   |       |   |   `--IDENT -> example [20:47]
        |   |       |   `--IDENT -> impl [20:55]
        |   |       `--IDENT -> ServiceImpl [20:60]
        |   `--SEMI -> ; [20:71]
        |--PROVIDES -> provides [21:5]
        |   |--DOT -> . [21:29]
        |   |   |--DOT -> . [21:25]
        |   |   |   |--DOT -> . [21:17]
        |   |   |   |   |--IDENT -> com [21:14]
        |   |   |   |   `--IDENT -> example [21:18]
        |   |   |   `--IDENT -> api [21:26]
        |   |   `--IDENT -> Codec [21:30]
        |   |--WITH -> with [21:36]
        |   |   |--DOT -> . [21:57]
        |   |   |   |--DOT -> . [21:52]
        |   |   |   |   |--DOT -> . [21:44]
        |   |   |   |   |   |--IDENT -> com [21:41]
        |   |   |   |   |   `--IDENT -> example [21:45]
        |   |   |   |   `--IDENT -> impl [21:53]
        |   |   |   `--IDENT -> FastCodec [21:58]
        |   |   |--COMMA -> , [21:67]
        |   |   `--DOT -> . [22:25]
        |   |       |--DOT -> . [22:20]
        |   |       |   |--DOT -> . [22:12]
        |   |       |   |   |--IDENT -> com [22:9]
        |   |       |   |   `--IDENT -> example [22:13]
        |   |       |   `--IDENT -> impl [22:21]
        |   |       `--IDENT -> SafeCodec [22:26]
        |   `--SEMI -> ; [22:35]
        `--RCURLY -> } [23:1]
