---
source: full-moon/tests/pass_cases.rs
expression: ast.nodes()
input_file: full-moon/tests/roblox_cases/pass/types
snapshot_kind: text
---
stmts:
  - - LocalAssignment:
        local_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: 15
              line: 2
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 15
                line: 2
                character: 6
              end_position:
                bytes: 16
                line: 2
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 16
                    line: 2
                    character: 7
                  end_position:
                    bytes: 20
                    line: 2
                    character: 11
                  token_type:
                    type: Identifier
                    identifier: _fn3
                trailing_trivia:
                  - start_position:
                      bytes: 20
                      line: 2
                      character: 11
                    end_position:
                      bytes: 21
                      line: 2
                      character: 11
                    token_type:
                      type: Whitespace
                      characters: "\n"
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 21
              line: 3
              character: 1
            end_position:
              bytes: 25
              line: 3
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 25
                line: 3
                character: 5
              end_position:
                bytes: 26
                line: 3
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 26
              line: 3
              character: 6
            end_position:
              bytes: 34
              line: 3
              character: 14
            token_type:
              type: Identifier
              identifier: Identity
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 34
                    line: 3
                    character: 14
                  end_position:
                    bytes: 35
                    line: 3
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 36
                    line: 3
                    character: 16
                  end_position:
                    bytes: 37
                    line: 3
                    character: 17
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 37
                      line: 3
                      character: 17
                    end_position:
                      bytes: 38
                      line: 3
                      character: 18
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 35
                          line: 3
                          character: 15
                        end_position:
                          bytes: 36
                          line: 3
                          character: 16
                        token_type:
                          type: Identifier
                          identifier: T
                      trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 38
              line: 3
              character: 18
            end_position:
              bytes: 39
              line: 3
              character: 19
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 39
                line: 3
                character: 19
              end_position:
                bytes: 40
                line: 3
                character: 20
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Basic:
            leading_trivia: []
            token:
              start_position:
                bytes: 40
                line: 3
                character: 20
              end_position:
                bytes: 41
                line: 3
                character: 21
              token_type:
                type: Identifier
                identifier: T
            trailing_trivia:
              - start_position:
                  bytes: 41
                  line: 3
                  character: 21
                end_position:
                  bytes: 42
                  line: 3
                  character: 21
                token_type:
                  type: Whitespace
                  characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 42
              line: 4
              character: 1
            end_position:
              bytes: 46
              line: 4
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 46
                line: 4
                character: 5
              end_position:
                bytes: 47
                line: 4
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 47
              line: 4
              character: 6
            end_position:
              bytes: 52
              line: 4
              character: 11
            token_type:
              type: Identifier
              identifier: Array
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 52
                    line: 4
                    character: 11
                  end_position:
                    bytes: 53
                    line: 4
                    character: 12
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 54
                    line: 4
                    character: 13
                  end_position:
                    bytes: 55
                    line: 4
                    character: 14
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 55
                      line: 4
                      character: 14
                    end_position:
                      bytes: 56
                      line: 4
                      character: 15
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 53
                          line: 4
                          character: 12
                        end_position:
                          bytes: 54
                          line: 4
                          character: 13
                        token_type:
                          type: Identifier
                          identifier: T
                      trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 56
              line: 4
              character: 15
            end_position:
              bytes: 57
              line: 4
              character: 16
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 57
                line: 4
                character: 16
              end_position:
                bytes: 58
                line: 4
                character: 17
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 58
                      line: 4
                      character: 17
                    end_position:
                      bytes: 59
                      line: 4
                      character: 18
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 59
                        line: 4
                        character: 18
                      end_position:
                        bytes: 60
                        line: 4
                        character: 19
                      token_type:
                        type: Whitespace
                        characters: " "
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 72
                      line: 4
                      character: 31
                    end_position:
                      bytes: 73
                      line: 4
                      character: 32
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 73
                        line: 4
                        character: 32
                      end_position:
                        bytes: 74
                        line: 4
                        character: 32
                      token_type:
                        type: Whitespace
                        characters: "\n"
            fields:
              pairs:
                - End:
                    key:
                      IndexSignature:
                        brackets:
                          tokens:
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 60
                                  line: 4
                                  character: 19
                                end_position:
                                  bytes: 61
                                  line: 4
                                  character: 20
                                token_type:
                                  type: Symbol
                                  symbol: "["
                              trailing_trivia: []
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 67
                                  line: 4
                                  character: 26
                                end_position:
                                  bytes: 68
                                  line: 4
                                  character: 27
                                token_type:
                                  type: Symbol
                                  symbol: "]"
                              trailing_trivia: []
                        inner:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 61
                                line: 4
                                character: 20
                              end_position:
                                bytes: 67
                                line: 4
                                character: 26
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia: []
                    colon:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 68
                          line: 4
                          character: 27
                        end_position:
                          bytes: 69
                          line: 4
                          character: 28
                        token_type:
                          type: Symbol
                          symbol: ":"
                      trailing_trivia:
                        - start_position:
                            bytes: 69
                            line: 4
                            character: 28
                          end_position:
                            bytes: 70
                            line: 4
                            character: 29
                          token_type:
                            type: Whitespace
                            characters: " "
                    value:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 70
                            line: 4
                            character: 29
                          end_position:
                            bytes: 71
                            line: 4
                            character: 30
                          token_type:
                            type: Identifier
                            identifier: T
                        trailing_trivia:
                          - start_position:
                              bytes: 71
                              line: 4
                              character: 30
                            end_position:
                              bytes: 72
                              line: 4
                              character: 31
                            token_type:
                              type: Whitespace
                              characters: " "
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 74
              line: 5
              character: 1
            end_position:
              bytes: 78
              line: 5
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 78
                line: 5
                character: 5
              end_position:
                bytes: 79
                line: 5
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 79
              line: 5
              character: 6
            end_position:
              bytes: 82
              line: 5
              character: 9
            token_type:
              type: Identifier
              identifier: Map
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 82
                    line: 5
                    character: 9
                  end_position:
                    bytes: 83
                    line: 5
                    character: 10
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 87
                    line: 5
                    character: 14
                  end_position:
                    bytes: 88
                    line: 5
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 88
                      line: 5
                      character: 15
                    end_position:
                      bytes: 89
                      line: 5
                      character: 16
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - Punctuated:
                  - parameter:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 83
                            line: 5
                            character: 10
                          end_position:
                            bytes: 84
                            line: 5
                            character: 11
                          token_type:
                            type: Identifier
                            identifier: K
                        trailing_trivia: []
                    default: ~
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 84
                        line: 5
                        character: 11
                      end_position:
                        bytes: 85
                        line: 5
                        character: 12
                      token_type:
                        type: Symbol
                        symbol: ","
                    trailing_trivia:
                      - start_position:
                          bytes: 85
                          line: 5
                          character: 12
                        end_position:
                          bytes: 86
                          line: 5
                          character: 13
                        token_type:
                          type: Whitespace
                          characters: " "
              - End:
                  parameter:
                    Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 86
                          line: 5
                          character: 13
                        end_position:
                          bytes: 87
                          line: 5
                          character: 14
                        token_type:
                          type: Identifier
                          identifier: V
                      trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 89
              line: 5
              character: 16
            end_position:
              bytes: 90
              line: 5
              character: 17
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 90
                line: 5
                character: 17
              end_position:
                bytes: 91
                line: 5
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 91
                      line: 5
                      character: 18
                    end_position:
                      bytes: 92
                      line: 5
                      character: 19
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 92
                        line: 5
                        character: 19
                      end_position:
                        bytes: 93
                        line: 5
                        character: 20
                      token_type:
                        type: Whitespace
                        characters: " "
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 100
                      line: 5
                      character: 27
                    end_position:
                      bytes: 101
                      line: 5
                      character: 28
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 101
                        line: 5
                        character: 28
                      end_position:
                        bytes: 102
                        line: 5
                        character: 28
                      token_type:
                        type: Whitespace
                        characters: "\n"
            fields:
              pairs:
                - End:
                    key:
                      IndexSignature:
                        brackets:
                          tokens:
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 93
                                  line: 5
                                  character: 20
                                end_position:
                                  bytes: 94
                                  line: 5
                                  character: 21
                                token_type:
                                  type: Symbol
                                  symbol: "["
                              trailing_trivia: []
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 95
                                  line: 5
                                  character: 22
                                end_position:
                                  bytes: 96
                                  line: 5
                                  character: 23
                                token_type:
                                  type: Symbol
                                  symbol: "]"
                              trailing_trivia: []
                        inner:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 94
                                line: 5
                                character: 21
                              end_position:
                                bytes: 95
                                line: 5
                                character: 22
                              token_type:
                                type: Identifier
                                identifier: K
                            trailing_trivia: []
                    colon:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 96
                          line: 5
                          character: 23
                        end_position:
                          bytes: 97
                          line: 5
                          character: 24
                        token_type:
                          type: Symbol
                          symbol: ":"
                      trailing_trivia:
                        - start_position:
                            bytes: 97
                            line: 5
                            character: 24
                          end_position:
                            bytes: 98
                            line: 5
                            character: 25
                          token_type:
                            type: Whitespace
                            characters: " "
                    value:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 98
                            line: 5
                            character: 25
                          end_position:
                            bytes: 99
                            line: 5
                            character: 26
                          token_type:
                            type: Identifier
                            identifier: V
                        trailing_trivia:
                          - start_position:
                              bytes: 99
                              line: 5
                              character: 26
                            end_position:
                              bytes: 100
                              line: 5
                              character: 27
                            token_type:
                              type: Whitespace
                              characters: " "
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 102
              line: 6
              character: 1
            end_position:
              bytes: 106
              line: 6
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 106
                line: 6
                character: 5
              end_position:
                bytes: 107
                line: 6
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 107
              line: 6
              character: 6
            end_position:
              bytes: 115
              line: 6
              character: 14
            token_type:
              type: Identifier
              identifier: Function
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 115
                    line: 6
                    character: 14
                  end_position:
                    bytes: 116
                    line: 6
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 117
                    line: 6
                    character: 16
                  end_position:
                    bytes: 118
                    line: 6
                    character: 17
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 118
                      line: 6
                      character: 17
                    end_position:
                      bytes: 119
                      line: 6
                      character: 18
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 116
                          line: 6
                          character: 15
                        end_position:
                          bytes: 117
                          line: 6
                          character: 16
                        token_type:
                          type: Identifier
                          identifier: T
                      trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 119
              line: 6
              character: 18
            end_position:
              bytes: 120
              line: 6
              character: 19
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 120
                line: 6
                character: 19
              end_position:
                bytes: 121
                line: 6
                character: 20
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 121
                      line: 6
                      character: 20
                    end_position:
                      bytes: 122
                      line: 6
                      character: 21
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 128
                      line: 6
                      character: 27
                    end_position:
                      bytes: 129
                      line: 6
                      character: 28
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 129
                        line: 6
                        character: 28
                      end_position:
                        bytes: 130
                        line: 6
                        character: 29
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - End:
                    name: ~
                    type_info:
                      Variadic:
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 122
                              line: 6
                              character: 21
                            end_position:
                              bytes: 125
                              line: 6
                              character: 24
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia: []
                        type_info:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 125
                                line: 6
                                character: 24
                              end_position:
                                bytes: 128
                                line: 6
                                character: 27
                              token_type:
                                type: Identifier
                                identifier: any
                            trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 130
                  line: 6
                  character: 29
                end_position:
                  bytes: 132
                  line: 6
                  character: 31
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 132
                    line: 6
                    character: 31
                  end_position:
                    bytes: 133
                    line: 6
                    character: 32
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              Variadic:
                ellipsis:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 133
                      line: 6
                      character: 32
                    end_position:
                      bytes: 136
                      line: 6
                      character: 35
                    token_type:
                      type: Symbol
                      symbol: "..."
                  trailing_trivia: []
                type_info:
                  Basic:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 136
                        line: 6
                        character: 35
                      end_position:
                        bytes: 137
                        line: 6
                        character: 36
                      token_type:
                        type: Identifier
                        identifier: T
                    trailing_trivia:
                      - start_position:
                          bytes: 137
                          line: 6
                          character: 36
                        end_position:
                          bytes: 138
                          line: 6
                          character: 36
                        token_type:
                          type: Whitespace
                          characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 138
              line: 7
              character: 1
            end_position:
              bytes: 142
              line: 7
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 142
                line: 7
                character: 5
              end_position:
                bytes: 143
                line: 7
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 143
              line: 7
              character: 6
            end_position:
              bytes: 149
              line: 7
              character: 12
            token_type:
              type: Identifier
              identifier: Object
          trailing_trivia:
            - start_position:
                bytes: 149
                line: 7
                character: 12
              end_position:
                bytes: 150
                line: 7
                character: 13
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 150
              line: 7
              character: 13
            end_position:
              bytes: 151
              line: 7
              character: 14
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 151
                line: 7
                character: 14
              end_position:
                bytes: 152
                line: 7
                character: 15
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 152
                      line: 7
                      character: 15
                    end_position:
                      bytes: 153
                      line: 7
                      character: 16
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 153
                        line: 7
                        character: 16
                      end_position:
                        bytes: 154
                        line: 7
                        character: 17
                      token_type:
                        type: Whitespace
                        characters: " "
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 175
                      line: 7
                      character: 38
                    end_position:
                      bytes: 176
                      line: 7
                      character: 39
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 176
                        line: 7
                        character: 39
                      end_position:
                        bytes: 177
                        line: 7
                        character: 39
                      token_type:
                        type: Whitespace
                        characters: "\n"
            fields:
              pairs:
                - Punctuated:
                    - key:
                        Name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 154
                              line: 7
                              character: 17
                            end_position:
                              bytes: 155
                              line: 7
                              character: 18
                            token_type:
                              type: Identifier
                              identifier: x
                          trailing_trivia: []
                      colon:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 155
                            line: 7
                            character: 18
                          end_position:
                            bytes: 156
                            line: 7
                            character: 19
                          token_type:
                            type: Symbol
                            symbol: ":"
                        trailing_trivia:
                          - start_position:
                              bytes: 156
                              line: 7
                              character: 19
                            end_position:
                              bytes: 157
                              line: 7
                              character: 20
                            token_type:
                              type: Whitespace
                              characters: " "
                      value:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 157
                              line: 7
                              character: 20
                            end_position:
                              bytes: 163
                              line: 7
                              character: 26
                            token_type:
                              type: Identifier
                              identifier: number
                          trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 163
                          line: 7
                          character: 26
                        end_position:
                          bytes: 164
                          line: 7
                          character: 27
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 164
                            line: 7
                            character: 27
                          end_position:
                            bytes: 165
                            line: 7
                            character: 28
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    key:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 165
                            line: 7
                            character: 28
                          end_position:
                            bytes: 166
                            line: 7
                            character: 29
                          token_type:
                            type: Identifier
                            identifier: y
                        trailing_trivia: []
                    colon:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 166
                          line: 7
                          character: 29
                        end_position:
                          bytes: 167
                          line: 7
                          character: 30
                        token_type:
                          type: Symbol
                          symbol: ":"
                      trailing_trivia:
                        - start_position:
                            bytes: 167
                            line: 7
                            character: 30
                          end_position:
                            bytes: 168
                            line: 7
                            character: 31
                          token_type:
                            type: Whitespace
                            characters: " "
                    value:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 168
                            line: 7
                            character: 31
                          end_position:
                            bytes: 174
                            line: 7
                            character: 37
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia:
                          - start_position:
                              bytes: 174
                              line: 7
                              character: 37
                            end_position:
                              bytes: 175
                              line: 7
                              character: 38
                            token_type:
                              type: Whitespace
                              characters: " "
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 177
              line: 8
              character: 1
            end_position:
              bytes: 181
              line: 8
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 181
                line: 8
                character: 5
              end_position:
                bytes: 182
                line: 8
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 182
              line: 8
              character: 6
            end_position:
              bytes: 188
              line: 8
              character: 12
            token_type:
              type: Identifier
              identifier: Typeof
          trailing_trivia:
            - start_position:
                bytes: 188
                line: 8
                character: 12
              end_position:
                bytes: 189
                line: 8
                character: 13
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 189
              line: 8
              character: 13
            end_position:
              bytes: 190
              line: 8
              character: 14
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 190
                line: 8
                character: 14
              end_position:
                bytes: 191
                line: 8
                character: 15
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Typeof:
            typeof_token:
              leading_trivia: []
              token:
                start_position:
                  bytes: 191
                  line: 8
                  character: 15
                end_position:
                  bytes: 197
                  line: 8
                  character: 21
                token_type:
                  type: Identifier
                  identifier: typeof
              trailing_trivia: []
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 197
                      line: 8
                      character: 21
                    end_position:
                      bytes: 198
                      line: 8
                      character: 22
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 212
                      line: 8
                      character: 36
                    end_position:
                      bytes: 213
                      line: 8
                      character: 37
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 213
                        line: 8
                        character: 37
                      end_position:
                        bytes: 214
                        line: 8
                        character: 37
                      token_type:
                        type: Whitespace
                        characters: "\n"
            inner:
              BinaryOperator:
                lhs:
                  BinaryOperator:
                    lhs:
                      Number:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 198
                            line: 8
                            character: 22
                          end_position:
                            bytes: 199
                            line: 8
                            character: 23
                          token_type:
                            type: Number
                            text: "2"
                        trailing_trivia:
                          - start_position:
                              bytes: 199
                              line: 8
                              character: 23
                            end_position:
                              bytes: 200
                              line: 8
                              character: 24
                            token_type:
                              type: Whitespace
                              characters: " "
                    binop:
                      Plus:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 200
                            line: 8
                            character: 24
                          end_position:
                            bytes: 201
                            line: 8
                            character: 25
                          token_type:
                            type: Symbol
                            symbol: +
                        trailing_trivia:
                          - start_position:
                              bytes: 201
                              line: 8
                              character: 25
                            end_position:
                              bytes: 202
                              line: 8
                              character: 26
                            token_type:
                              type: Whitespace
                              characters: " "
                    rhs:
                      Number:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 202
                            line: 8
                            character: 26
                          end_position:
                            bytes: 203
                            line: 8
                            character: 27
                          token_type:
                            type: Number
                            text: "2"
                        trailing_trivia:
                          - start_position:
                              bytes: 203
                              line: 8
                              character: 27
                            end_position:
                              bytes: 204
                              line: 8
                              character: 28
                            token_type:
                              type: Whitespace
                              characters: " "
                binop:
                  Plus:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 204
                        line: 8
                        character: 28
                      end_position:
                        bytes: 205
                        line: 8
                        character: 29
                      token_type:
                        type: Symbol
                        symbol: +
                    trailing_trivia:
                      - start_position:
                          bytes: 205
                          line: 8
                          character: 29
                        end_position:
                          bytes: 206
                          line: 8
                          character: 30
                        token_type:
                          type: Whitespace
                          characters: " "
                rhs:
                  FunctionCall:
                    prefix:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 206
                            line: 8
                            character: 30
                          end_position:
                            bytes: 210
                            line: 8
                            character: 34
                          token_type:
                            type: Identifier
                            identifier: _fn3
                        trailing_trivia: []
                    suffixes:
                      - Call:
                          AnonymousCall:
                            Parentheses:
                              parentheses:
                                tokens:
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 210
                                        line: 8
                                        character: 34
                                      end_position:
                                        bytes: 211
                                        line: 8
                                        character: 35
                                      token_type:
                                        type: Symbol
                                        symbol: (
                                    trailing_trivia: []
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 211
                                        line: 8
                                        character: 35
                                      end_position:
                                        bytes: 212
                                        line: 8
                                        character: 36
                                      token_type:
                                        type: Symbol
                                        symbol: )
                                    trailing_trivia: []
                              arguments:
                                pairs: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 214
              line: 9
              character: 1
            end_position:
              bytes: 218
              line: 9
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 218
                line: 9
                character: 5
              end_position:
                bytes: 219
                line: 9
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 219
              line: 9
              character: 6
            end_position:
              bytes: 230
              line: 9
              character: 17
            token_type:
              type: Identifier
              identifier: FetchResult
          trailing_trivia:
            - start_position:
                bytes: 230
                line: 9
                character: 17
              end_position:
                bytes: 231
                line: 9
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 231
              line: 9
              character: 18
            end_position:
              bytes: 232
              line: 9
              character: 19
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 232
                line: 9
                character: 19
              end_position:
                bytes: 233
                line: 9
                character: 20
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Union:
            leading: ~
            types:
              pairs:
                - Punctuated:
                    - String:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 233
                            line: 9
                            character: 20
                          end_position:
                            bytes: 240
                            line: 9
                            character: 27
                          token_type:
                            type: StringLiteral
                            literal: alice
                            quote_type: Double
                        trailing_trivia:
                          - start_position:
                              bytes: 240
                              line: 9
                              character: 27
                            end_position:
                              bytes: 241
                              line: 9
                              character: 28
                            token_type:
                              type: Whitespace
                              characters: " "
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 241
                          line: 9
                          character: 28
                        end_position:
                          bytes: 242
                          line: 9
                          character: 29
                        token_type:
                          type: Symbol
                          symbol: "|"
                      trailing_trivia:
                        - start_position:
                            bytes: 242
                            line: 9
                            character: 29
                          end_position:
                            bytes: 243
                            line: 9
                            character: 30
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    String:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 243
                          line: 9
                          character: 30
                        end_position:
                          bytes: 251
                          line: 9
                          character: 38
                        token_type:
                          type: StringLiteral
                          literal: mallet
                          quote_type: Double
                      trailing_trivia:
                        - start_position:
                            bytes: 251
                            line: 9
                            character: 38
                          end_position:
                            bytes: 252
                            line: 9
                            character: 38
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 252
              line: 10
              character: 1
            end_position:
              bytes: 256
              line: 10
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 256
                line: 10
                character: 5
              end_position:
                bytes: 257
                line: 10
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 257
              line: 10
              character: 6
            end_position:
              bytes: 264
              line: 10
              character: 13
            token_type:
              type: Identifier
              identifier: Element
          trailing_trivia:
            - start_position:
                bytes: 264
                line: 10
                character: 13
              end_position:
                bytes: 265
                line: 10
                character: 14
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 265
              line: 10
              character: 14
            end_position:
              bytes: 266
              line: 10
              character: 15
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 266
                line: 10
                character: 15
              end_position:
                bytes: 267
                line: 10
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 267
                      line: 10
                      character: 16
                    end_position:
                      bytes: 268
                      line: 10
                      character: 17
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 268
                        line: 10
                        character: 17
                      end_position:
                        bytes: 269
                        line: 10
                        character: 18
                      token_type:
                        type: Whitespace
                        characters: " "
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 290
                      line: 10
                      character: 39
                    end_position:
                      bytes: 291
                      line: 10
                      character: 40
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 291
                        line: 10
                        character: 40
                      end_position:
                        bytes: 292
                        line: 10
                        character: 40
                      token_type:
                        type: Whitespace
                        characters: "\n"
            fields:
              pairs:
                - End:
                    key:
                      IndexSignature:
                        brackets:
                          tokens:
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 269
                                  line: 10
                                  character: 18
                                end_position:
                                  bytes: 270
                                  line: 10
                                  character: 19
                                token_type:
                                  type: Symbol
                                  symbol: "["
                              trailing_trivia: []
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 280
                                  line: 10
                                  character: 29
                                end_position:
                                  bytes: 281
                                  line: 10
                                  character: 30
                                token_type:
                                  type: Symbol
                                  symbol: "]"
                              trailing_trivia: []
                        inner:
                          String:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 270
                                line: 10
                                character: 19
                              end_position:
                                bytes: 280
                                line: 10
                                character: 29
                              token_type:
                                type: StringLiteral
                                literal: $$typeof
                                quote_type: Double
                            trailing_trivia: []
                    colon:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 281
                          line: 10
                          character: 30
                        end_position:
                          bytes: 282
                          line: 10
                          character: 31
                        token_type:
                          type: Symbol
                          symbol: ":"
                      trailing_trivia:
                        - start_position:
                            bytes: 282
                            line: 10
                            character: 31
                          end_position:
                            bytes: 283
                            line: 10
                            character: 32
                          token_type:
                            type: Whitespace
                            characters: " "
                    value:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 283
                            line: 10
                            character: 32
                          end_position:
                            bytes: 289
                            line: 10
                            character: 38
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia:
                          - start_position:
                              bytes: 289
                              line: 10
                              character: 38
                            end_position:
                              bytes: 290
                              line: 10
                              character: 39
                            token_type:
                              type: Whitespace
                              characters: " "
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia:
            - start_position:
                bytes: 292
                line: 11
                character: 1
              end_position:
                bytes: 293
                line: 11
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 293
              line: 12
              character: 1
            end_position:
              bytes: 297
              line: 12
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 297
                line: 12
                character: 5
              end_position:
                bytes: 298
                line: 12
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 298
              line: 12
              character: 6
            end_position:
              bytes: 307
              line: 12
              character: 15
            token_type:
              type: Identifier
              identifier: Callback1
          trailing_trivia:
            - start_position:
                bytes: 307
                line: 12
                character: 15
              end_position:
                bytes: 308
                line: 12
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 308
              line: 12
              character: 16
            end_position:
              bytes: 309
              line: 12
              character: 17
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 309
                line: 12
                character: 17
              end_position:
                bytes: 310
                line: 12
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 310
                      line: 12
                      character: 18
                    end_position:
                      bytes: 311
                      line: 12
                      character: 19
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 317
                      line: 12
                      character: 25
                    end_position:
                      bytes: 318
                      line: 12
                      character: 26
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 318
                        line: 12
                        character: 26
                      end_position:
                        bytes: 319
                        line: 12
                        character: 27
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - End:
                    name: ~
                    type_info:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 311
                            line: 12
                            character: 19
                          end_position:
                            bytes: 317
                            line: 12
                            character: 25
                          token_type:
                            type: Identifier
                            identifier: string
                        trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 319
                  line: 12
                  character: 27
                end_position:
                  bytes: 321
                  line: 12
                  character: 29
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 321
                    line: 12
                    character: 29
                  end_position:
                    bytes: 322
                    line: 12
                    character: 30
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 322
                    line: 12
                    character: 30
                  end_position:
                    bytes: 328
                    line: 12
                    character: 36
                  token_type:
                    type: Identifier
                    identifier: number
                trailing_trivia:
                  - start_position:
                      bytes: 328
                      line: 12
                      character: 36
                    end_position:
                      bytes: 329
                      line: 12
                      character: 36
                    token_type:
                      type: Whitespace
                      characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 329
              line: 13
              character: 1
            end_position:
              bytes: 333
              line: 13
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 333
                line: 13
                character: 5
              end_position:
                bytes: 334
                line: 13
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 334
              line: 13
              character: 6
            end_position:
              bytes: 343
              line: 13
              character: 15
            token_type:
              type: Identifier
              identifier: Callback2
          trailing_trivia:
            - start_position:
                bytes: 343
                line: 13
                character: 15
              end_position:
                bytes: 344
                line: 13
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 344
              line: 13
              character: 16
            end_position:
              bytes: 345
              line: 13
              character: 17
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 345
                line: 13
                character: 17
              end_position:
                bytes: 346
                line: 13
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 346
                      line: 13
                      character: 18
                    end_position:
                      bytes: 347
                      line: 13
                      character: 19
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 361
                      line: 13
                      character: 33
                    end_position:
                      bytes: 362
                      line: 13
                      character: 34
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 362
                        line: 13
                        character: 34
                      end_position:
                        bytes: 363
                        line: 13
                        character: 35
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - Punctuated:
                    - name: ~
                      type_info:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 347
                              line: 13
                              character: 19
                            end_position:
                              bytes: 353
                              line: 13
                              character: 25
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 353
                          line: 13
                          character: 25
                        end_position:
                          bytes: 354
                          line: 13
                          character: 26
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 354
                            line: 13
                            character: 26
                          end_position:
                            bytes: 355
                            line: 13
                            character: 27
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    name: ~
                    type_info:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 355
                            line: 13
                            character: 27
                          end_position:
                            bytes: 361
                            line: 13
                            character: 33
                          token_type:
                            type: Identifier
                            identifier: string
                        trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 363
                  line: 13
                  character: 35
                end_position:
                  bytes: 365
                  line: 13
                  character: 37
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 365
                    line: 13
                    character: 37
                  end_position:
                    bytes: 366
                    line: 13
                    character: 38
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 366
                    line: 13
                    character: 38
                  end_position:
                    bytes: 372
                    line: 13
                    character: 44
                  token_type:
                    type: Identifier
                    identifier: number
                trailing_trivia:
                  - start_position:
                      bytes: 372
                      line: 13
                      character: 44
                    end_position:
                      bytes: 373
                      line: 13
                      character: 44
                    token_type:
                      type: Whitespace
                      characters: "\n"
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 373
              line: 14
              character: 1
            end_position:
              bytes: 377
              line: 14
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 377
                line: 14
                character: 5
              end_position:
                bytes: 378
                line: 14
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 378
              line: 14
              character: 6
            end_position:
              bytes: 387
              line: 14
              character: 15
            token_type:
              type: Identifier
              identifier: Callback3
          trailing_trivia:
            - start_position:
                bytes: 387
                line: 14
                character: 15
              end_position:
                bytes: 388
                line: 14
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 388
              line: 14
              character: 16
            end_position:
              bytes: 389
              line: 14
              character: 17
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 389
                line: 14
                character: 17
              end_position:
                bytes: 390
                line: 14
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 390
                      line: 14
                      character: 18
                    end_position:
                      bytes: 391
                      line: 14
                      character: 19
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 405
                      line: 14
                      character: 33
                    end_position:
                      bytes: 406
                      line: 14
                      character: 34
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 406
                        line: 14
                        character: 34
                      end_position:
                        bytes: 407
                        line: 14
                        character: 35
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - Punctuated:
                    - name: ~
                      type_info:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 391
                              line: 14
                              character: 19
                            end_position:
                              bytes: 397
                              line: 14
                              character: 25
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 397
                          line: 14
                          character: 25
                        end_position:
                          bytes: 398
                          line: 14
                          character: 26
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 398
                            line: 14
                            character: 26
                          end_position:
                            bytes: 399
                            line: 14
                            character: 27
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    name: ~
                    type_info:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 399
                            line: 14
                            character: 27
                          end_position:
                            bytes: 405
                            line: 14
                            character: 33
                          token_type:
                            type: Identifier
                            identifier: string
                        trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 407
                  line: 14
                  character: 35
                end_position:
                  bytes: 409
                  line: 14
                  character: 37
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 409
                    line: 14
                    character: 37
                  end_position:
                    bytes: 410
                    line: 14
                    character: 38
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              Tuple:
                parentheses:
                  tokens:
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 410
                          line: 14
                          character: 38
                        end_position:
                          bytes: 411
                          line: 14
                          character: 39
                        token_type:
                          type: Symbol
                          symbol: (
                      trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 422
                          line: 14
                          character: 50
                        end_position:
                          bytes: 423
                          line: 14
                          character: 51
                        token_type:
                          type: Symbol
                          symbol: )
                      trailing_trivia:
                        - start_position:
                            bytes: 423
                            line: 14
                            character: 51
                          end_position:
                            bytes: 424
                            line: 14
                            character: 51
                          token_type:
                            type: Whitespace
                            characters: "\n"
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 411
                                line: 14
                                character: 39
                              end_position:
                                bytes: 417
                                line: 14
                                character: 45
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 417
                              line: 14
                              character: 45
                            end_position:
                              bytes: 418
                              line: 14
                              character: 46
                            token_type:
                              type: Symbol
                              symbol: ","
                          trailing_trivia:
                            - start_position:
                                bytes: 418
                                line: 14
                                character: 46
                              end_position:
                                bytes: 419
                                line: 14
                                character: 47
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 419
                              line: 14
                              character: 47
                            end_position:
                              bytes: 422
                              line: 14
                              character: 50
                            token_type:
                              type: Symbol
                              symbol: nil
                          trailing_trivia: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 424
              line: 15
              character: 1
            end_position:
              bytes: 428
              line: 15
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 428
                line: 15
                character: 5
              end_position:
                bytes: 429
                line: 15
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 429
              line: 15
              character: 6
            end_position:
              bytes: 439
              line: 15
              character: 16
            token_type:
              type: Identifier
              identifier: Callback3a
          trailing_trivia:
            - start_position:
                bytes: 439
                line: 15
                character: 16
              end_position:
                bytes: 440
                line: 15
                character: 17
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 440
              line: 15
              character: 17
            end_position:
              bytes: 441
              line: 15
              character: 18
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 441
                line: 15
                character: 18
              end_position:
                bytes: 442
                line: 15
                character: 19
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 442
                      line: 15
                      character: 19
                    end_position:
                      bytes: 443
                      line: 15
                      character: 20
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 470
                      line: 15
                      character: 47
                    end_position:
                      bytes: 471
                      line: 15
                      character: 48
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 471
                        line: 15
                        character: 48
                      end_position:
                        bytes: 472
                        line: 15
                        character: 49
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - Punctuated:
                    - name: ~
                      type_info:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 443
                              line: 15
                              character: 20
                            end_position:
                              bytes: 449
                              line: 15
                              character: 26
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 449
                          line: 15
                          character: 26
                        end_position:
                          bytes: 450
                          line: 15
                          character: 27
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 450
                            line: 15
                            character: 27
                          end_position:
                            bytes: 451
                            line: 15
                            character: 28
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    name: ~
                    type_info:
                      Union:
                        leading: ~
                        types:
                          pairs:
                            - Punctuated:
                                - String:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 451
                                        line: 15
                                        character: 28
                                      end_position:
                                        bytes: 458
                                        line: 15
                                        character: 35
                                      token_type:
                                        type: StringLiteral
                                        literal: error
                                        quote_type: Double
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 458
                                          line: 15
                                          character: 35
                                        end_position:
                                          bytes: 459
                                          line: 15
                                          character: 36
                                        token_type:
                                          type: Whitespace
                                          characters: " "
                                - leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 459
                                      line: 15
                                      character: 36
                                    end_position:
                                      bytes: 460
                                      line: 15
                                      character: 37
                                    token_type:
                                      type: Symbol
                                      symbol: "|"
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 460
                                        line: 15
                                        character: 37
                                      end_position:
                                        bytes: 461
                                        line: 15
                                        character: 38
                                      token_type:
                                        type: Whitespace
                                        characters: " "
                            - End:
                                String:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 461
                                      line: 15
                                      character: 38
                                    end_position:
                                      bytes: 470
                                      line: 15
                                      character: 47
                                    token_type:
                                      type: StringLiteral
                                      literal: success
                                      quote_type: Double
                                  trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 472
                  line: 15
                  character: 49
                end_position:
                  bytes: 474
                  line: 15
                  character: 51
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 474
                    line: 15
                    character: 51
                  end_position:
                    bytes: 475
                    line: 15
                    character: 52
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              Tuple:
                parentheses:
                  tokens:
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 475
                          line: 15
                          character: 52
                        end_position:
                          bytes: 476
                          line: 15
                          character: 53
                        token_type:
                          type: Symbol
                          symbol: (
                      trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 505
                          line: 15
                          character: 82
                        end_position:
                          bytes: 506
                          line: 15
                          character: 83
                        token_type:
                          type: Symbol
                          symbol: )
                      trailing_trivia:
                        - start_position:
                            bytes: 506
                            line: 15
                            character: 83
                          end_position:
                            bytes: 507
                            line: 15
                            character: 83
                          token_type:
                            type: Whitespace
                            characters: "\n"
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 476
                                line: 15
                                character: 53
                              end_position:
                                bytes: 482
                                line: 15
                                character: 59
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 482
                              line: 15
                              character: 59
                            end_position:
                              bytes: 483
                              line: 15
                              character: 60
                            token_type:
                              type: Symbol
                              symbol: ","
                          trailing_trivia:
                            - start_position:
                                bytes: 483
                                line: 15
                                character: 60
                              end_position:
                                bytes: 484
                                line: 15
                                character: 61
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Union:
                          leading: ~
                          types:
                            pairs:
                              - Punctuated:
                                  - String:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 484
                                          line: 15
                                          character: 61
                                        end_position:
                                          bytes: 492
                                          line: 15
                                          character: 69
                                        token_type:
                                          type: StringLiteral
                                          literal: weasel
                                          quote_type: Double
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 492
                                            line: 15
                                            character: 69
                                          end_position:
                                            bytes: 493
                                            line: 15
                                            character: 70
                                          token_type:
                                            type: Whitespace
                                            characters: " "
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 493
                                        line: 15
                                        character: 70
                                      end_position:
                                        bytes: 494
                                        line: 15
                                        character: 71
                                      token_type:
                                        type: Symbol
                                        symbol: "|"
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 494
                                          line: 15
                                          character: 71
                                        end_position:
                                          bytes: 495
                                          line: 15
                                          character: 72
                                        token_type:
                                          type: Whitespace
                                          characters: " "
                              - End:
                                  String:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 495
                                        line: 15
                                        character: 72
                                      end_position:
                                        bytes: 505
                                        line: 15
                                        character: 82
                                      token_type:
                                        type: StringLiteral
                                        literal: basilisk
                                        quote_type: Double
                                    trailing_trivia: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 507
              line: 16
              character: 1
            end_position:
              bytes: 511
              line: 16
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 511
                line: 16
                character: 5
              end_position:
                bytes: 512
                line: 16
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 512
              line: 16
              character: 6
            end_position:
              bytes: 521
              line: 16
              character: 15
            token_type:
              type: Identifier
              identifier: Callback4
          trailing_trivia:
            - start_position:
                bytes: 521
                line: 16
                character: 15
              end_position:
                bytes: 522
                line: 16
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 522
              line: 16
              character: 16
            end_position:
              bytes: 523
              line: 16
              character: 17
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 523
                line: 16
                character: 17
              end_position:
                bytes: 524
                line: 16
                character: 18
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Callback:
            generics: ~
            parentheses:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 524
                      line: 16
                      character: 18
                    end_position:
                      bytes: 525
                      line: 16
                      character: 19
                    token_type:
                      type: Symbol
                      symbol: (
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 531
                      line: 16
                      character: 25
                    end_position:
                      bytes: 532
                      line: 16
                      character: 26
                    token_type:
                      type: Symbol
                      symbol: )
                  trailing_trivia:
                    - start_position:
                        bytes: 532
                        line: 16
                        character: 26
                      end_position:
                        bytes: 533
                        line: 16
                        character: 27
                      token_type:
                        type: Whitespace
                        characters: " "
            arguments:
              pairs:
                - End:
                    name: ~
                    type_info:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 525
                            line: 16
                            character: 19
                          end_position:
                            bytes: 531
                            line: 16
                            character: 25
                          token_type:
                            type: Identifier
                            identifier: string
                        trailing_trivia: []
            arrow:
              leading_trivia: []
              token:
                start_position:
                  bytes: 533
                  line: 16
                  character: 27
                end_position:
                  bytes: 535
                  line: 16
                  character: 29
                token_type:
                  type: Symbol
                  symbol: "->"
              trailing_trivia:
                - start_position:
                    bytes: 535
                    line: 16
                    character: 29
                  end_position:
                    bytes: 536
                    line: 16
                    character: 30
                  token_type:
                    type: Whitespace
                    characters: " "
            return_type:
              Callback:
                generics: ~
                parentheses:
                  tokens:
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 536
                          line: 16
                          character: 30
                        end_position:
                          bytes: 537
                          line: 16
                          character: 31
                        token_type:
                          type: Symbol
                          symbol: (
                      trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 543
                          line: 16
                          character: 37
                        end_position:
                          bytes: 544
                          line: 16
                          character: 38
                        token_type:
                          type: Symbol
                          symbol: )
                      trailing_trivia:
                        - start_position:
                            bytes: 544
                            line: 16
                            character: 38
                          end_position:
                            bytes: 545
                            line: 16
                            character: 39
                          token_type:
                            type: Whitespace
                            characters: " "
                arguments:
                  pairs:
                    - End:
                        name: ~
                        type_info:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 537
                                line: 16
                                character: 31
                              end_position:
                                bytes: 543
                                line: 16
                                character: 37
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia: []
                arrow:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 545
                      line: 16
                      character: 39
                    end_position:
                      bytes: 547
                      line: 16
                      character: 41
                    token_type:
                      type: Symbol
                      symbol: "->"
                  trailing_trivia:
                    - start_position:
                        bytes: 547
                        line: 16
                        character: 41
                      end_position:
                        bytes: 548
                        line: 16
                        character: 42
                      token_type:
                        type: Whitespace
                        characters: " "
                return_type:
                  Tuple:
                    parentheses:
                      tokens:
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 548
                              line: 16
                              character: 42
                            end_position:
                              bytes: 549
                              line: 16
                              character: 43
                            token_type:
                              type: Symbol
                              symbol: (
                          trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 549
                              line: 16
                              character: 43
                            end_position:
                              bytes: 550
                              line: 16
                              character: 44
                            token_type:
                              type: Symbol
                              symbol: )
                          trailing_trivia:
                            - start_position:
                                bytes: 550
                                line: 16
                                character: 44
                              end_position:
                                bytes: 551
                                line: 16
                                character: 44
                              token_type:
                                type: Whitespace
                                characters: "\n"
                    types:
                      pairs: []
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 551
              line: 17
              character: 1
            end_position:
              bytes: 555
              line: 17
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 555
                line: 17
                character: 5
              end_position:
                bytes: 556
                line: 17
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 556
              line: 17
              character: 6
            end_position:
              bytes: 568
              line: 17
              character: 18
            token_type:
              type: Identifier
              identifier: NetworkError
          trailing_trivia:
            - start_position:
                bytes: 568
                line: 17
                character: 18
              end_position:
                bytes: 569
                line: 17
                character: 19
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 569
              line: 17
              character: 19
            end_position:
              bytes: 570
              line: 17
              character: 20
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 570
                line: 17
                character: 20
              end_position:
                bytes: 571
                line: 17
                character: 21
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Intersection:
            leading: ~
            types:
              pairs:
                - Punctuated:
                    - Table:
                        braces:
                          tokens:
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 571
                                  line: 17
                                  character: 21
                                end_position:
                                  bytes: 572
                                  line: 17
                                  character: 22
                                token_type:
                                  type: Symbol
                                  symbol: "{"
                              trailing_trivia:
                                - start_position:
                                    bytes: 572
                                    line: 17
                                    character: 22
                                  end_position:
                                    bytes: 573
                                    line: 17
                                    character: 23
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 590
                                  line: 17
                                  character: 40
                                end_position:
                                  bytes: 591
                                  line: 17
                                  character: 41
                                token_type:
                                  type: Symbol
                                  symbol: "}"
                              trailing_trivia:
                                - start_position:
                                    bytes: 591
                                    line: 17
                                    character: 41
                                  end_position:
                                    bytes: 592
                                    line: 17
                                    character: 42
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                        fields:
                          pairs:
                            - End:
                                key:
                                  Name:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 573
                                        line: 17
                                        character: 23
                                      end_position:
                                        bytes: 580
                                        line: 17
                                        character: 30
                                      token_type:
                                        type: Identifier
                                        identifier: message
                                    trailing_trivia: []
                                colon:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 580
                                      line: 17
                                      character: 30
                                    end_position:
                                      bytes: 581
                                      line: 17
                                      character: 31
                                    token_type:
                                      type: Symbol
                                      symbol: ":"
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 581
                                        line: 17
                                        character: 31
                                      end_position:
                                        bytes: 582
                                        line: 17
                                        character: 32
                                      token_type:
                                        type: Whitespace
                                        characters: " "
                                value:
                                  Optional:
                                    base:
                                      Basic:
                                        leading_trivia: []
                                        token:
                                          start_position:
                                            bytes: 582
                                            line: 17
                                            character: 32
                                          end_position:
                                            bytes: 588
                                            line: 17
                                            character: 38
                                          token_type:
                                            type: Identifier
                                            identifier: string
                                        trailing_trivia: []
                                    question_mark:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 588
                                          line: 17
                                          character: 38
                                        end_position:
                                          bytes: 589
                                          line: 17
                                          character: 39
                                        token_type:
                                          type: Symbol
                                          symbol: "?"
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 589
                                            line: 17
                                            character: 39
                                          end_position:
                                            bytes: 590
                                            line: 17
                                            character: 40
                                          token_type:
                                            type: Whitespace
                                            characters: " "
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 592
                          line: 17
                          character: 42
                        end_position:
                          bytes: 593
                          line: 17
                          character: 43
                        token_type:
                          type: Symbol
                          symbol: "&"
                      trailing_trivia:
                        - start_position:
                            bytes: 593
                            line: 17
                            character: 43
                          end_position:
                            bytes: 594
                            line: 17
                            character: 44
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    Table:
                      braces:
                        tokens:
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 594
                                line: 17
                                character: 44
                              end_position:
                                bytes: 595
                                line: 17
                                character: 45
                              token_type:
                                type: Symbol
                                symbol: "{"
                            trailing_trivia:
                              - start_position:
                                  bytes: 595
                                  line: 17
                                  character: 45
                                end_position:
                                  bytes: 596
                                  line: 17
                                  character: 46
                                token_type:
                                  type: Whitespace
                                  characters: " "
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 610
                                line: 17
                                character: 60
                              end_position:
                                bytes: 611
                                line: 17
                                character: 61
                              token_type:
                                type: Symbol
                                symbol: "}"
                            trailing_trivia:
                              - start_position:
                                  bytes: 611
                                  line: 17
                                  character: 61
                                end_position:
                                  bytes: 612
                                  line: 17
                                  character: 61
                                token_type:
                                  type: Whitespace
                                  characters: "\n"
                      fields:
                        pairs:
                          - End:
                              key:
                                Name:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 596
                                      line: 17
                                      character: 46
                                    end_position:
                                      bytes: 603
                                      line: 17
                                      character: 53
                                    token_type:
                                      type: Identifier
                                      identifier: handled
                                  trailing_trivia: []
                              colon:
                                leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 603
                                    line: 17
                                    character: 53
                                  end_position:
                                    bytes: 604
                                    line: 17
                                    character: 54
                                  token_type:
                                    type: Symbol
                                    symbol: ":"
                                trailing_trivia:
                                  - start_position:
                                      bytes: 604
                                      line: 17
                                      character: 54
                                    end_position:
                                      bytes: 605
                                      line: 17
                                      character: 55
                                    token_type:
                                      type: Whitespace
                                      characters: " "
                              value:
                                Boolean:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 605
                                      line: 17
                                      character: 55
                                    end_position:
                                      bytes: 609
                                      line: 17
                                      character: 59
                                    token_type:
                                      type: Symbol
                                      symbol: "true"
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 609
                                        line: 17
                                        character: 59
                                      end_position:
                                        bytes: 610
                                        line: 17
                                        character: 60
                                      token_type:
                                        type: Whitespace
                                        characters: " "
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia:
            - start_position:
                bytes: 612
                line: 18
                character: 1
              end_position:
                bytes: 613
                line: 18
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 613
              line: 19
              character: 1
            end_position:
              bytes: 617
              line: 19
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 617
                line: 19
                character: 5
              end_position:
                bytes: 618
                line: 19
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 618
              line: 19
              character: 6
            end_position:
              bytes: 621
              line: 19
              character: 9
            token_type:
              type: Identifier
              identifier: Foo
          trailing_trivia:
            - start_position:
                bytes: 621
                line: 19
                character: 9
              end_position:
                bytes: 622
                line: 19
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        generics: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 622
              line: 19
              character: 10
            end_position:
              bytes: 623
              line: 19
              character: 11
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 623
                line: 19
                character: 11
              end_position:
                bytes: 624
                line: 19
                character: 12
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 624
                      line: 19
                      character: 12
                    end_position:
                      bytes: 625
                      line: 19
                      character: 13
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 625
                        line: 19
                        character: 13
                      end_position:
                        bytes: 626
                        line: 19
                        character: 13
                      token_type:
                        type: Whitespace
                        characters: "\n"
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 654
                      line: 22
                      character: 1
                    end_position:
                      bytes: 655
                      line: 22
                      character: 2
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 655
                        line: 22
                        character: 2
                      end_position:
                        bytes: 656
                        line: 22
                        character: 2
                      token_type:
                        type: Whitespace
                        characters: "\n"
            fields:
              pairs:
                - Punctuated:
                    - key:
                        Name:
                          leading_trivia:
                            - start_position:
                                bytes: 626
                                line: 20
                                character: 1
                              end_position:
                                bytes: 627
                                line: 20
                                character: 2
                              token_type:
                                type: Whitespace
                                characters: "\t"
                          token:
                            start_position:
                              bytes: 627
                              line: 20
                              character: 2
                            end_position:
                              bytes: 630
                              line: 20
                              character: 5
                            token_type:
                              type: Identifier
                              identifier: bar
                          trailing_trivia: []
                      colon:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 630
                            line: 20
                            character: 5
                          end_position:
                            bytes: 631
                            line: 20
                            character: 6
                          token_type:
                            type: Symbol
                            symbol: ":"
                        trailing_trivia:
                          - start_position:
                              bytes: 631
                              line: 20
                              character: 6
                            end_position:
                              bytes: 632
                              line: 20
                              character: 7
                            token_type:
                              type: Whitespace
                              characters: " "
                      value:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 632
                              line: 20
                              character: 7
                            end_position:
                              bytes: 638
                              line: 20
                              character: 13
                            token_type:
                              type: Identifier
                              identifier: number
                          trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 638
                          line: 20
                          character: 13
                        end_position:
                          bytes: 639
                          line: 20
                          character: 14
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 639
                            line: 20
                            character: 14
                          end_position:
                            bytes: 640
                            line: 20
                            character: 14
                          token_type:
                            type: Whitespace
                            characters: "\n"
                - Punctuated:
                    - key:
                        Name:
                          leading_trivia:
                            - start_position:
                                bytes: 640
                                line: 21
                                character: 1
                              end_position:
                                bytes: 641
                                line: 21
                                character: 2
                              token_type:
                                type: Whitespace
                                characters: "\t"
                          token:
                            start_position:
                              bytes: 641
                              line: 21
                              character: 2
                            end_position:
                              bytes: 644
                              line: 21
                              character: 5
                            token_type:
                              type: Identifier
                              identifier: baz
                          trailing_trivia: []
                      colon:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 644
                            line: 21
                            character: 5
                          end_position:
                            bytes: 645
                            line: 21
                            character: 6
                          token_type:
                            type: Symbol
                            symbol: ":"
                        trailing_trivia:
                          - start_position:
                              bytes: 645
                              line: 21
                              character: 6
                            end_position:
                              bytes: 646
                              line: 21
                              character: 7
                            token_type:
                              type: Whitespace
                              characters: " "
                      value:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 646
                              line: 21
                              character: 7
                            end_position:
                              bytes: 652
                              line: 21
                              character: 13
                            token_type:
                              type: Identifier
                              identifier: number
                          trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 652
                          line: 21
                          character: 13
                        end_position:
                          bytes: 653
                          line: 21
                          character: 14
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 653
                            line: 21
                            character: 14
                          end_position:
                            bytes: 654
                            line: 21
                            character: 14
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia:
            - start_position:
                bytes: 656
                line: 23
                character: 1
              end_position:
                bytes: 657
                line: 23
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 657
              line: 24
              character: 1
            end_position:
              bytes: 662
              line: 24
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 662
                line: 24
                character: 6
              end_position:
                bytes: 663
                line: 24
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 667
                  line: 24
                  character: 11
                end_position:
                  bytes: 668
                  line: 24
                  character: 12
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 668
                    line: 24
                    character: 12
                  end_position:
                    bytes: 669
                    line: 24
                    character: 13
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 669
                    line: 24
                    character: 13
                  end_position:
                    bytes: 675
                    line: 24
                    character: 19
                  token_type:
                    type: Identifier
                    identifier: number
                trailing_trivia:
                  - start_position:
                      bytes: 675
                      line: 24
                      character: 19
                    end_position:
                      bytes: 676
                      line: 24
                      character: 20
                    token_type:
                      type: Whitespace
                      characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 663
                    line: 24
                    character: 7
                  end_position:
                    bytes: 667
                    line: 24
                    character: 11
                  token_type:
                    type: Identifier
                    identifier: foo0
                trailing_trivia: []
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 676
              line: 24
              character: 20
            end_position:
              bytes: 677
              line: 24
              character: 21
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 677
                line: 24
                character: 21
              end_position:
                bytes: 678
                line: 24
                character: 22
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                Number:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 678
                      line: 24
                      character: 22
                    end_position:
                      bytes: 679
                      line: 24
                      character: 23
                    token_type:
                      type: Number
                      text: "3"
                  trailing_trivia:
                    - start_position:
                        bytes: 679
                        line: 24
                        character: 23
                      end_position:
                        bytes: 680
                        line: 24
                        character: 23
                      token_type:
                        type: Whitespace
                        characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 680
              line: 25
              character: 1
            end_position:
              bytes: 685
              line: 25
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 685
                line: 25
                character: 6
              end_position:
                bytes: 686
                line: 25
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 691
                  line: 25
                  character: 12
                end_position:
                  bytes: 692
                  line: 25
                  character: 13
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 692
                    line: 25
                    character: 13
                  end_position:
                    bytes: 693
                    line: 25
                    character: 14
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Optional:
                base:
                  Basic:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 693
                        line: 25
                        character: 14
                      end_position:
                        bytes: 699
                        line: 25
                        character: 20
                      token_type:
                        type: Identifier
                        identifier: number
                    trailing_trivia: []
                question_mark:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 699
                      line: 25
                      character: 20
                    end_position:
                      bytes: 700
                      line: 25
                      character: 21
                    token_type:
                      type: Symbol
                      symbol: "?"
                  trailing_trivia:
                    - start_position:
                        bytes: 700
                        line: 25
                        character: 21
                      end_position:
                        bytes: 701
                        line: 25
                        character: 21
                      token_type:
                        type: Whitespace
                        characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 686
                    line: 25
                    character: 7
                  end_position:
                    bytes: 691
                    line: 25
                    character: 12
                  token_type:
                    type: Identifier
                    identifier: _foo1
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 701
              line: 26
              character: 1
            end_position:
              bytes: 706
              line: 26
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 706
                line: 26
                character: 6
              end_position:
                bytes: 707
                line: 26
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 712
                  line: 26
                  character: 12
                end_position:
                  bytes: 713
                  line: 26
                  character: 13
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 713
                    line: 26
                    character: 13
                  end_position:
                    bytes: 714
                    line: 26
                    character: 14
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Generic:
                base:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 714
                      line: 26
                      character: 14
                    end_position:
                      bytes: 719
                      line: 26
                      character: 19
                    token_type:
                      type: Identifier
                      identifier: Array
                  trailing_trivia: []
                arrows:
                  tokens:
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 719
                          line: 26
                          character: 19
                        end_position:
                          bytes: 720
                          line: 26
                          character: 20
                        token_type:
                          type: Symbol
                          symbol: "<"
                      trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 726
                          line: 26
                          character: 26
                        end_position:
                          bytes: 727
                          line: 26
                          character: 27
                        token_type:
                          type: Symbol
                          symbol: ">"
                      trailing_trivia:
                        - start_position:
                            bytes: 727
                            line: 26
                            character: 27
                          end_position:
                            bytes: 728
                            line: 26
                            character: 27
                          token_type:
                            type: Whitespace
                            characters: "\n"
                generics:
                  pairs:
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 720
                              line: 26
                              character: 20
                            end_position:
                              bytes: 726
                              line: 26
                              character: 26
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia: []
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 707
                    line: 26
                    character: 7
                  end_position:
                    bytes: 712
                    line: 26
                    character: 12
                  token_type:
                    type: Identifier
                    identifier: _foo2
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 728
              line: 27
              character: 1
            end_position:
              bytes: 733
              line: 27
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 733
                line: 27
                character: 6
              end_position:
                bytes: 734
                line: 27
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 739
                  line: 27
                  character: 12
                end_position:
                  bytes: 740
                  line: 27
                  character: 13
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 740
                    line: 27
                    character: 13
                  end_position:
                    bytes: 741
                    line: 27
                    character: 14
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Generic:
                base:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 741
                      line: 27
                      character: 14
                    end_position:
                      bytes: 744
                      line: 27
                      character: 17
                    token_type:
                      type: Identifier
                      identifier: Map
                  trailing_trivia: []
                arrows:
                  tokens:
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 744
                          line: 27
                          character: 17
                        end_position:
                          bytes: 745
                          line: 27
                          character: 18
                        token_type:
                          type: Symbol
                          symbol: "<"
                      trailing_trivia: []
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 769
                          line: 27
                          character: 42
                        end_position:
                          bytes: 770
                          line: 27
                          character: 43
                        token_type:
                          type: Symbol
                          symbol: ">"
                      trailing_trivia:
                        - start_position:
                            bytes: 770
                            line: 27
                            character: 43
                          end_position:
                            bytes: 771
                            line: 27
                            character: 43
                          token_type:
                            type: Whitespace
                            characters: "\n"
                generics:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 745
                                line: 27
                                character: 18
                              end_position:
                                bytes: 751
                                line: 27
                                character: 24
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 751
                              line: 27
                              character: 24
                            end_position:
                              bytes: 752
                              line: 27
                              character: 25
                            token_type:
                              type: Symbol
                              symbol: ","
                          trailing_trivia:
                            - start_position:
                                bytes: 752
                                line: 27
                                character: 25
                              end_position:
                                bytes: 753
                                line: 27
                                character: 26
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Union:
                          leading: ~
                          types:
                            pairs:
                              - Punctuated:
                                  - String:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 753
                                          line: 27
                                          character: 26
                                        end_position:
                                          bytes: 760
                                          line: 27
                                          character: 33
                                        token_type:
                                          type: StringLiteral
                                          literal: allow
                                          quote_type: Double
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 760
                                            line: 27
                                            character: 33
                                          end_position:
                                            bytes: 761
                                            line: 27
                                            character: 34
                                          token_type:
                                            type: Whitespace
                                            characters: " "
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 761
                                        line: 27
                                        character: 34
                                      end_position:
                                        bytes: 762
                                        line: 27
                                        character: 35
                                      token_type:
                                        type: Symbol
                                        symbol: "|"
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 762
                                          line: 27
                                          character: 35
                                        end_position:
                                          bytes: 763
                                          line: 27
                                          character: 36
                                        token_type:
                                          type: Whitespace
                                          characters: " "
                              - End:
                                  String:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 763
                                        line: 27
                                        character: 36
                                      end_position:
                                        bytes: 769
                                        line: 27
                                        character: 42
                                      token_type:
                                        type: StringLiteral
                                        literal: deny
                                        quote_type: Double
                                    trailing_trivia: []
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 734
                    line: 27
                    character: 7
                  end_position:
                    bytes: 739
                    line: 27
                    character: 12
                  token_type:
                    type: Identifier
                    identifier: _foo3
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 771
              line: 28
              character: 1
            end_position:
              bytes: 776
              line: 28
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 776
                line: 28
                character: 6
              end_position:
                bytes: 777
                line: 28
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 777
                    line: 28
                    character: 7
                  end_position:
                    bytes: 782
                    line: 28
                    character: 12
                  token_type:
                    type: Identifier
                    identifier: _bar0
                trailing_trivia:
                  - start_position:
                      bytes: 782
                      line: 28
                      character: 12
                    end_position:
                      bytes: 783
                      line: 28
                      character: 13
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 783
              line: 28
              character: 13
            end_position:
              bytes: 784
              line: 28
              character: 14
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 784
                line: 28
                character: 14
              end_position:
                bytes: 785
                line: 28
                character: 15
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                TypeAssertion:
                  expression:
                    Var:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 785
                            line: 28
                            character: 15
                          end_position:
                            bytes: 789
                            line: 28
                            character: 19
                          token_type:
                            type: Identifier
                            identifier: foo0
                        trailing_trivia:
                          - start_position:
                              bytes: 789
                              line: 28
                              character: 19
                            end_position:
                              bytes: 790
                              line: 28
                              character: 20
                            token_type:
                              type: Whitespace
                              characters: " "
                  type_assertion:
                    assertion_op:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 790
                          line: 28
                          character: 20
                        end_position:
                          bytes: 792
                          line: 28
                          character: 22
                        token_type:
                          type: Symbol
                          symbol: "::"
                      trailing_trivia:
                        - start_position:
                            bytes: 792
                            line: 28
                            character: 22
                          end_position:
                            bytes: 793
                            line: 28
                            character: 23
                          token_type:
                            type: Whitespace
                            characters: " "
                    cast_to:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 793
                            line: 28
                            character: 23
                          end_position:
                            bytes: 799
                            line: 28
                            character: 29
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia:
                          - start_position:
                              bytes: 799
                              line: 28
                              character: 29
                            end_position:
                              bytes: 800
                              line: 28
                              character: 29
                            token_type:
                              type: Whitespace
                              characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 800
              line: 29
              character: 1
            end_position:
              bytes: 805
              line: 29
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 805
                line: 29
                character: 6
              end_position:
                bytes: 806
                line: 29
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 811
                  line: 29
                  character: 12
                end_position:
                  bytes: 812
                  line: 29
                  character: 13
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 812
                    line: 29
                    character: 13
                  end_position:
                    bytes: 813
                    line: 29
                    character: 14
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 813
                    line: 29
                    character: 14
                  end_position:
                    bytes: 819
                    line: 29
                    character: 20
                  token_type:
                    type: Identifier
                    identifier: string
                trailing_trivia: []
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 826
                  line: 29
                  character: 27
                end_position:
                  bytes: 827
                  line: 29
                  character: 28
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 827
                    line: 29
                    character: 28
                  end_position:
                    bytes: 828
                    line: 29
                    character: 29
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 828
                    line: 29
                    character: 29
                  end_position:
                    bytes: 834
                    line: 29
                    character: 35
                  token_type:
                    type: Identifier
                    identifier: string
                trailing_trivia:
                  - start_position:
                      bytes: 834
                      line: 29
                      character: 35
                    end_position:
                      bytes: 835
                      line: 29
                      character: 35
                    token_type:
                      type: Whitespace
                      characters: "\n"
        name_list:
          pairs:
            - Punctuated:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 806
                      line: 29
                      character: 7
                    end_position:
                      bytes: 811
                      line: 29
                      character: 12
                    token_type:
                      type: Identifier
                      identifier: _foo4
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 819
                      line: 29
                      character: 20
                    end_position:
                      bytes: 820
                      line: 29
                      character: 21
                    token_type:
                      type: Symbol
                      symbol: ","
                  trailing_trivia:
                    - start_position:
                        bytes: 820
                        line: 29
                        character: 21
                      end_position:
                        bytes: 821
                        line: 29
                        character: 22
                      token_type:
                        type: Whitespace
                        characters: " "
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 821
                    line: 29
                    character: 22
                  end_position:
                    bytes: 826
                    line: 29
                    character: 27
                  token_type:
                    type: Identifier
                    identifier: _bar1
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia:
            - start_position:
                bytes: 835
                line: 30
                character: 1
              end_position:
                bytes: 836
                line: 30
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 836
              line: 31
              character: 1
            end_position:
              bytes: 841
              line: 31
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 841
                line: 31
                character: 6
              end_position:
                bytes: 842
                line: 31
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 848
                  line: 31
                  character: 13
                end_position:
                  bytes: 849
                  line: 31
                  character: 14
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 849
                    line: 31
                    character: 14
                  end_position:
                    bytes: 850
                    line: 31
                    character: 15
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Union:
                leading: ~
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 850
                                line: 31
                                character: 15
                              end_position:
                                bytes: 856
                                line: 31
                                character: 21
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 856
                                  line: 31
                                  character: 21
                                end_position:
                                  bytes: 857
                                  line: 31
                                  character: 22
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 857
                              line: 31
                              character: 22
                            end_position:
                              bytes: 858
                              line: 31
                              character: 23
                            token_type:
                              type: Symbol
                              symbol: "|"
                          trailing_trivia:
                            - start_position:
                                bytes: 858
                                line: 31
                                character: 23
                              end_position:
                                bytes: 859
                                line: 31
                                character: 24
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 859
                              line: 31
                              character: 24
                            end_position:
                              bytes: 865
                              line: 31
                              character: 30
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia:
                            - start_position:
                                bytes: 865
                                line: 31
                                character: 30
                              end_position:
                                bytes: 866
                                line: 31
                                character: 30
                              token_type:
                                type: Whitespace
                                characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 842
                    line: 31
                    character: 7
                  end_position:
                    bytes: 848
                    line: 31
                    character: 13
                  token_type:
                    type: Identifier
                    identifier: _union
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 866
              line: 32
              character: 1
            end_position:
              bytes: 871
              line: 32
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 871
                line: 32
                character: 6
              end_position:
                bytes: 872
                line: 32
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 883
                  line: 32
                  character: 18
                end_position:
                  bytes: 884
                  line: 32
                  character: 19
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 884
                    line: 32
                    character: 19
                  end_position:
                    bytes: 885
                    line: 32
                    character: 20
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Union:
                leading: ~
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 885
                                line: 32
                                character: 20
                              end_position:
                                bytes: 891
                                line: 32
                                character: 26
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 891
                                  line: 32
                                  character: 26
                                end_position:
                                  bytes: 892
                                  line: 32
                                  character: 27
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 892
                              line: 32
                              character: 27
                            end_position:
                              bytes: 893
                              line: 32
                              character: 28
                            token_type:
                              type: Symbol
                              symbol: "|"
                          trailing_trivia:
                            - start_position:
                                bytes: 893
                                line: 32
                                character: 28
                              end_position:
                                bytes: 894
                                line: 32
                                character: 29
                              token_type:
                                type: Whitespace
                                characters: " "
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 894
                                line: 32
                                character: 29
                              end_position:
                                bytes: 900
                                line: 32
                                character: 35
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia:
                              - start_position:
                                  bytes: 900
                                  line: 32
                                  character: 35
                                end_position:
                                  bytes: 901
                                  line: 32
                                  character: 36
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 901
                              line: 32
                              character: 36
                            end_position:
                              bytes: 902
                              line: 32
                              character: 37
                            token_type:
                              type: Symbol
                              symbol: "|"
                          trailing_trivia:
                            - start_position:
                                bytes: 902
                                line: 32
                                character: 37
                              end_position:
                                bytes: 903
                                line: 32
                                character: 38
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 903
                              line: 32
                              character: 38
                            end_position:
                              bytes: 906
                              line: 32
                              character: 41
                            token_type:
                              type: Symbol
                              symbol: nil
                          trailing_trivia:
                            - start_position:
                                bytes: 906
                                line: 32
                                character: 41
                              end_position:
                                bytes: 907
                                line: 32
                                character: 41
                              token_type:
                                type: Whitespace
                                characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 872
                    line: 32
                    character: 7
                  end_position:
                    bytes: 883
                    line: 32
                    character: 18
                  token_type:
                    type: Identifier
                    identifier: _multiUnion
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 907
              line: 33
              character: 1
            end_position:
              bytes: 912
              line: 33
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 912
                line: 33
                character: 6
              end_position:
                bytes: 913
                line: 33
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 926
                  line: 33
                  character: 20
                end_position:
                  bytes: 927
                  line: 33
                  character: 21
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 927
                    line: 33
                    character: 21
                  end_position:
                    bytes: 928
                    line: 33
                    character: 22
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Union:
                leading:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 928
                      line: 33
                      character: 22
                    end_position:
                      bytes: 929
                      line: 33
                      character: 23
                    token_type:
                      type: Symbol
                      symbol: "|"
                  trailing_trivia:
                    - start_position:
                        bytes: 929
                        line: 33
                        character: 23
                      end_position:
                        bytes: 930
                        line: 33
                        character: 24
                      token_type:
                        type: Whitespace
                        characters: " "
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 930
                                line: 33
                                character: 24
                              end_position:
                                bytes: 936
                                line: 33
                                character: 30
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 936
                                  line: 33
                                  character: 30
                                end_position:
                                  bytes: 937
                                  line: 33
                                  character: 31
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 937
                              line: 33
                              character: 31
                            end_position:
                              bytes: 938
                              line: 33
                              character: 32
                            token_type:
                              type: Symbol
                              symbol: "|"
                          trailing_trivia:
                            - start_position:
                                bytes: 938
                                line: 33
                                character: 32
                              end_position:
                                bytes: 939
                                line: 33
                                character: 33
                              token_type:
                                type: Whitespace
                                characters: " "
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 939
                                line: 33
                                character: 33
                              end_position:
                                bytes: 945
                                line: 33
                                character: 39
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia:
                              - start_position:
                                  bytes: 945
                                  line: 33
                                  character: 39
                                end_position:
                                  bytes: 946
                                  line: 33
                                  character: 40
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 946
                              line: 33
                              character: 40
                            end_position:
                              bytes: 947
                              line: 33
                              character: 41
                            token_type:
                              type: Symbol
                              symbol: "|"
                          trailing_trivia:
                            - start_position:
                                bytes: 947
                                line: 33
                                character: 41
                              end_position:
                                bytes: 948
                                line: 33
                                character: 42
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 948
                              line: 33
                              character: 42
                            end_position:
                              bytes: 951
                              line: 33
                              character: 45
                            token_type:
                              type: Symbol
                              symbol: nil
                          trailing_trivia:
                            - start_position:
                                bytes: 951
                                line: 33
                                character: 45
                              end_position:
                                bytes: 952
                                line: 33
                                character: 45
                              token_type:
                                type: Whitespace
                                characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 913
                    line: 33
                    character: 7
                  end_position:
                    bytes: 926
                    line: 33
                    character: 20
                  token_type:
                    type: Identifier
                    identifier: _leadingUnion
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia:
            - start_position:
                bytes: 952
                line: 34
                character: 1
              end_position:
                bytes: 953
                line: 34
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 953
              line: 35
              character: 1
            end_position:
              bytes: 958
              line: 35
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 958
                line: 35
                character: 6
              end_position:
                bytes: 959
                line: 35
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 972
                  line: 35
                  character: 20
                end_position:
                  bytes: 973
                  line: 35
                  character: 21
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 973
                    line: 35
                    character: 21
                  end_position:
                    bytes: 974
                    line: 35
                    character: 22
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Intersection:
                leading: ~
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 974
                                line: 35
                                character: 22
                              end_position:
                                bytes: 980
                                line: 35
                                character: 28
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 980
                                  line: 35
                                  character: 28
                                end_position:
                                  bytes: 981
                                  line: 35
                                  character: 29
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 981
                              line: 35
                              character: 29
                            end_position:
                              bytes: 982
                              line: 35
                              character: 30
                            token_type:
                              type: Symbol
                              symbol: "&"
                          trailing_trivia:
                            - start_position:
                                bytes: 982
                                line: 35
                                character: 30
                              end_position:
                                bytes: 983
                                line: 35
                                character: 31
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 983
                              line: 35
                              character: 31
                            end_position:
                              bytes: 989
                              line: 35
                              character: 37
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia:
                            - start_position:
                                bytes: 989
                                line: 35
                                character: 37
                              end_position:
                                bytes: 990
                                line: 35
                                character: 37
                              token_type:
                                type: Whitespace
                                characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 959
                    line: 35
                    character: 7
                  end_position:
                    bytes: 972
                    line: 35
                    character: 20
                  token_type:
                    type: Identifier
                    identifier: _intersection
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 990
              line: 36
              character: 1
            end_position:
              bytes: 995
              line: 36
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 995
                line: 36
                character: 6
              end_position:
                bytes: 996
                line: 36
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 1014
                  line: 36
                  character: 25
                end_position:
                  bytes: 1015
                  line: 36
                  character: 26
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 1015
                    line: 36
                    character: 26
                  end_position:
                    bytes: 1016
                    line: 36
                    character: 27
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Intersection:
                leading: ~
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1016
                                line: 36
                                character: 27
                              end_position:
                                bytes: 1022
                                line: 36
                                character: 33
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 1022
                                  line: 36
                                  character: 33
                                end_position:
                                  bytes: 1023
                                  line: 36
                                  character: 34
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1023
                              line: 36
                              character: 34
                            end_position:
                              bytes: 1024
                              line: 36
                              character: 35
                            token_type:
                              type: Symbol
                              symbol: "&"
                          trailing_trivia:
                            - start_position:
                                bytes: 1024
                                line: 36
                                character: 35
                              end_position:
                                bytes: 1025
                                line: 36
                                character: 36
                              token_type:
                                type: Whitespace
                                characters: " "
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1025
                                line: 36
                                character: 36
                              end_position:
                                bytes: 1031
                                line: 36
                                character: 42
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia:
                              - start_position:
                                  bytes: 1031
                                  line: 36
                                  character: 42
                                end_position:
                                  bytes: 1032
                                  line: 36
                                  character: 43
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1032
                              line: 36
                              character: 43
                            end_position:
                              bytes: 1033
                              line: 36
                              character: 44
                            token_type:
                              type: Symbol
                              symbol: "&"
                          trailing_trivia:
                            - start_position:
                                bytes: 1033
                                line: 36
                                character: 44
                              end_position:
                                bytes: 1034
                                line: 36
                                character: 45
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 1034
                              line: 36
                              character: 45
                            end_position:
                              bytes: 1037
                              line: 36
                              character: 48
                            token_type:
                              type: Symbol
                              symbol: nil
                          trailing_trivia:
                            - start_position:
                                bytes: 1037
                                line: 36
                                character: 48
                              end_position:
                                bytes: 1038
                                line: 36
                                character: 48
                              token_type:
                                type: Whitespace
                                characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 996
                    line: 36
                    character: 7
                  end_position:
                    bytes: 1014
                    line: 36
                    character: 25
                  token_type:
                    type: Identifier
                    identifier: _multiIntersection
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 1038
              line: 37
              character: 1
            end_position:
              bytes: 1043
              line: 37
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 1043
                line: 37
                character: 6
              end_position:
                bytes: 1044
                line: 37
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        type_specifiers:
          - punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 1064
                  line: 37
                  character: 27
                end_position:
                  bytes: 1065
                  line: 37
                  character: 28
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 1065
                    line: 37
                    character: 28
                  end_position:
                    bytes: 1066
                    line: 37
                    character: 29
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Intersection:
                leading:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 1066
                      line: 37
                      character: 29
                    end_position:
                      bytes: 1067
                      line: 37
                      character: 30
                    token_type:
                      type: Symbol
                      symbol: "&"
                  trailing_trivia:
                    - start_position:
                        bytes: 1067
                        line: 37
                        character: 30
                      end_position:
                        bytes: 1068
                        line: 37
                        character: 31
                      token_type:
                        type: Whitespace
                        characters: " "
                types:
                  pairs:
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1068
                                line: 37
                                character: 31
                              end_position:
                                bytes: 1074
                                line: 37
                                character: 37
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 1074
                                  line: 37
                                  character: 37
                                end_position:
                                  bytes: 1075
                                  line: 37
                                  character: 38
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1075
                              line: 37
                              character: 38
                            end_position:
                              bytes: 1076
                              line: 37
                              character: 39
                            token_type:
                              type: Symbol
                              symbol: "&"
                          trailing_trivia:
                            - start_position:
                                bytes: 1076
                                line: 37
                                character: 39
                              end_position:
                                bytes: 1077
                                line: 37
                                character: 40
                              token_type:
                                type: Whitespace
                                characters: " "
                    - Punctuated:
                        - Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1077
                                line: 37
                                character: 40
                              end_position:
                                bytes: 1083
                                line: 37
                                character: 46
                              token_type:
                                type: Identifier
                                identifier: string
                            trailing_trivia:
                              - start_position:
                                  bytes: 1083
                                  line: 37
                                  character: 46
                                end_position:
                                  bytes: 1084
                                  line: 37
                                  character: 47
                                token_type:
                                  type: Whitespace
                                  characters: " "
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1084
                              line: 37
                              character: 47
                            end_position:
                              bytes: 1085
                              line: 37
                              character: 48
                            token_type:
                              type: Symbol
                              symbol: "&"
                          trailing_trivia:
                            - start_position:
                                bytes: 1085
                                line: 37
                                character: 48
                              end_position:
                                bytes: 1086
                                line: 37
                                character: 49
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 1086
                              line: 37
                              character: 49
                            end_position:
                              bytes: 1089
                              line: 37
                              character: 52
                            token_type:
                              type: Symbol
                              symbol: nil
                          trailing_trivia:
                            - start_position:
                                bytes: 1089
                                line: 37
                                character: 52
                              end_position:
                                bytes: 1090
                                line: 37
                                character: 52
                              token_type:
                                type: Whitespace
                                characters: "\n"
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1044
                    line: 37
                    character: 7
                  end_position:
                    bytes: 1064
                    line: 37
                    character: 27
                  token_type:
                    type: Identifier
                    identifier: _leadingIntersection
                trailing_trivia: []
        equal_token: ~
        expr_list:
          pairs: []
    - ~
  - - FunctionDeclaration:
        attributes: []
        function_token:
          leading_trivia:
            - start_position:
                bytes: 1090
                line: 38
                character: 1
              end_position:
                bytes: 1091
                line: 38
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 1091
              line: 39
              character: 1
            end_position:
              bytes: 1099
              line: 39
              character: 9
            token_type:
              type: Symbol
              symbol: function
          trailing_trivia:
            - start_position:
                bytes: 1099
                line: 39
                character: 9
              end_position:
                bytes: 1100
                line: 39
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        name:
          names:
            pairs:
              - End:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 1100
                      line: 39
                      character: 10
                    end_position:
                      bytes: 1104
                      line: 39
                      character: 14
                    token_type:
                      type: Identifier
                      identifier: _fn0
                  trailing_trivia: []
          colon_name: ~
        body:
          generics: ~
          parameters_parentheses:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 1104
                    line: 39
                    character: 14
                  end_position:
                    bytes: 1105
                    line: 39
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: (
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 1118
                    line: 39
                    character: 28
                  end_position:
                    bytes: 1119
                    line: 39
                    character: 29
                  token_type:
                    type: Symbol
                    symbol: )
                trailing_trivia: []
          parameters:
            pairs:
              - End:
                  Name:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 1105
                        line: 39
                        character: 15
                      end_position:
                        bytes: 1110
                        line: 39
                        character: 20
                      token_type:
                        type: Identifier
                        identifier: param
                    trailing_trivia: []
          type_specifiers:
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1110
                    line: 39
                    character: 20
                  end_position:
                    bytes: 1111
                    line: 39
                    character: 21
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 1111
                      line: 39
                      character: 21
                    end_position:
                      bytes: 1112
                      line: 39
                      character: 22
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                Basic:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 1112
                      line: 39
                      character: 22
                    end_position:
                      bytes: 1118
                      line: 39
                      character: 28
                    token_type:
                      type: Identifier
                      identifier: string
                  trailing_trivia: []
          return_type:
            punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 1119
                  line: 39
                  character: 29
                end_position:
                  bytes: 1120
                  line: 39
                  character: 30
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 1120
                    line: 39
                    character: 30
                  end_position:
                    bytes: 1121
                    line: 39
                    character: 31
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1121
                    line: 39
                    character: 31
                  end_position:
                    bytes: 1127
                    line: 39
                    character: 37
                  token_type:
                    type: Identifier
                    identifier: string
                trailing_trivia:
                  - start_position:
                      bytes: 1127
                      line: 39
                      character: 37
                    end_position:
                      bytes: 1128
                      line: 39
                      character: 37
                    token_type:
                      type: Whitespace
                      characters: "\n"
          block:
            stmts: []
            last_stmt:
              - Return:
                  token:
                    leading_trivia:
                      - start_position:
                          bytes: 1128
                          line: 40
                          character: 1
                        end_position:
                          bytes: 1129
                          line: 40
                          character: 2
                        token_type:
                          type: Whitespace
                          characters: "\t"
                    token:
                      start_position:
                        bytes: 1129
                        line: 40
                        character: 2
                      end_position:
                        bytes: 1135
                        line: 40
                        character: 8
                      token_type:
                        type: Symbol
                        symbol: return
                    trailing_trivia:
                      - start_position:
                          bytes: 1135
                          line: 40
                          character: 8
                        end_position:
                          bytes: 1136
                          line: 40
                          character: 9
                        token_type:
                          type: Whitespace
                          characters: " "
                  returns:
                    pairs:
                      - End:
                          Var:
                            Name:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 1136
                                  line: 40
                                  character: 9
                                end_position:
                                  bytes: 1141
                                  line: 40
                                  character: 14
                                token_type:
                                  type: Identifier
                                  identifier: param
                              trailing_trivia:
                                - start_position:
                                    bytes: 1141
                                    line: 40
                                    character: 14
                                  end_position:
                                    bytes: 1142
                                    line: 40
                                    character: 14
                                  token_type:
                                    type: Whitespace
                                    characters: "\n"
              - ~
          end_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 1142
                line: 41
                character: 1
              end_position:
                bytes: 1145
                line: 41
                character: 4
              token_type:
                type: Symbol
                symbol: end
            trailing_trivia:
              - start_position:
                  bytes: 1145
                  line: 41
                  character: 4
                end_position:
                  bytes: 1146
                  line: 41
                  character: 4
                token_type:
                  type: Whitespace
                  characters: "\n"
    - ~
  - - FunctionDeclaration:
        attributes: []
        function_token:
          leading_trivia:
            - start_position:
                bytes: 1146
                line: 42
                character: 1
              end_position:
                bytes: 1147
                line: 42
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 1147
              line: 43
              character: 1
            end_position:
              bytes: 1155
              line: 43
              character: 9
            token_type:
              type: Symbol
              symbol: function
          trailing_trivia:
            - start_position:
                bytes: 1155
                line: 43
                character: 9
              end_position:
                bytes: 1156
                line: 43
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        name:
          names:
            pairs:
              - End:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 1156
                      line: 43
                      character: 10
                    end_position:
                      bytes: 1160
                      line: 43
                      character: 14
                    token_type:
                      type: Identifier
                      identifier: _fn2
                  trailing_trivia: []
          colon_name: ~
        body:
          generics: ~
          parameters_parentheses:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 1160
                    line: 43
                    character: 14
                  end_position:
                    bytes: 1161
                    line: 43
                    character: 15
                  token_type:
                    type: Symbol
                    symbol: (
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 1186
                    line: 43
                    character: 40
                  end_position:
                    bytes: 1187
                    line: 43
                    character: 41
                  token_type:
                    type: Symbol
                    symbol: )
                trailing_trivia:
                  - start_position:
                      bytes: 1187
                      line: 43
                      character: 41
                    end_position:
                      bytes: 1188
                      line: 43
                      character: 42
                    token_type:
                      type: Whitespace
                      characters: " "
          parameters:
            pairs:
              - Punctuated:
                  - Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 1161
                          line: 43
                          character: 15
                        end_position:
                          bytes: 1162
                          line: 43
                          character: 16
                        token_type:
                          type: Identifier
                          identifier: a
                      trailing_trivia: []
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 1170
                        line: 43
                        character: 24
                      end_position:
                        bytes: 1171
                        line: 43
                        character: 25
                      token_type:
                        type: Symbol
                        symbol: ","
                    trailing_trivia:
                      - start_position:
                          bytes: 1171
                          line: 43
                          character: 25
                        end_position:
                          bytes: 1172
                          line: 43
                          character: 26
                        token_type:
                          type: Whitespace
                          characters: " "
              - Punctuated:
                  - Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 1172
                          line: 43
                          character: 26
                        end_position:
                          bytes: 1173
                          line: 43
                          character: 27
                        token_type:
                          type: Identifier
                          identifier: b
                      trailing_trivia: []
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 1181
                        line: 43
                        character: 35
                      end_position:
                        bytes: 1182
                        line: 43
                        character: 36
                      token_type:
                        type: Symbol
                        symbol: ","
                    trailing_trivia:
                      - start_position:
                          bytes: 1182
                          line: 43
                          character: 36
                        end_position:
                          bytes: 1183
                          line: 43
                          character: 37
                        token_type:
                          type: Whitespace
                          characters: " "
              - End:
                  Ellipsis:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 1183
                        line: 43
                        character: 37
                      end_position:
                        bytes: 1186
                        line: 43
                        character: 40
                      token_type:
                        type: Symbol
                        symbol: "..."
                    trailing_trivia: []
          type_specifiers:
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1162
                    line: 43
                    character: 16
                  end_position:
                    bytes: 1163
                    line: 43
                    character: 17
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 1163
                      line: 43
                      character: 17
                    end_position:
                      bytes: 1164
                      line: 43
                      character: 18
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                Basic:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 1164
                      line: 43
                      character: 18
                    end_position:
                      bytes: 1170
                      line: 43
                      character: 24
                    token_type:
                      type: Identifier
                      identifier: string
                  trailing_trivia: []
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1173
                    line: 43
                    character: 27
                  end_position:
                    bytes: 1174
                    line: 43
                    character: 28
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 1174
                      line: 43
                      character: 28
                    end_position:
                      bytes: 1175
                      line: 43
                      character: 29
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                Basic:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 1175
                      line: 43
                      character: 29
                    end_position:
                      bytes: 1181
                      line: 43
                      character: 35
                    token_type:
                      type: Identifier
                      identifier: string
                  trailing_trivia: []
            - ~
          block:
            stmts: []
          end_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 1188
                line: 43
                character: 42
              end_position:
                bytes: 1191
                line: 43
                character: 45
              token_type:
                type: Symbol
                symbol: end
            trailing_trivia:
              - start_position:
                  bytes: 1191
                  line: 43
                  character: 45
                end_position:
                  bytes: 1192
                  line: 43
                  character: 45
                token_type:
                  type: Whitespace
                  characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia:
            - start_position:
                bytes: 1192
                line: 44
                character: 1
              end_position:
                bytes: 1193
                line: 44
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 1193
              line: 45
              character: 1
            end_position:
              bytes: 1198
              line: 45
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 1198
                line: 45
                character: 6
              end_position:
                bytes: 1199
                line: 45
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1199
                    line: 45
                    character: 7
                  end_position:
                    bytes: 1203
                    line: 45
                    character: 11
                  token_type:
                    type: Identifier
                    identifier: _fn3
                trailing_trivia:
                  - start_position:
                      bytes: 1203
                      line: 45
                      character: 11
                    end_position:
                      bytes: 1204
                      line: 45
                      character: 12
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 1204
              line: 45
              character: 12
            end_position:
              bytes: 1205
              line: 45
              character: 13
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 1205
                line: 45
                character: 13
              end_position:
                bytes: 1206
                line: 45
                character: 14
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                Function:
                  attributes: []
                  function_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 1206
                        line: 45
                        character: 14
                      end_position:
                        bytes: 1214
                        line: 45
                        character: 22
                      token_type:
                        type: Symbol
                        symbol: function
                    trailing_trivia: []
                  body:
                    generics: ~
                    parameters_parentheses:
                      tokens:
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1214
                              line: 45
                              character: 22
                            end_position:
                              bytes: 1215
                              line: 45
                              character: 23
                            token_type:
                              type: Symbol
                              symbol: (
                          trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1215
                              line: 45
                              character: 23
                            end_position:
                              bytes: 1216
                              line: 45
                              character: 24
                            token_type:
                              type: Symbol
                              symbol: )
                          trailing_trivia: []
                    parameters:
                      pairs: []
                    type_specifiers: []
                    return_type:
                      punctuation:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 1216
                            line: 45
                            character: 24
                          end_position:
                            bytes: 1217
                            line: 45
                            character: 25
                          token_type:
                            type: Symbol
                            symbol: ":"
                        trailing_trivia:
                          - start_position:
                              bytes: 1217
                              line: 45
                              character: 25
                            end_position:
                              bytes: 1218
                              line: 45
                              character: 26
                            token_type:
                              type: Whitespace
                              characters: " "
                      type_info:
                        Union:
                          leading: ~
                          types:
                            pairs:
                              - Punctuated:
                                  - Basic:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 1218
                                          line: 45
                                          character: 26
                                        end_position:
                                          bytes: 1224
                                          line: 45
                                          character: 32
                                        token_type:
                                          type: Identifier
                                          identifier: number
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 1224
                                            line: 45
                                            character: 32
                                          end_position:
                                            bytes: 1225
                                            line: 45
                                            character: 33
                                          token_type:
                                            type: Whitespace
                                            characters: " "
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 1225
                                        line: 45
                                        character: 33
                                      end_position:
                                        bytes: 1226
                                        line: 45
                                        character: 34
                                      token_type:
                                        type: Symbol
                                        symbol: "|"
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 1226
                                          line: 45
                                          character: 34
                                        end_position:
                                          bytes: 1227
                                          line: 45
                                          character: 35
                                        token_type:
                                          type: Whitespace
                                          characters: " "
                              - End:
                                  Basic:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 1227
                                        line: 45
                                        character: 35
                                      end_position:
                                        bytes: 1230
                                        line: 45
                                        character: 38
                                      token_type:
                                        type: Symbol
                                        symbol: nil
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 1230
                                          line: 45
                                          character: 38
                                        end_position:
                                          bytes: 1231
                                          line: 45
                                          character: 38
                                        token_type:
                                          type: Whitespace
                                          characters: "\n"
                    block:
                      stmts: []
                      last_stmt:
                        - Return:
                            token:
                              leading_trivia:
                                - start_position:
                                    bytes: 1231
                                    line: 46
                                    character: 1
                                  end_position:
                                    bytes: 1232
                                    line: 46
                                    character: 2
                                  token_type:
                                    type: Whitespace
                                    characters: "\t"
                              token:
                                start_position:
                                  bytes: 1232
                                  line: 46
                                  character: 2
                                end_position:
                                  bytes: 1238
                                  line: 46
                                  character: 8
                                token_type:
                                  type: Symbol
                                  symbol: return
                              trailing_trivia:
                                - start_position:
                                    bytes: 1238
                                    line: 46
                                    character: 8
                                  end_position:
                                    bytes: 1239
                                    line: 46
                                    character: 9
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                            returns:
                              pairs:
                                - End:
                                    Number:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 1239
                                          line: 46
                                          character: 9
                                        end_position:
                                          bytes: 1240
                                          line: 46
                                          character: 10
                                        token_type:
                                          type: Number
                                          text: "3"
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 1240
                                            line: 46
                                            character: 10
                                          end_position:
                                            bytes: 1241
                                            line: 46
                                            character: 10
                                          token_type:
                                            type: Whitespace
                                            characters: "\n"
                        - ~
                    end_token:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 1241
                          line: 47
                          character: 1
                        end_position:
                          bytes: 1244
                          line: 47
                          character: 4
                        token_type:
                          type: Symbol
                          symbol: end
                      trailing_trivia:
                        - start_position:
                            bytes: 1244
                            line: 47
                            character: 4
                          end_position:
                            bytes: 1245
                            line: 47
                            character: 4
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - LocalFunction:
        attributes: []
        local_token:
          leading_trivia:
            - start_position:
                bytes: 1245
                line: 48
                character: 1
              end_position:
                bytes: 1246
                line: 48
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 1246
              line: 49
              character: 1
            end_position:
              bytes: 1251
              line: 49
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 1251
                line: 49
                character: 6
              end_position:
                bytes: 1252
                line: 49
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        function_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 1252
              line: 49
              character: 7
            end_position:
              bytes: 1260
              line: 49
              character: 15
            token_type:
              type: Symbol
              symbol: function
          trailing_trivia:
            - start_position:
                bytes: 1260
                line: 49
                character: 15
              end_position:
                bytes: 1261
                line: 49
                character: 16
              token_type:
                type: Whitespace
                characters: " "
        name:
          leading_trivia: []
          token:
            start_position:
              bytes: 1261
              line: 49
              character: 16
            end_position:
              bytes: 1268
              line: 49
              character: 23
            token_type:
              type: Identifier
              identifier: _concat
          trailing_trivia: []
        body:
          generics:
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 1268
                      line: 49
                      character: 23
                    end_position:
                      bytes: 1269
                      line: 49
                      character: 24
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 1273
                      line: 49
                      character: 28
                    end_position:
                      bytes: 1274
                      line: 49
                      character: 29
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia: []
            generics:
              pairs:
                - Punctuated:
                    - parameter:
                        Name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 1269
                              line: 49
                              character: 24
                            end_position:
                              bytes: 1270
                              line: 49
                              character: 25
                            token_type:
                              type: Identifier
                              identifier: T
                          trailing_trivia: []
                      default: ~
                    - leading_trivia: []
                      token:
                        start_position:
                          bytes: 1270
                          line: 49
                          character: 25
                        end_position:
                          bytes: 1271
                          line: 49
                          character: 26
                        token_type:
                          type: Symbol
                          symbol: ","
                      trailing_trivia:
                        - start_position:
                            bytes: 1271
                            line: 49
                            character: 26
                          end_position:
                            bytes: 1272
                            line: 49
                            character: 27
                          token_type:
                            type: Whitespace
                            characters: " "
                - End:
                    parameter:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 1272
                            line: 49
                            character: 27
                          end_position:
                            bytes: 1273
                            line: 49
                            character: 28
                          token_type:
                            type: Identifier
                            identifier: S
                        trailing_trivia: []
                    default: ~
          parameters_parentheses:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 1274
                    line: 49
                    character: 29
                  end_position:
                    bytes: 1275
                    line: 49
                    character: 30
                  token_type:
                    type: Symbol
                    symbol: (
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 1310
                    line: 49
                    character: 65
                  end_position:
                    bytes: 1311
                    line: 49
                    character: 66
                  token_type:
                    type: Symbol
                    symbol: )
                trailing_trivia: []
          parameters:
            pairs:
              - Punctuated:
                  - Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 1275
                          line: 49
                          character: 30
                        end_position:
                          bytes: 1281
                          line: 49
                          character: 36
                        token_type:
                          type: Identifier
                          identifier: source
                      trailing_trivia: []
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 1291
                        line: 49
                        character: 46
                      end_position:
                        bytes: 1292
                        line: 49
                        character: 47
                      token_type:
                        type: Symbol
                        symbol: ","
                    trailing_trivia:
                      - start_position:
                          bytes: 1292
                          line: 49
                          character: 47
                        end_position:
                          bytes: 1293
                          line: 49
                          character: 48
                        token_type:
                          type: Whitespace
                          characters: " "
              - End:
                  Ellipsis:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 1293
                        line: 49
                        character: 48
                      end_position:
                        bytes: 1296
                        line: 49
                        character: 51
                      token_type:
                        type: Symbol
                        symbol: "..."
                    trailing_trivia: []
          type_specifiers:
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1281
                    line: 49
                    character: 36
                  end_position:
                    bytes: 1282
                    line: 49
                    character: 37
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 1282
                      line: 49
                      character: 37
                    end_position:
                      bytes: 1283
                      line: 49
                      character: 38
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                Generic:
                  base:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 1283
                        line: 49
                        character: 38
                      end_position:
                        bytes: 1288
                        line: 49
                        character: 43
                      token_type:
                        type: Identifier
                        identifier: Array
                    trailing_trivia: []
                  arrows:
                    tokens:
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 1288
                            line: 49
                            character: 43
                          end_position:
                            bytes: 1289
                            line: 49
                            character: 44
                          token_type:
                            type: Symbol
                            symbol: "<"
                        trailing_trivia: []
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 1290
                            line: 49
                            character: 45
                          end_position:
                            bytes: 1291
                            line: 49
                            character: 46
                          token_type:
                            type: Symbol
                            symbol: ">"
                        trailing_trivia: []
                  generics:
                    pairs:
                      - End:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1289
                                line: 49
                                character: 44
                              end_position:
                                bytes: 1290
                                line: 49
                                character: 45
                              token_type:
                                type: Identifier
                                identifier: T
                            trailing_trivia: []
            - punctuation:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 1296
                    line: 49
                    character: 51
                  end_position:
                    bytes: 1297
                    line: 49
                    character: 52
                  token_type:
                    type: Symbol
                    symbol: ":"
                trailing_trivia:
                  - start_position:
                      bytes: 1297
                      line: 49
                      character: 52
                    end_position:
                      bytes: 1298
                      line: 49
                      character: 53
                    token_type:
                      type: Whitespace
                      characters: " "
              type_info:
                Union:
                  leading: ~
                  types:
                    pairs:
                      - Punctuated:
                          - Generic:
                              base:
                                leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 1298
                                    line: 49
                                    character: 53
                                  end_position:
                                    bytes: 1303
                                    line: 49
                                    character: 58
                                  token_type:
                                    type: Identifier
                                    identifier: Array
                                trailing_trivia: []
                              arrows:
                                tokens:
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 1303
                                        line: 49
                                        character: 58
                                      end_position:
                                        bytes: 1304
                                        line: 49
                                        character: 59
                                      token_type:
                                        type: Symbol
                                        symbol: "<"
                                    trailing_trivia: []
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 1305
                                        line: 49
                                        character: 60
                                      end_position:
                                        bytes: 1306
                                        line: 49
                                        character: 61
                                      token_type:
                                        type: Symbol
                                        symbol: ">"
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 1306
                                          line: 49
                                          character: 61
                                        end_position:
                                          bytes: 1307
                                          line: 49
                                          character: 62
                                        token_type:
                                          type: Whitespace
                                          characters: " "
                              generics:
                                pairs:
                                  - End:
                                      Basic:
                                        leading_trivia: []
                                        token:
                                          start_position:
                                            bytes: 1304
                                            line: 49
                                            character: 59
                                          end_position:
                                            bytes: 1305
                                            line: 49
                                            character: 60
                                          token_type:
                                            type: Identifier
                                            identifier: S
                                        trailing_trivia: []
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 1307
                                line: 49
                                character: 62
                              end_position:
                                bytes: 1308
                                line: 49
                                character: 63
                              token_type:
                                type: Symbol
                                symbol: "|"
                            trailing_trivia:
                              - start_position:
                                  bytes: 1308
                                  line: 49
                                  character: 63
                                end_position:
                                  bytes: 1309
                                  line: 49
                                  character: 64
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      - End:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1309
                                line: 49
                                character: 64
                              end_position:
                                bytes: 1310
                                line: 49
                                character: 65
                              token_type:
                                type: Identifier
                                identifier: S
                            trailing_trivia: []
          return_type:
            punctuation:
              leading_trivia: []
              token:
                start_position:
                  bytes: 1311
                  line: 49
                  character: 66
                end_position:
                  bytes: 1312
                  line: 49
                  character: 67
                token_type:
                  type: Symbol
                  symbol: ":"
              trailing_trivia:
                - start_position:
                    bytes: 1312
                    line: 49
                    character: 67
                  end_position:
                    bytes: 1313
                    line: 49
                    character: 68
                  token_type:
                    type: Whitespace
                    characters: " "
            type_info:
              Intersection:
                leading: ~
                types:
                  pairs:
                    - Punctuated:
                        - Generic:
                            base:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 1313
                                  line: 49
                                  character: 68
                                end_position:
                                  bytes: 1318
                                  line: 49
                                  character: 73
                                token_type:
                                  type: Identifier
                                  identifier: Array
                              trailing_trivia: []
                            arrows:
                              tokens:
                                - leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 1318
                                      line: 49
                                      character: 73
                                    end_position:
                                      bytes: 1319
                                      line: 49
                                      character: 74
                                    token_type:
                                      type: Symbol
                                      symbol: "<"
                                  trailing_trivia: []
                                - leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 1320
                                      line: 49
                                      character: 75
                                    end_position:
                                      bytes: 1321
                                      line: 49
                                      character: 76
                                    token_type:
                                      type: Symbol
                                      symbol: ">"
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 1321
                                        line: 49
                                        character: 76
                                      end_position:
                                        bytes: 1322
                                        line: 49
                                        character: 77
                                      token_type:
                                        type: Whitespace
                                        characters: " "
                            generics:
                              pairs:
                                - End:
                                    Basic:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 1319
                                          line: 49
                                          character: 74
                                        end_position:
                                          bytes: 1320
                                          line: 49
                                          character: 75
                                        token_type:
                                          type: Identifier
                                          identifier: T
                                      trailing_trivia: []
                        - leading_trivia: []
                          token:
                            start_position:
                              bytes: 1322
                              line: 49
                              character: 77
                            end_position:
                              bytes: 1323
                              line: 49
                              character: 78
                            token_type:
                              type: Symbol
                              symbol: "&"
                          trailing_trivia:
                            - start_position:
                                bytes: 1323
                                line: 49
                                character: 78
                              end_position:
                                bytes: 1324
                                line: 49
                                character: 79
                              token_type:
                                type: Whitespace
                                characters: " "
                    - End:
                        Generic:
                          base:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 1324
                                line: 49
                                character: 79
                              end_position:
                                bytes: 1329
                                line: 49
                                character: 84
                              token_type:
                                type: Identifier
                                identifier: Array
                            trailing_trivia: []
                          arrows:
                            tokens:
                              - leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 1329
                                    line: 49
                                    character: 84
                                  end_position:
                                    bytes: 1330
                                    line: 49
                                    character: 85
                                  token_type:
                                    type: Symbol
                                    symbol: "<"
                                trailing_trivia: []
                              - leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 1331
                                    line: 49
                                    character: 86
                                  end_position:
                                    bytes: 1332
                                    line: 49
                                    character: 87
                                  token_type:
                                    type: Symbol
                                    symbol: ">"
                                trailing_trivia:
                                  - start_position:
                                      bytes: 1332
                                      line: 49
                                      character: 87
                                    end_position:
                                      bytes: 1333
                                      line: 49
                                      character: 87
                                    token_type:
                                      type: Whitespace
                                      characters: "\n"
                          generics:
                            pairs:
                              - End:
                                  Basic:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 1330
                                        line: 49
                                        character: 85
                                      end_position:
                                        bytes: 1331
                                        line: 49
                                        character: 86
                                      token_type:
                                        type: Identifier
                                        identifier: S
                                    trailing_trivia: []
          block:
            stmts: []
            last_stmt:
              - Return:
                  token:
                    leading_trivia:
                      - start_position:
                          bytes: 1333
                          line: 50
                          character: 1
                        end_position:
                          bytes: 1337
                          line: 50
                          character: 5
                        token_type:
                          type: Whitespace
                          characters: "    "
                    token:
                      start_position:
                        bytes: 1337
                        line: 50
                        character: 5
                      end_position:
                        bytes: 1343
                        line: 50
                        character: 11
                      token_type:
                        type: Symbol
                        symbol: return
                    trailing_trivia:
                      - start_position:
                          bytes: 1343
                          line: 50
                          character: 11
                        end_position:
                          bytes: 1344
                          line: 50
                          character: 12
                        token_type:
                          type: Whitespace
                          characters: " "
                  returns:
                    pairs:
                      - End:
                          TypeAssertion:
                            expression:
                              Parentheses:
                                contained:
                                  tokens:
                                    - leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 1344
                                          line: 50
                                          character: 12
                                        end_position:
                                          bytes: 1345
                                          line: 50
                                          character: 13
                                        token_type:
                                          type: Symbol
                                          symbol: (
                                      trailing_trivia: []
                                    - leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 1358
                                          line: 50
                                          character: 26
                                        end_position:
                                          bytes: 1359
                                          line: 50
                                          character: 27
                                        token_type:
                                          type: Symbol
                                          symbol: )
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 1359
                                            line: 50
                                            character: 27
                                          end_position:
                                            bytes: 1360
                                            line: 50
                                            character: 28
                                          token_type:
                                            type: Whitespace
                                            characters: " "
                                expression:
                                  TypeAssertion:
                                    expression:
                                      Var:
                                        Name:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 1345
                                              line: 50
                                              character: 13
                                            end_position:
                                              bytes: 1351
                                              line: 50
                                              character: 19
                                            token_type:
                                              type: Identifier
                                              identifier: source
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 1351
                                                line: 50
                                                character: 19
                                              end_position:
                                                bytes: 1352
                                                line: 50
                                                character: 20
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                    type_assertion:
                                      assertion_op:
                                        leading_trivia: []
                                        token:
                                          start_position:
                                            bytes: 1352
                                            line: 50
                                            character: 20
                                          end_position:
                                            bytes: 1354
                                            line: 50
                                            character: 22
                                          token_type:
                                            type: Symbol
                                            symbol: "::"
                                        trailing_trivia:
                                          - start_position:
                                              bytes: 1354
                                              line: 50
                                              character: 22
                                            end_position:
                                              bytes: 1355
                                              line: 50
                                              character: 23
                                            token_type:
                                              type: Whitespace
                                              characters: " "
                                      cast_to:
                                        Basic:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 1355
                                              line: 50
                                              character: 23
                                            end_position:
                                              bytes: 1358
                                              line: 50
                                              character: 26
                                            token_type:
                                              type: Identifier
                                              identifier: any
                                          trailing_trivia: []
                            type_assertion:
                              assertion_op:
                                leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 1360
                                    line: 50
                                    character: 28
                                  end_position:
                                    bytes: 1362
                                    line: 50
                                    character: 30
                                  token_type:
                                    type: Symbol
                                    symbol: "::"
                                trailing_trivia:
                                  - start_position:
                                      bytes: 1362
                                      line: 50
                                      character: 30
                                    end_position:
                                      bytes: 1363
                                      line: 50
                                      character: 31
                                    token_type:
                                      type: Whitespace
                                      characters: " "
                              cast_to:
                                Intersection:
                                  leading: ~
                                  types:
                                    pairs:
                                      - Punctuated:
                                          - Generic:
                                              base:
                                                leading_trivia: []
                                                token:
                                                  start_position:
                                                    bytes: 1363
                                                    line: 50
                                                    character: 31
                                                  end_position:
                                                    bytes: 1368
                                                    line: 50
                                                    character: 36
                                                  token_type:
                                                    type: Identifier
                                                    identifier: Array
                                                trailing_trivia: []
                                              arrows:
                                                tokens:
                                                  - leading_trivia: []
                                                    token:
                                                      start_position:
                                                        bytes: 1368
                                                        line: 50
                                                        character: 36
                                                      end_position:
                                                        bytes: 1369
                                                        line: 50
                                                        character: 37
                                                      token_type:
                                                        type: Symbol
                                                        symbol: "<"
                                                    trailing_trivia: []
                                                  - leading_trivia: []
                                                    token:
                                                      start_position:
                                                        bytes: 1370
                                                        line: 50
                                                        character: 38
                                                      end_position:
                                                        bytes: 1371
                                                        line: 50
                                                        character: 39
                                                      token_type:
                                                        type: Symbol
                                                        symbol: ">"
                                                    trailing_trivia:
                                                      - start_position:
                                                          bytes: 1371
                                                          line: 50
                                                          character: 39
                                                        end_position:
                                                          bytes: 1372
                                                          line: 50
                                                          character: 40
                                                        token_type:
                                                          type: Whitespace
                                                          characters: " "
                                              generics:
                                                pairs:
                                                  - End:
                                                      Basic:
                                                        leading_trivia: []
                                                        token:
                                                          start_position:
                                                            bytes: 1369
                                                            line: 50
                                                            character: 37
                                                          end_position:
                                                            bytes: 1370
                                                            line: 50
                                                            character: 38
                                                          token_type:
                                                            type: Identifier
                                                            identifier: S
                                                        trailing_trivia: []
                                          - leading_trivia: []
                                            token:
                                              start_position:
                                                bytes: 1372
                                                line: 50
                                                character: 40
                                              end_position:
                                                bytes: 1373
                                                line: 50
                                                character: 41
                                              token_type:
                                                type: Symbol
                                                symbol: "&"
                                            trailing_trivia:
                                              - start_position:
                                                  bytes: 1373
                                                  line: 50
                                                  character: 41
                                                end_position:
                                                  bytes: 1374
                                                  line: 50
                                                  character: 42
                                                token_type:
                                                  type: Whitespace
                                                  characters: " "
                                      - End:
                                          Generic:
                                            base:
                                              leading_trivia: []
                                              token:
                                                start_position:
                                                  bytes: 1374
                                                  line: 50
                                                  character: 42
                                                end_position:
                                                  bytes: 1379
                                                  line: 50
                                                  character: 47
                                                token_type:
                                                  type: Identifier
                                                  identifier: Array
                                              trailing_trivia: []
                                            arrows:
                                              tokens:
                                                - leading_trivia: []
                                                  token:
                                                    start_position:
                                                      bytes: 1379
                                                      line: 50
                                                      character: 47
                                                    end_position:
                                                      bytes: 1380
                                                      line: 50
                                                      character: 48
                                                    token_type:
                                                      type: Symbol
                                                      symbol: "<"
                                                  trailing_trivia: []
                                                - leading_trivia: []
                                                  token:
                                                    start_position:
                                                      bytes: 1381
                                                      line: 50
                                                      character: 49
                                                    end_position:
                                                      bytes: 1382
                                                      line: 50
                                                      character: 50
                                                    token_type:
                                                      type: Symbol
                                                      symbol: ">"
                                                  trailing_trivia:
                                                    - start_position:
                                                        bytes: 1382
                                                        line: 50
                                                        character: 50
                                                      end_position:
                                                        bytes: 1383
                                                        line: 50
                                                        character: 50
                                                      token_type:
                                                        type: Whitespace
                                                        characters: "\n"
                                            generics:
                                              pairs:
                                                - End:
                                                    Basic:
                                                      leading_trivia: []
                                                      token:
                                                        start_position:
                                                          bytes: 1380
                                                          line: 50
                                                          character: 48
                                                        end_position:
                                                          bytes: 1381
                                                          line: 50
                                                          character: 49
                                                        token_type:
                                                          type: Identifier
                                                          identifier: T
                                                      trailing_trivia: []
              - ~
          end_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 1383
                line: 51
                character: 1
              end_position:
                bytes: 1386
                line: 51
                character: 4
              token_type:
                type: Symbol
                symbol: end
            trailing_trivia: []
    - ~
