---
source: full-moon/tests/pass_cases.rs
expression: ast.nodes()
input_file: full-moon/tests/roblox_cases/pass/types_packs
snapshot_kind: text
---
stmts:
  - - FunctionDeclaration:
        attributes: []
        function_token:
          leading_trivia:
            - start_position:
                bytes: 0
                line: 1
                character: 1
              end_position:
                bytes: 9
                line: 1
                character: 10
              token_type:
                type: SingleLineComment
                comment: "!strict"
            - start_position:
                bytes: 9
                line: 1
                character: 10
              end_position:
                bytes: 10
                line: 1
                character: 10
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 10
              line: 2
              character: 1
            end_position:
              bytes: 18
              line: 2
              character: 9
            token_type:
              type: Symbol
              symbol: function
          trailing_trivia:
            - start_position:
                bytes: 18
                line: 2
                character: 9
              end_position:
                bytes: 19
                line: 2
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        name:
          names:
            pairs:
              - End:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 19
                      line: 2
                      character: 10
                    end_position:
                      bytes: 23
                      line: 2
                      character: 14
                    token_type:
                      type: Identifier
                      identifier: _foo
                  trailing_trivia: []
          colon_name: ~
        body:
          generics:
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 23
                      line: 2
                      character: 14
                    end_position:
                      bytes: 24
                      line: 2
                      character: 15
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 28
                      line: 2
                      character: 19
                    end_position:
                      bytes: 29
                      line: 2
                      character: 20
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia: []
            generics:
              pairs:
                - End:
                    parameter:
                      Variadic:
                        name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 24
                              line: 2
                              character: 15
                            end_position:
                              bytes: 25
                              line: 2
                              character: 16
                            token_type:
                              type: Identifier
                              identifier: T
                          trailing_trivia: []
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 25
                              line: 2
                              character: 16
                            end_position:
                              bytes: 28
                              line: 2
                              character: 19
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia: []
                    default: ~
          parameters_parentheses:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 29
                    line: 2
                    character: 20
                  end_position:
                    bytes: 30
                    line: 2
                    character: 21
                  token_type:
                    type: Symbol
                    symbol: (
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 47
                    line: 2
                    character: 38
                  end_position:
                    bytes: 48
                    line: 2
                    character: 39
                  token_type:
                    type: Symbol
                    symbol: )
                trailing_trivia:
                  - start_position:
                      bytes: 48
                      line: 2
                      character: 39
                    end_position:
                      bytes: 49
                      line: 2
                      character: 39
                    token_type:
                      type: Whitespace
                      characters: "\n"
          parameters:
            pairs:
              - End:
                  Name:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 30
                        line: 2
                        character: 21
                      end_position:
                        bytes: 35
                        line: 2
                        character: 26
                      token_type:
                        type: Identifier
                        identifier: param
                    trailing_trivia: []
          type_specifiers:
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 35
                    line: 2
                    character: 26
                  end_position:
                    bytes: 36
                    line: 2
                    character: 27
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 36
                      line: 2
                      character: 27
                    end_position:
                      bytes: 37
                      line: 2
                      character: 28
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                Callback:
                  generics: ~
                  parentheses:
                    tokens:
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 37
                            line: 2
                            character: 28
                          end_position:
                            bytes: 38
                            line: 2
                            character: 29
                          token_type:
                            type: Symbol
                            symbol: (
                        trailing_trivia: []
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 38
                            line: 2
                            character: 29
                          end_position:
                            bytes: 39
                            line: 2
                            character: 30
                          token_type:
                            type: Symbol
                            symbol: )
                        trailing_trivia:
                          - start_position:
                              bytes: 39
                              line: 2
                              character: 30
                            end_position:
                              bytes: 40
                              line: 2
                              character: 31
                            token_type:
                              type: Whitespace
                              characters: " "
                  arguments:
                    pairs: []
                  arrow:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 40
                        line: 2
                        character: 31
                      end_position:
                        bytes: 42
                        line: 2
                        character: 33
                      token_type:
                        type: Symbol
                        symbol: "->"
                    trailing_trivia:
                      - start_position:
                          bytes: 42
                          line: 2
                          character: 33
                        end_position:
                          bytes: 43
                          line: 2
                          character: 34
                        token_type:
                          type: Whitespace
                          characters: " "
                  return_type:
                    GenericPack:
                      name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 43
                            line: 2
                            character: 34
                          end_position:
                            bytes: 44
                            line: 2
                            character: 35
                          token_type:
                            type: Identifier
                            identifier: T
                        trailing_trivia: []
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 44
                            line: 2
                            character: 35
                          end_position:
                            bytes: 47
                            line: 2
                            character: 38
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
          block:
            stmts: []
          end_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 49
                line: 3
                character: 1
              end_position:
                bytes: 52
                line: 3
                character: 4
              token_type:
                type: Symbol
                symbol: end
            trailing_trivia:
              - start_position:
                  bytes: 52
                  line: 3
                  character: 4
                end_position:
                  bytes: 53
                  line: 3
                  character: 4
                token_type:
                  type: Whitespace
                  characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia:
            - start_position:
                bytes: 53
                line: 4
                character: 1
              end_position:
                bytes: 54
                line: 4
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 54
              line: 5
              character: 1
            end_position:
              bytes: 58
              line: 5
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 58
                line: 5
                character: 5
              end_position:
                bytes: 59
                line: 5
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 59
              line: 5
              character: 6
            end_position:
              bytes: 62
              line: 5
              character: 9
            token_type:
              type: Identifier
              identifier: Foo
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 62
                    line: 5
                    character: 9
                  end_position:
                    bytes: 63
                    line: 5
                    character: 10
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 67
                    line: 5
                    character: 14
                  end_position:
                    bytes: 68
                    line: 5
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 68
                      line: 5
                      character: 15
                    end_position:
                      bytes: 69
                      line: 5
                      character: 16
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Variadic:
                      name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 63
                            line: 5
                            character: 10
                          end_position:
                            bytes: 64
                            line: 5
                            character: 11
                          token_type:
                            type: Identifier
                            identifier: T
                        trailing_trivia: []
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 64
                            line: 5
                            character: 11
                          end_position:
                            bytes: 67
                            line: 5
                            character: 14
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 69
              line: 5
              character: 16
            end_position:
              bytes: 70
              line: 5
              character: 17
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 70
                line: 5
                character: 17
              end_position:
                bytes: 71
                line: 5
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 71
                      line: 5
                      character: 18
                    end_position:
                      bytes: 72
                      line: 5
                      character: 19
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 72
                      line: 5
                      character: 19
                    end_position:
                      bytes: 73
                      line: 5
                      character: 20
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 73
                        line: 5
                        character: 20
                      end_position:
                        bytes: 74
                        line: 5
                        character: 21
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 74
                  line: 5
                  character: 21
                end_position:
                  bytes: 76
                  line: 5
                  character: 23
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 76
                    line: 5
                    character: 23
                  end_position:
                    bytes: 77
                    line: 5
                    character: 24
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              GenericPack:
                name:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 77
                      line: 5
                      character: 24
                    end_position:
                      bytes: 78
                      line: 5
                      character: 25
                    token_type:
                      type: Identifier
                      identifier: T
                  trailing_trivia: []
                ellipsis:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 78
                      line: 5
                      character: 25
                    end_position:
                      bytes: 81
                      line: 5
                      character: 28
                    token_type:
                      type: Symbol
                      symbol: "..."
                  trailing_trivia:
                    - start_position:
                        bytes: 81
                        line: 5
                        character: 28
                      end_position:
                        bytes: 82
                        line: 5
                        character: 28
                      token_type:
                        type: Whitespace
                        characters: "\n"
    - ~
  - - FunctionDeclaration:
        attributes: []
        function_token:
          leading_trivia:
            - start_position:
                bytes: 82
                line: 6
                character: 1
              end_position:
                bytes: 83
                line: 6
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 83
              line: 7
              character: 1
            end_position:
              bytes: 91
              line: 7
              character: 9
            token_type:
              type: Symbol
              symbol: function
          trailing_trivia:
            - start_position:
                bytes: 91
                line: 7
                character: 9
              end_position:
                bytes: 92
                line: 7
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        name:
          names:
            pairs:
              - End:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 92
                      line: 7
                      character: 10
                    end_position:
                      bytes: 96
                      line: 7
                      character: 14
                    token_type:
                      type: Identifier
                      identifier: _bar
                  trailing_trivia: []
          colon_name: ~
        body:
          generics:
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 96
                      line: 7
                      character: 14
                    end_position:
                      bytes: 97
                      line: 7
                      character: 15
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 101
                      line: 7
                      character: 19
                    end_position:
                      bytes: 102
                      line: 7
                      character: 20
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia: []
            generics:
              pairs:
                - End:
                    parameter:
                      Variadic:
                        name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 97
                              line: 7
                              character: 15
                            end_position:
                              bytes: 98
                              line: 7
                              character: 16
                            token_type:
                              type: Identifier
                              identifier: T
                          trailing_trivia: []
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 98
                              line: 7
                              character: 16
                            end_position:
                              bytes: 101
                              line: 7
                              character: 19
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia: []
                    default: ~
          parameters_parentheses:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 102
                    line: 7
                    character: 20
                  end_position:
                    bytes: 103
                    line: 7
                    character: 21
                  token_type:
                    type: Symbol
                    symbol: (
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 112
                    line: 7
                    character: 30
                  end_position:
                    bytes: 113
                    line: 7
                    character: 31
                  token_type:
                    type: Symbol
                    symbol: )
                trailing_trivia:
                  - start_position:
                      bytes: 113
                      line: 7
                      character: 31
                    end_position:
                      bytes: 114
                      line: 7
                      character: 31
                    token_type:
                      type: Whitespace
                      characters: "\n"
          parameters:
            pairs:
              - End:
                  Ellipsis:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 103
                        line: 7
                        character: 21
                      end_position:
                        bytes: 106
                        line: 7
                        character: 24
                      token_type:
                        type: Symbol
                        symbol: "..."
                    trailing_trivia: []
          type_specifiers:
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 106
                    line: 7
                    character: 24
                  end_position:
                    bytes: 107
                    line: 7
                    character: 25
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 107
                      line: 7
                      character: 25
                    end_position:
                      bytes: 108
                      line: 7
                      character: 26
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                GenericPack:
                  name:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 108
                        line: 7
                        character: 26
                      end_position:
                        bytes: 109
                        line: 7
                        character: 27
                      token_type:
                        type: Identifier
                        identifier: T
                    trailing_trivia: []
                  ellipsis:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 109
                        line: 7
                        character: 27
                      end_position:
                        bytes: 112
                        line: 7
                        character: 30
                      token_type:
                        type: Symbol
                        symbol: "..."
                    trailing_trivia: []
          block:
            stmts: []
          end_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 114
                line: 8
                character: 1
              end_position:
                bytes: 117
                line: 8
                character: 4
              token_type:
                type: Symbol
                symbol: end
            trailing_trivia:
              - start_position:
                  bytes: 117
                  line: 8
                  character: 4
                end_position:
                  bytes: 118
                  line: 8
                  character: 4
                token_type:
                  type: Whitespace
                  characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia:
            - start_position:
                bytes: 118
                line: 9
                character: 1
              end_position:
                bytes: 119
                line: 9
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 119
              line: 10
              character: 1
            end_position:
              bytes: 123
              line: 10
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 123
                line: 10
                character: 5
              end_position:
                bytes: 124
                line: 10
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 124
              line: 10
              character: 6
            end_position:
              bytes: 125
              line: 10
              character: 7
            token_type:
              type: Identifier
              identifier: A
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 125
                    line: 10
                    character: 7
                  end_position:
                    bytes: 126
                    line: 10
                    character: 8
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 133
                    line: 10
                    character: 15
                  end_position:
                    bytes: 134
                    line: 10
                    character: 16
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 134
                      line: 10
                      character: 16
                    end_position:
                      bytes: 135
                      line: 10
                      character: 17
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - Punctuated:
                  - parameter:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 126
                            line: 10
                            character: 8
                          end_position:
                            bytes: 127
                            line: 10
                            character: 9
                          token_type:
                            type: Identifier
                            identifier: Z
                        trailing_trivia: []
                    default: ~
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 127
                        line: 10
                        character: 9
                      end_position:
                        bytes: 128
                        line: 10
                        character: 10
                      token_type:
                        type: Symbol
                        symbol: ","
                    trailing_trivia:
                      - start_position:
                          bytes: 128
                          line: 10
                          character: 10
                        end_position:
                          bytes: 129
                          line: 10
                          character: 11
                        token_type:
                          type: Whitespace
                          characters: " "
              - End:
                  parameter:
                    Variadic:
                      name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 129
                            line: 10
                            character: 11
                          end_position:
                            bytes: 130
                            line: 10
                            character: 12
                          token_type:
                            type: Identifier
                            identifier: P
                        trailing_trivia: []
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 130
                            line: 10
                            character: 12
                          end_position:
                            bytes: 133
                            line: 10
                            character: 15
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 135
              line: 10
              character: 17
            end_position:
              bytes: 136
              line: 10
              character: 18
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 136
                line: 10
                character: 18
              end_position:
                bytes: 137
                line: 10
                character: 19
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 137
                      line: 10
                      character: 19
                    end_position:
                      bytes: 138
                      line: 10
                      character: 20
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 138
                      line: 10
                      character: 20
                    end_position:
                      bytes: 139
                      line: 10
                      character: 21
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 139
                        line: 10
                        character: 21
                      end_position:
                        bytes: 140
                        line: 10
                        character: 21
                      token_type:
                        type: Whitespace
                        characters: "\n"
            fields:
              pairs: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 140
              line: 11
              character: 1
            end_position:
              bytes: 144
              line: 11
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 144
                line: 11
                character: 5
              end_position:
                bytes: 145
                line: 11
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 145
              line: 11
              character: 6
            end_position:
              bytes: 146
              line: 11
              character: 7
            token_type:
              type: Identifier
              identifier: C
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 146
                    line: 11
                    character: 7
                  end_position:
                    bytes: 147
                    line: 11
                    character: 8
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 151
                    line: 11
                    character: 12
                  end_position:
                    bytes: 152
                    line: 11
                    character: 13
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 152
                      line: 11
                      character: 13
                    end_position:
                      bytes: 153
                      line: 11
                      character: 14
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Variadic:
                      name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 147
                            line: 11
                            character: 8
                          end_position:
                            bytes: 148
                            line: 11
                            character: 9
                          token_type:
                            type: Identifier
                            identifier: S
                        trailing_trivia: []
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 148
                            line: 11
                            character: 9
                          end_position:
                            bytes: 151
                            line: 11
                            character: 12
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 153
              line: 11
              character: 14
            end_position:
              bytes: 154
              line: 11
              character: 15
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 154
                line: 11
                character: 15
              end_position:
                bytes: 155
                line: 11
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Generic:
            base:
              leading_trivia: []
              token:
                start_position:
                  bytes: 155
                  line: 11
                  character: 16
                end_position:
                  bytes: 156
                  line: 11
                  character: 17
                token_type:
                  type: Identifier
                  identifier: A
              trailing_trivia: []
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 156
                      line: 11
                      character: 17
                    end_position:
                      bytes: 157
                      line: 11
                      character: 18
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 169
                      line: 11
                      character: 30
                    end_position:
                      bytes: 170
                      line: 11
                      character: 31
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia:
                    - start_position:
                        bytes: 170
                        line: 11
                        character: 31
                      end_position:
                        bytes: 171
                        line: 11
                        character: 32
                      token_type:
                        type: Whitespace
                        characters: " "
                    - start_position:
                        bytes: 171
                        line: 11
                        character: 32
                      end_position:
                        bytes: 198
                        line: 11
                        character: 59
                      token_type:
                        type: SingleLineComment
                        comment: " with a generic type pack"
                    - start_position:
                        bytes: 198
                        line: 11
                        character: 59
                      end_position:
                        bytes: 199
                        line: 11
                        character: 59
                      token_type:
                        type: Whitespace
                        characters: "\n"
            generics:
              pairs:
                - Punctuated:
                    - Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 157
                            line: 11
                            character: 18
                          end_position:
                            bytes: 163
                            line: 11
                            character: 24
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 163
                          line: 11
                          character: 24
                        end_position:
                          bytes: 164
                          line: 11
                          character: 25
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 164
                            line: 11
                            character: 25
                          end_position:
                            bytes: 165
                            line: 11
                            character: 26
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    GenericPack:
                      name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 165
                            line: 11
                            character: 26
                          end_position:
                            bytes: 166
                            line: 11
                            character: 27
                          token_type:
                            type: Identifier
                            identifier: S
                        trailing_trivia: []
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 166
                            line: 11
                            character: 27
                          end_position:
                            bytes: 169
                            line: 11
                            character: 30
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 199
              line: 12
              character: 1
            end_position:
              bytes: 203
              line: 12
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 203
                line: 12
                character: 5
              end_position:
                bytes: 204
                line: 12
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 204
              line: 12
              character: 6
            end_position:
              bytes: 205
              line: 12
              character: 7
            token_type:
              type: Identifier
              identifier: B
          trailing_trivia:
            - start_position:
                bytes: 205
                line: 12
                character: 7
              end_position:
                bytes: 206
                line: 12
                character: 8
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 206
              line: 12
              character: 8
            end_position:
              bytes: 207
              line: 12
              character: 9
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 207
                line: 12
                character: 9
              end_position:
                bytes: 208
                line: 12
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Generic:
            base:
              leading_trivia: []
              token:
                start_position:
                  bytes: 208
                  line: 12
                  character: 10
                end_position:
                  bytes: 209
                  line: 12
                  character: 11
                token_type:
                  type: Identifier
                  identifier: A
              trailing_trivia: []
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 209
                      line: 12
                      character: 11
                    end_position:
                      bytes: 210
                      line: 12
                      character: 12
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 227
                      line: 12
                      character: 29
                    end_position:
                      bytes: 228
                      line: 12
                      character: 30
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia:
                    - start_position:
                        bytes: 228
                        line: 12
                        character: 30
                      end_position:
                        bytes: 229
                        line: 12
                        character: 31
                      token_type:
                        type: Whitespace
                        characters: " "
                    - start_position:
                        bytes: 229
                        line: 12
                        character: 31
                      end_position:
                        bytes: 257
                        line: 12
                        character: 59
                      token_type:
                        type: SingleLineComment
                        comment: " with a variadic type pack"
                    - start_position:
                        bytes: 257
                        line: 12
                        character: 59
                      end_position:
                        bytes: 258
                        line: 12
                        character: 59
                      token_type:
                        type: Whitespace
                        characters: "\n"
            generics:
              pairs:
                - Punctuated:
                    - Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 210
                            line: 12
                            character: 12
                          end_position:
                            bytes: 216
                            line: 12
                            character: 18
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 216
                          line: 12
                          character: 18
                        end_position:
                          bytes: 217
                          line: 12
                          character: 19
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 217
                            line: 12
                            character: 19
                          end_position:
                            bytes: 218
                            line: 12
                            character: 20
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    Variadic:
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 218
                            line: 12
                            character: 20
                          end_position:
                            bytes: 221
                            line: 12
                            character: 23
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
                      type_info:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 221
                              line: 12
                              character: 23
                            end_position:
                              bytes: 227
                              line: 12
                              character: 29
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 258
              line: 13
              character: 1
            end_position:
              bytes: 262
              line: 13
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 262
                line: 13
                character: 5
              end_position:
                bytes: 263
                line: 13
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 263
              line: 13
              character: 6
            end_position:
              bytes: 264
              line: 13
              character: 7
            token_type:
              type: Identifier
              identifier: D
          trailing_trivia:
            - start_position:
                bytes: 264
                line: 13
                character: 7
              end_position:
                bytes: 265
                line: 13
                character: 8
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 265
              line: 13
              character: 8
            end_position:
              bytes: 266
              line: 13
              character: 9
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 266
                line: 13
                character: 9
              end_position:
                bytes: 267
                line: 13
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Generic:
            base:
              leading_trivia: []
              token:
                start_position:
                  bytes: 267
                  line: 13
                  character: 10
                end_position:
                  bytes: 268
                  line: 13
                  character: 11
                token_type:
                  type: Identifier
                  identifier: A
              trailing_trivia: []
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 268
                      line: 13
                      character: 11
                    end_position:
                      bytes: 269
                      line: 13
                      character: 12
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 279
                      line: 13
                      character: 22
                    end_position:
                      bytes: 280
                      line: 13
                      character: 23
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia:
                    - start_position:
                        bytes: 280
                        line: 13
                        character: 23
                      end_position:
                        bytes: 281
                        line: 13
                        character: 24
                      token_type:
                        type: Whitespace
                        characters: " "
                    - start_position:
                        bytes: 281
                        line: 13
                        character: 24
                      end_position:
                        bytes: 307
                        line: 13
                        character: 50
                      token_type:
                        type: SingleLineComment
                        comment: " with an empty type pack"
                    - start_position:
                        bytes: 307
                        line: 13
                        character: 50
                      end_position:
                        bytes: 308
                        line: 13
                        character: 50
                      token_type:
                        type: Whitespace
                        characters: "\n"
            generics:
              pairs:
                - Punctuated:
                    - Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 269
                            line: 13
                            character: 12
                          end_position:
                            bytes: 275
                            line: 13
                            character: 18
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 275
                          line: 13
                          character: 18
                        end_position:
                          bytes: 276
                          line: 13
                          character: 19
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 276
                            line: 13
                            character: 19
                          end_position:
                            bytes: 277
                            line: 13
                            character: 20
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    Tuple:
                      parentheses:
                        tokens:
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 277
                                line: 13
                                character: 20
                              end_position:
                                bytes: 278
                                line: 13
                                character: 21
                              token_type:
                                type: Symbol
                                symbol: (
                            trailing_trivia: []
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 278
                                line: 13
                                character: 21
                              end_position:
                                bytes: 279
                                line: 13
                                character: 22
                              token_type:
                                type: Symbol
                                symbol: )
                            trailing_trivia: []
                      types:
                        pairs: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia:
            - start_position:
                bytes: 308
                line: 14
                character: 1
              end_position:
                bytes: 309
                line: 14
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 309
              line: 15
              character: 1
            end_position:
              bytes: 313
              line: 15
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 313
                line: 15
                character: 5
              end_position:
                bytes: 314
                line: 15
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 314
              line: 15
              character: 6
            end_position:
              bytes: 322
              line: 15
              character: 14
            token_type:
              type: Identifier
              identifier: Function
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 322
                    line: 15
                    character: 14
                  end_position:
                    bytes: 323
                    line: 15
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 341
                    line: 15
                    character: 33
                  end_position:
                    bytes: 342
                    line: 15
                    character: 34
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 342
                      line: 15
                      character: 34
                    end_position:
                      bytes: 343
                      line: 15
                      character: 35
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - Punctuated:
                  - parameter:
                      Variadic:
                        name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 323
                              line: 15
                              character: 15
                            end_position:
                              bytes: 327
                              line: 15
                              character: 19
                            token_type:
                              type: Identifier
                              identifier: Args
                          trailing_trivia: []
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 327
                              line: 15
                              character: 19
                            end_position:
                              bytes: 330
                              line: 15
                              character: 22
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia: []
                    default: ~
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 330
                        line: 15
                        character: 22
                      end_position:
                        bytes: 331
                        line: 15
                        character: 23
                      token_type:
                        type: Symbol
                        symbol: ","
                    trailing_trivia:
                      - start_position:
                          bytes: 331
                          line: 15
                          character: 23
                        end_position:
                          bytes: 332
                          line: 15
                          character: 24
                        token_type:
                          type: Whitespace
                          characters: " "
              - End:
                  parameter:
                    Variadic:
                      name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 332
                            line: 15
                            character: 24
                          end_position:
                            bytes: 338
                            line: 15
                            character: 30
                          token_type:
                            type: Identifier
                            identifier: Return
                        trailing_trivia: []
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 338
                            line: 15
                            character: 30
                          end_position:
                            bytes: 341
                            line: 15
                            character: 33
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 343
              line: 15
              character: 35
            end_position:
              bytes: 344
              line: 15
              character: 36
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 344
                line: 15
                character: 36
              end_position:
                bytes: 345
                line: 15
                character: 37
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 345
                      line: 15
                      character: 37
                    end_position:
                      bytes: 346
                      line: 15
                      character: 38
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 353
                      line: 15
                      character: 45
                    end_position:
                      bytes: 354
                      line: 15
                      character: 46
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 354
                        line: 15
                        character: 46
                      end_position:
                        bytes: 355
                        line: 15
                        character: 47
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - End:
                    name: ~
                    type_info:
                      GenericPack:
                        name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 346
                              line: 15
                              character: 38
                            end_position:
                              bytes: 350
                              line: 15
                              character: 42
                            token_type:
                              type: Identifier
                              identifier: Args
                          trailing_trivia: []
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 350
                              line: 15
                              character: 42
                            end_position:
                              bytes: 353
                              line: 15
                              character: 45
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 355
                  line: 15
                  character: 47
                end_position:
                  bytes: 357
                  line: 15
                  character: 49
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 357
                    line: 15
                    character: 49
                  end_position:
                    bytes: 358
                    line: 15
                    character: 50
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              GenericPack:
                name:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 358
                      line: 15
                      character: 50
                    end_position:
                      bytes: 364
                      line: 15
                      character: 56
                    token_type:
                      type: Identifier
                      identifier: Return
                  trailing_trivia: []
                ellipsis:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 364
                      line: 15
                      character: 56
                    end_position:
                      bytes: 367
                      line: 15
                      character: 59
                    token_type:
                      type: Symbol
                      symbol: "..."
                  trailing_trivia:
                    - start_position:
                        bytes: 367
                        line: 15
                        character: 59
                      end_position:
                        bytes: 368
                        line: 15
                        character: 59
                      token_type:
                        type: Whitespace
                        characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia:
            - start_position:
                bytes: 368
                line: 16
                character: 1
              end_position:
                bytes: 369
                line: 16
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 369
              line: 17
              character: 1
            end_position:
              bytes: 373
              line: 17
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 373
                line: 17
                character: 5
              end_position:
                bytes: 374
                line: 17
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 374
              line: 17
              character: 6
            end_position:
              bytes: 385
              line: 17
              character: 17
            token_type:
              type: Identifier
              identifier: AnyFunction
          trailing_trivia:
            - start_position:
                bytes: 385
                line: 17
                character: 17
              end_position:
                bytes: 386
                line: 17
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 386
              line: 17
              character: 18
            end_position:
              bytes: 387
              line: 17
              character: 19
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 387
                line: 17
                character: 19
              end_position:
                bytes: 388
                line: 17
                character: 20
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Generic:
            base:
              leading_trivia: []
              token:
                start_position:
                  bytes: 388
                  line: 17
                  character: 20
                end_position:
                  bytes: 396
                  line: 17
                  character: 28
                token_type:
                  type: Identifier
                  identifier: Function
              trailing_trivia: []
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 396
                      line: 17
                      character: 28
                    end_position:
                      bytes: 397
                      line: 17
                      character: 29
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 411
                      line: 17
                      character: 43
                    end_position:
                      bytes: 412
                      line: 17
                      character: 44
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia:
                    - start_position:
                        bytes: 412
                        line: 17
                        character: 44
                      end_position:
                        bytes: 413
                        line: 17
                        character: 44
                      token_type:
                        type: Whitespace
                        characters: "\n"
            generics:
              pairs:
                - Punctuated:
                    - Variadic:
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 397
                              line: 17
                              character: 29
                            end_position:
                              bytes: 400
                              line: 17
                              character: 32
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia: []
                        type_info:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 400
                                line: 17
                                character: 32
                              end_position:
                                bytes: 403
                                line: 17
                                character: 35
                              token_type:
                                type: Identifier
                                identifier: any
                            trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 403
                          line: 17
                          character: 35
                        end_position:
                          bytes: 404
                          line: 17
                          character: 36
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 404
                            line: 17
                            character: 36
                          end_position:
                            bytes: 405
                            line: 17
                            character: 37
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    Variadic:
                      ellipsis:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 405
                            line: 17
                            character: 37
                          end_position:
                            bytes: 408
                            line: 17
                            character: 40
                          token_type:
                            type: Symbol
                            symbol: "..."
                        trailing_trivia: []
                      type_info:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 408
                              line: 17
                              character: 40
                            end_position:
                              bytes: 411
                              line: 17
                              character: 43
                            token_type:
                              type: Identifier
                              identifier: any
                          trailing_trivia: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia:
            - start_position:
                bytes: 413
                line: 18
                character: 1
              end_position:
                bytes: 414
                line: 18
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 414
              line: 19
              character: 1
            end_position:
              bytes: 419
              line: 19
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 419
                line: 19
                character: 6
              end_position:
                bytes: 420
                line: 19
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 422
                  line: 19
                  character: 9
                end_position:
                  bytes: 423
                  line: 19
                  character: 10
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 423
                    line: 19
                    character: 10
                  end_position:
                    bytes: 424
                    line: 19
                    character: 11
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Optional:
                base:
                  Generic:
                    base:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 424
                          line: 19
                          character: 11
                        end_position:
                          bytes: 432
                          line: 19
                          character: 19
                        token_type:
                          type: Identifier
                          identifier: Function
                      trailing_trivia: []
                    arrows:
                      tokens:
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 432
                              line: 19
                              character: 19
                            end_position:
                              bytes: 433
                              line: 19
                              character: 20
                            token_type:
                              type: Symbol
                              symbol: "<"
                          trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 478
                              line: 19
                              character: 65
                            end_position:
                              bytes: 479
                              line: 19
                              character: 66
                            token_type:
                              type: Symbol
                              symbol: ">"
                          trailing_trivia: []
                    generics:
                      pairs:
                        - Punctuated:
                            - Tuple:
                                parentheses:
                                  tokens:
                                    - leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 433
                                          line: 19
                                          character: 20
                                        end_position:
                                          bytes: 434
                                          line: 19
                                          character: 21
                                        token_type:
                                          type: Symbol
                                          symbol: (
                                      trailing_trivia: []
                                    - leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 459
                                          line: 19
                                          character: 46
                                        end_position:
                                          bytes: 460
                                          line: 19
                                          character: 47
                                        token_type:
                                          type: Symbol
                                          symbol: )
                                      trailing_trivia: []
                                types:
                                  pairs:
                                    - Punctuated:
                                        - Basic:
                                            leading_trivia: []
                                            token:
                                              start_position:
                                                bytes: 434
                                                line: 19
                                                character: 21
                                              end_position:
                                                bytes: 440
                                                line: 19
                                                character: 27
                                              token_type:
                                                type: Identifier
                                                identifier: number
                                            trailing_trivia: []
                                        - leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 440
                                              line: 19
                                              character: 27
                                            end_position:
                                              bytes: 441
                                              line: 19
                                              character: 28
                                            token_type:
                                              type: Symbol
                                              symbol: ","
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 441
                                                line: 19
                                                character: 28
                                              end_position:
                                                bytes: 442
                                                line: 19
                                                character: 29
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                    - Punctuated:
                                        - Basic:
                                            leading_trivia: []
                                            token:
                                              start_position:
                                                bytes: 442
                                                line: 19
                                                character: 29
                                              end_position:
                                                bytes: 448
                                                line: 19
                                                character: 35
                                              token_type:
                                                type: Identifier
                                                identifier: string
                                            trailing_trivia: []
                                        - leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 448
                                              line: 19
                                              character: 35
                                            end_position:
                                              bytes: 449
                                              line: 19
                                              character: 36
                                            token_type:
                                              type: Symbol
                                              symbol: ","
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 449
                                                line: 19
                                                character: 36
                                              end_position:
                                                bytes: 450
                                                line: 19
                                                character: 37
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                    - End:
                                        Variadic:
                                          ellipsis:
                                            leading_trivia: []
                                            token:
                                              start_position:
                                                bytes: 450
                                                line: 19
                                                character: 37
                                              end_position:
                                                bytes: 453
                                                line: 19
                                                character: 40
                                              token_type:
                                                type: Symbol
                                                symbol: "..."
                                            trailing_trivia: []
                                          type_info:
                                            Basic:
                                              leading_trivia: []
                                              token:
                                                start_position:
                                                  bytes: 453
                                                  line: 19
                                                  character: 40
                                                end_position:
                                                  bytes: 459
                                                  line: 19
                                                  character: 46
                                                token_type:
                                                  type: Identifier
                                                  identifier: string
                                              trailing_trivia: []
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 460
                                  line: 19
                                  character: 47
                                end_position:
                                  bytes: 461
                                  line: 19
                                  character: 48
                                token_type:
                                  type: Symbol
                                  symbol: ","
                              trailing_trivia:
                                - start_position:
                                    bytes: 461
                                    line: 19
                                    character: 48
                                  end_position:
                                    bytes: 462
                                    line: 19
                                    character: 49
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                        - End:
                            Tuple:
                              parentheses:
                                tokens:
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 462
                                        line: 19
                                        character: 49
                                      end_position:
                                        bytes: 463
                                        line: 19
                                        character: 50
                                      token_type:
                                        type: Symbol
                                        symbol: (
                                    trailing_trivia: []
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 477
                                        line: 19
                                        character: 64
                                      end_position:
                                        bytes: 478
                                        line: 19
                                        character: 65
                                      token_type:
                                        type: Symbol
                                        symbol: )
                                    trailing_trivia: []
                              types:
                                pairs:
                                  - Punctuated:
                                      - Basic:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 463
                                              line: 19
                                              character: 50
                                            end_position:
                                              bytes: 469
                                              line: 19
                                              character: 56
                                            token_type:
                                              type: Identifier
                                              identifier: string
                                          trailing_trivia: []
                                      - leading_trivia: []
                                        token:
                                          start_position:
                                            bytes: 469
                                            line: 19
                                            character: 56
                                          end_position:
                                            bytes: 470
                                            line: 19
                                            character: 57
                                          token_type:
                                            type: Symbol
                                            symbol: ","
                                        trailing_trivia:
                                          - start_position:
                                              bytes: 470
                                              line: 19
                                              character: 57
                                            end_position:
                                              bytes: 471
                                              line: 19
                                              character: 58
                                            token_type:
                                              type: Whitespace
                                              characters: " "
                                  - End:
                                      Basic:
                                        leading_trivia: []
                                        token:
                                          start_position:
                                            bytes: 471
                                            line: 19
                                            character: 58
                                          end_position:
                                            bytes: 477
                                            line: 19
                                            character: 64
                                          token_type:
                                            type: Identifier
                                            identifier: number
                                        trailing_trivia: []
                question_mark:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 479
                      line: 19
                      character: 66
                    end_position:
                      bytes: 480
                      line: 19
                      character: 67
                    token_type:
                      type: Symbol
                      symbol: "?"
                  trailing_trivia:
                    - start_position:
                        bytes: 480
                        line: 19
                        character: 67
                      end_position:
                        bytes: 481
                        line: 19
                        character: 68
                      token_type:
                        type: Whitespace
                        characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 420
                    line: 19
                    character: 7
                  end_position:
                    bytes: 422
                    line: 19
                    character: 9
                  token_type:
                    type: Identifier
                    identifier: _g
                trailing_trivia: []
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 481
              line: 19
              character: 68
            end_position:
              bytes: 482
              line: 19
              character: 69
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 482
                line: 19
                character: 69
              end_position:
                bytes: 483
                line: 19
                character: 70
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                Symbol:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 483
                      line: 19
                      character: 70
                    end_position:
                      bytes: 486
                      line: 19
                      character: 73
                    token_type:
                      type: Symbol
                      symbol: nil
                  trailing_trivia: []
    - ~
