---
source: full-moon/tests/pass_cases.rs
expression: tokens
input_file: full-moon/tests/roblox_cases/pass/generic_functions

---
- 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"
- start_position:
    bytes: 10
    line: 2
    character: 1
  end_position:
    bytes: 18
    line: 2
    character: 9
  token_type:
    type: Symbol
    symbol: function
- start_position:
    bytes: 18
    line: 2
    character: 9
  end_position:
    bytes: 19
    line: 2
    character: 10
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 19
    line: 2
    character: 10
  end_position:
    bytes: 23
    line: 2
    character: 14
  token_type:
    type: Identifier
    identifier: _foo
- start_position:
    bytes: 23
    line: 2
    character: 14
  end_position:
    bytes: 24
    line: 2
    character: 15
  token_type:
    type: Symbol
    symbol: "<"
- start_position:
    bytes: 24
    line: 2
    character: 15
  end_position:
    bytes: 25
    line: 2
    character: 16
  token_type:
    type: Identifier
    identifier: x
- start_position:
    bytes: 25
    line: 2
    character: 16
  end_position:
    bytes: 26
    line: 2
    character: 17
  token_type:
    type: Symbol
    symbol: ","
- start_position:
    bytes: 26
    line: 2
    character: 17
  end_position:
    bytes: 27
    line: 2
    character: 18
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 27
    line: 2
    character: 18
  end_position:
    bytes: 28
    line: 2
    character: 19
  token_type:
    type: Identifier
    identifier: y
- start_position:
    bytes: 28
    line: 2
    character: 19
  end_position:
    bytes: 29
    line: 2
    character: 20
  token_type:
    type: Symbol
    symbol: ">"
- start_position:
    bytes: 29
    line: 2
    character: 20
  end_position:
    bytes: 30
    line: 2
    character: 21
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 30
    line: 2
    character: 21
  end_position:
    bytes: 31
    line: 2
    character: 22
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 31
    line: 2
    character: 22
  end_position:
    bytes: 32
    line: 2
    character: 22
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 32
    line: 3
    character: 1
  end_position:
    bytes: 35
    line: 3
    character: 4
  token_type:
    type: Symbol
    symbol: end
- start_position:
    bytes: 35
    line: 3
    character: 4
  end_position:
    bytes: 36
    line: 3
    character: 4
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 36
    line: 4
    character: 1
  end_position:
    bytes: 37
    line: 4
    character: 1
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 37
    line: 5
    character: 1
  end_position:
    bytes: 42
    line: 5
    character: 6
  token_type:
    type: Symbol
    symbol: local
- start_position:
    bytes: 42
    line: 5
    character: 6
  end_position:
    bytes: 43
    line: 5
    character: 7
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 43
    line: 5
    character: 7
  end_position:
    bytes: 51
    line: 5
    character: 15
  token_type:
    type: Symbol
    symbol: function
- start_position:
    bytes: 51
    line: 5
    character: 15
  end_position:
    bytes: 52
    line: 5
    character: 16
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 52
    line: 5
    character: 16
  end_position:
    bytes: 56
    line: 5
    character: 20
  token_type:
    type: Identifier
    identifier: _bar
- start_position:
    bytes: 56
    line: 5
    character: 20
  end_position:
    bytes: 57
    line: 5
    character: 21
  token_type:
    type: Symbol
    symbol: "<"
- start_position:
    bytes: 57
    line: 5
    character: 21
  end_position:
    bytes: 58
    line: 5
    character: 22
  token_type:
    type: Identifier
    identifier: x
- start_position:
    bytes: 58
    line: 5
    character: 22
  end_position:
    bytes: 59
    line: 5
    character: 23
  token_type:
    type: Symbol
    symbol: ">"
- start_position:
    bytes: 59
    line: 5
    character: 23
  end_position:
    bytes: 60
    line: 5
    character: 24
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 60
    line: 5
    character: 24
  end_position:
    bytes: 61
    line: 5
    character: 25
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 61
    line: 5
    character: 25
  end_position:
    bytes: 62
    line: 5
    character: 25
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 62
    line: 6
    character: 1
  end_position:
    bytes: 65
    line: 6
    character: 4
  token_type:
    type: Symbol
    symbol: end
- start_position:
    bytes: 65
    line: 6
    character: 4
  end_position:
    bytes: 66
    line: 6
    character: 4
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 66
    line: 7
    character: 1
  end_position:
    bytes: 67
    line: 7
    character: 1
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 67
    line: 8
    character: 1
  end_position:
    bytes: 73
    line: 8
    character: 7
  token_type:
    type: Identifier
    identifier: export
- start_position:
    bytes: 73
    line: 8
    character: 7
  end_position:
    bytes: 74
    line: 8
    character: 8
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 74
    line: 8
    character: 8
  end_position:
    bytes: 78
    line: 8
    character: 12
  token_type:
    type: Identifier
    identifier: type
- start_position:
    bytes: 78
    line: 8
    character: 12
  end_position:
    bytes: 79
    line: 8
    character: 13
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 79
    line: 8
    character: 13
  end_position:
    bytes: 83
    line: 8
    character: 17
  token_type:
    type: Identifier
    identifier: Foo0
- start_position:
    bytes: 83
    line: 8
    character: 17
  end_position:
    bytes: 84
    line: 8
    character: 18
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 84
    line: 8
    character: 18
  end_position:
    bytes: 85
    line: 8
    character: 19
  token_type:
    type: Symbol
    symbol: "="
- start_position:
    bytes: 85
    line: 8
    character: 19
  end_position:
    bytes: 86
    line: 8
    character: 20
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 86
    line: 8
    character: 20
  end_position:
    bytes: 87
    line: 8
    character: 21
  token_type:
    type: Symbol
    symbol: "{"
- start_position:
    bytes: 87
    line: 8
    character: 21
  end_position:
    bytes: 88
    line: 8
    character: 21
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 88
    line: 9
    character: 1
  end_position:
    bytes: 89
    line: 9
    character: 2
  token_type:
    type: Whitespace
    characters: "\t"
- start_position:
    bytes: 89
    line: 9
    character: 2
  end_position:
    bytes: 92
    line: 9
    character: 5
  token_type:
    type: Identifier
    identifier: bar
- start_position:
    bytes: 92
    line: 9
    character: 5
  end_position:
    bytes: 93
    line: 9
    character: 6
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 93
    line: 9
    character: 6
  end_position:
    bytes: 94
    line: 9
    character: 7
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 94
    line: 9
    character: 7
  end_position:
    bytes: 95
    line: 9
    character: 8
  token_type:
    type: Symbol
    symbol: "<"
- start_position:
    bytes: 95
    line: 9
    character: 8
  end_position:
    bytes: 96
    line: 9
    character: 9
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 96
    line: 9
    character: 9
  end_position:
    bytes: 97
    line: 9
    character: 10
  token_type:
    type: Symbol
    symbol: ">"
- start_position:
    bytes: 97
    line: 9
    character: 10
  end_position:
    bytes: 98
    line: 9
    character: 11
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 98
    line: 9
    character: 11
  end_position:
    bytes: 99
    line: 9
    character: 11
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 99
    line: 10
    character: 1
  end_position:
    bytes: 101
    line: 10
    character: 3
  token_type:
    type: Whitespace
    characters: "\t\t"
- start_position:
    bytes: 101
    line: 10
    character: 3
  end_position:
    bytes: 102
    line: 10
    character: 4
  token_type:
    type: Identifier
    identifier: a
- start_position:
    bytes: 102
    line: 10
    character: 4
  end_position:
    bytes: 103
    line: 10
    character: 5
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 103
    line: 10
    character: 5
  end_position:
    bytes: 104
    line: 10
    character: 6
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 104
    line: 10
    character: 6
  end_position:
    bytes: 105
    line: 10
    character: 7
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 105
    line: 10
    character: 7
  end_position:
    bytes: 106
    line: 10
    character: 8
  token_type:
    type: Symbol
    symbol: ","
- start_position:
    bytes: 106
    line: 10
    character: 8
  end_position:
    bytes: 107
    line: 10
    character: 8
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 107
    line: 11
    character: 1
  end_position:
    bytes: 109
    line: 11
    character: 3
  token_type:
    type: Whitespace
    characters: "\t\t"
- start_position:
    bytes: 109
    line: 11
    character: 3
  end_position:
    bytes: 110
    line: 11
    character: 4
  token_type:
    type: Identifier
    identifier: b
- start_position:
    bytes: 110
    line: 11
    character: 4
  end_position:
    bytes: 111
    line: 11
    character: 5
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 111
    line: 11
    character: 5
  end_position:
    bytes: 112
    line: 11
    character: 6
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 112
    line: 11
    character: 6
  end_position:
    bytes: 115
    line: 11
    character: 9
  token_type:
    type: Symbol
    symbol: nil
- start_position:
    bytes: 115
    line: 11
    character: 9
  end_position:
    bytes: 116
    line: 11
    character: 10
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 116
    line: 11
    character: 10
  end_position:
    bytes: 117
    line: 11
    character: 11
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 117
    line: 11
    character: 11
  end_position:
    bytes: 118
    line: 11
    character: 12
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 118
    line: 11
    character: 12
  end_position:
    bytes: 124
    line: 11
    character: 18
  token_type:
    type: Identifier
    identifier: number
- start_position:
    bytes: 124
    line: 11
    character: 18
  end_position:
    bytes: 125
    line: 11
    character: 19
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 125
    line: 11
    character: 19
  end_position:
    bytes: 126
    line: 11
    character: 20
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 126
    line: 11
    character: 20
  end_position:
    bytes: 127
    line: 11
    character: 21
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 127
    line: 11
    character: 21
  end_position:
    bytes: 134
    line: 11
    character: 28
  token_type:
    type: Identifier
    identifier: boolean
- start_position:
    bytes: 134
    line: 11
    character: 28
  end_position:
    bytes: 135
    line: 11
    character: 28
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 135
    line: 12
    character: 1
  end_position:
    bytes: 136
    line: 12
    character: 2
  token_type:
    type: Whitespace
    characters: "\t"
- start_position:
    bytes: 136
    line: 12
    character: 2
  end_position:
    bytes: 137
    line: 12
    character: 3
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 137
    line: 12
    character: 3
  end_position:
    bytes: 138
    line: 12
    character: 4
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 138
    line: 12
    character: 4
  end_position:
    bytes: 140
    line: 12
    character: 6
  token_type:
    type: Symbol
    symbol: "->"
- start_position:
    bytes: 140
    line: 12
    character: 6
  end_position:
    bytes: 141
    line: 12
    character: 7
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 141
    line: 12
    character: 7
  end_position:
    bytes: 142
    line: 12
    character: 8
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 142
    line: 12
    character: 8
  end_position:
    bytes: 143
    line: 12
    character: 9
  token_type:
    type: Symbol
    symbol: ","
- start_position:
    bytes: 143
    line: 12
    character: 9
  end_position:
    bytes: 144
    line: 12
    character: 9
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 144
    line: 13
    character: 1
  end_position:
    bytes: 145
    line: 13
    character: 2
  token_type:
    type: Symbol
    symbol: "}"
- start_position:
    bytes: 145
    line: 13
    character: 2
  end_position:
    bytes: 146
    line: 13
    character: 2
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 146
    line: 14
    character: 1
  end_position:
    bytes: 151
    line: 14
    character: 6
  token_type:
    type: Symbol
    symbol: local
- start_position:
    bytes: 151
    line: 14
    character: 6
  end_position:
    bytes: 152
    line: 14
    character: 7
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 152
    line: 14
    character: 7
  end_position:
    bytes: 156
    line: 14
    character: 11
  token_type:
    type: Identifier
    identifier: _baz
- start_position:
    bytes: 156
    line: 14
    character: 11
  end_position:
    bytes: 157
    line: 14
    character: 11
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 157
    line: 15
    character: 1
  end_position:
    bytes: 163
    line: 15
    character: 7
  token_type:
    type: Identifier
    identifier: export
- start_position:
    bytes: 163
    line: 15
    character: 7
  end_position:
    bytes: 164
    line: 15
    character: 8
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 164
    line: 15
    character: 8
  end_position:
    bytes: 168
    line: 15
    character: 12
  token_type:
    type: Identifier
    identifier: type
- start_position:
    bytes: 168
    line: 15
    character: 12
  end_position:
    bytes: 169
    line: 15
    character: 13
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 169
    line: 15
    character: 13
  end_position:
    bytes: 173
    line: 15
    character: 17
  token_type:
    type: Identifier
    identifier: Foo1
- start_position:
    bytes: 173
    line: 15
    character: 17
  end_position:
    bytes: 174
    line: 15
    character: 18
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 174
    line: 15
    character: 18
  end_position:
    bytes: 175
    line: 15
    character: 19
  token_type:
    type: Symbol
    symbol: "="
- start_position:
    bytes: 175
    line: 15
    character: 19
  end_position:
    bytes: 176
    line: 15
    character: 20
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 176
    line: 15
    character: 20
  end_position:
    bytes: 177
    line: 15
    character: 21
  token_type:
    type: Symbol
    symbol: "{"
- start_position:
    bytes: 177
    line: 15
    character: 21
  end_position:
    bytes: 178
    line: 15
    character: 21
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 178
    line: 16
    character: 1
  end_position:
    bytes: 179
    line: 16
    character: 2
  token_type:
    type: Whitespace
    characters: "\t"
- start_position:
    bytes: 179
    line: 16
    character: 2
  end_position:
    bytes: 182
    line: 16
    character: 5
  token_type:
    type: Identifier
    identifier: bar
- start_position:
    bytes: 182
    line: 16
    character: 5
  end_position:
    bytes: 183
    line: 16
    character: 6
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 183
    line: 16
    character: 6
  end_position:
    bytes: 184
    line: 16
    character: 7
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 184
    line: 16
    character: 7
  end_position:
    bytes: 185
    line: 16
    character: 8
  token_type:
    type: Symbol
    symbol: "<"
- start_position:
    bytes: 185
    line: 16
    character: 8
  end_position:
    bytes: 186
    line: 16
    character: 9
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 186
    line: 16
    character: 9
  end_position:
    bytes: 187
    line: 16
    character: 10
  token_type:
    type: Symbol
    symbol: ">"
- start_position:
    bytes: 187
    line: 16
    character: 10
  end_position:
    bytes: 188
    line: 16
    character: 11
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 188
    line: 16
    character: 11
  end_position:
    bytes: 189
    line: 16
    character: 11
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 189
    line: 17
    character: 1
  end_position:
    bytes: 191
    line: 17
    character: 3
  token_type:
    type: Whitespace
    characters: "\t\t"
- start_position:
    bytes: 191
    line: 17
    character: 3
  end_position:
    bytes: 192
    line: 17
    character: 4
  token_type:
    type: Identifier
    identifier: a
- start_position:
    bytes: 192
    line: 17
    character: 4
  end_position:
    bytes: 193
    line: 17
    character: 5
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 193
    line: 17
    character: 5
  end_position:
    bytes: 194
    line: 17
    character: 6
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 194
    line: 17
    character: 6
  end_position:
    bytes: 195
    line: 17
    character: 7
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 195
    line: 17
    character: 7
  end_position:
    bytes: 196
    line: 17
    character: 8
  token_type:
    type: Symbol
    symbol: ","
- start_position:
    bytes: 196
    line: 17
    character: 8
  end_position:
    bytes: 197
    line: 17
    character: 8
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 197
    line: 18
    character: 1
  end_position:
    bytes: 199
    line: 18
    character: 3
  token_type:
    type: Whitespace
    characters: "\t\t"
- start_position:
    bytes: 199
    line: 18
    character: 3
  end_position:
    bytes: 200
    line: 18
    character: 4
  token_type:
    type: Identifier
    identifier: b
- start_position:
    bytes: 200
    line: 18
    character: 4
  end_position:
    bytes: 201
    line: 18
    character: 5
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 201
    line: 18
    character: 5
  end_position:
    bytes: 202
    line: 18
    character: 6
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 202
    line: 18
    character: 6
  end_position:
    bytes: 205
    line: 18
    character: 9
  token_type:
    type: Symbol
    symbol: nil
- start_position:
    bytes: 205
    line: 18
    character: 9
  end_position:
    bytes: 206
    line: 18
    character: 10
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 206
    line: 18
    character: 10
  end_position:
    bytes: 207
    line: 18
    character: 11
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 207
    line: 18
    character: 11
  end_position:
    bytes: 208
    line: 18
    character: 12
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 208
    line: 18
    character: 12
  end_position:
    bytes: 214
    line: 18
    character: 18
  token_type:
    type: Identifier
    identifier: number
- start_position:
    bytes: 214
    line: 18
    character: 18
  end_position:
    bytes: 215
    line: 18
    character: 19
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 215
    line: 18
    character: 19
  end_position:
    bytes: 216
    line: 18
    character: 20
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 216
    line: 18
    character: 20
  end_position:
    bytes: 217
    line: 18
    character: 21
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 217
    line: 18
    character: 21
  end_position:
    bytes: 224
    line: 18
    character: 28
  token_type:
    type: Identifier
    identifier: boolean
- start_position:
    bytes: 224
    line: 18
    character: 28
  end_position:
    bytes: 225
    line: 18
    character: 28
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 225
    line: 19
    character: 1
  end_position:
    bytes: 226
    line: 19
    character: 2
  token_type:
    type: Whitespace
    characters: "\t"
- start_position:
    bytes: 226
    line: 19
    character: 2
  end_position:
    bytes: 227
    line: 19
    character: 3
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 227
    line: 19
    character: 3
  end_position:
    bytes: 228
    line: 19
    character: 4
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 228
    line: 19
    character: 4
  end_position:
    bytes: 230
    line: 19
    character: 6
  token_type:
    type: Symbol
    symbol: "->"
- start_position:
    bytes: 230
    line: 19
    character: 6
  end_position:
    bytes: 231
    line: 19
    character: 7
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 231
    line: 19
    character: 7
  end_position:
    bytes: 232
    line: 19
    character: 8
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 232
    line: 19
    character: 8
  end_position:
    bytes: 233
    line: 19
    character: 9
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 233
    line: 19
    character: 9
  end_position:
    bytes: 237
    line: 19
    character: 13
  token_type:
    type: Identifier
    identifier: arg0
- start_position:
    bytes: 237
    line: 19
    character: 13
  end_position:
    bytes: 238
    line: 19
    character: 14
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 238
    line: 19
    character: 14
  end_position:
    bytes: 239
    line: 19
    character: 15
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 239
    line: 19
    character: 15
  end_position:
    bytes: 240
    line: 19
    character: 16
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 240
    line: 19
    character: 16
  end_position:
    bytes: 241
    line: 19
    character: 17
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 241
    line: 19
    character: 17
  end_position:
    bytes: 242
    line: 19
    character: 18
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 242
    line: 19
    character: 18
  end_position:
    bytes: 244
    line: 19
    character: 20
  token_type:
    type: Symbol
    symbol: "->"
- start_position:
    bytes: 244
    line: 19
    character: 20
  end_position:
    bytes: 245
    line: 19
    character: 21
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 245
    line: 19
    character: 21
  end_position:
    bytes: 246
    line: 19
    character: 22
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 246
    line: 19
    character: 22
  end_position:
    bytes: 247
    line: 19
    character: 23
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 247
    line: 19
    character: 23
  end_position:
    bytes: 248
    line: 19
    character: 24
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 248
    line: 19
    character: 24
  end_position:
    bytes: 249
    line: 19
    character: 25
  token_type:
    type: Symbol
    symbol: "?"
- start_position:
    bytes: 249
    line: 19
    character: 25
  end_position:
    bytes: 250
    line: 19
    character: 26
  token_type:
    type: Symbol
    symbol: ","
- start_position:
    bytes: 250
    line: 19
    character: 26
  end_position:
    bytes: 251
    line: 19
    character: 26
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 251
    line: 20
    character: 1
  end_position:
    bytes: 252
    line: 20
    character: 2
  token_type:
    type: Symbol
    symbol: "}"
- start_position:
    bytes: 252
    line: 20
    character: 2
  end_position:
    bytes: 253
    line: 20
    character: 2
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 253
    line: 21
    character: 1
  end_position:
    bytes: 254
    line: 21
    character: 1
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 254
    line: 22
    character: 1
  end_position:
    bytes: 258
    line: 22
    character: 5
  token_type:
    type: Identifier
    identifier: _baz
- start_position:
    bytes: 258
    line: 22
    character: 5
  end_position:
    bytes: 259
    line: 22
    character: 6
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 259
    line: 22
    character: 6
  end_position:
    bytes: 260
    line: 22
    character: 7
  token_type:
    type: Symbol
    symbol: "="
- start_position:
    bytes: 260
    line: 22
    character: 7
  end_position:
    bytes: 261
    line: 22
    character: 8
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 261
    line: 22
    character: 8
  end_position:
    bytes: 269
    line: 22
    character: 16
  token_type:
    type: Symbol
    symbol: function
- start_position:
    bytes: 269
    line: 22
    character: 16
  end_position:
    bytes: 270
    line: 22
    character: 17
  token_type:
    type: Symbol
    symbol: "<"
- start_position:
    bytes: 270
    line: 22
    character: 17
  end_position:
    bytes: 271
    line: 22
    character: 18
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 271
    line: 22
    character: 18
  end_position:
    bytes: 272
    line: 22
    character: 19
  token_type:
    type: Symbol
    symbol: ">"
- start_position:
    bytes: 272
    line: 22
    character: 19
  end_position:
    bytes: 273
    line: 22
    character: 20
  token_type:
    type: Symbol
    symbol: (
- start_position:
    bytes: 273
    line: 22
    character: 20
  end_position:
    bytes: 274
    line: 22
    character: 21
  token_type:
    type: Identifier
    identifier: a
- start_position:
    bytes: 274
    line: 22
    character: 21
  end_position:
    bytes: 275
    line: 22
    character: 22
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 275
    line: 22
    character: 22
  end_position:
    bytes: 276
    line: 22
    character: 23
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 276
    line: 22
    character: 23
  end_position:
    bytes: 277
    line: 22
    character: 24
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 277
    line: 22
    character: 24
  end_position:
    bytes: 278
    line: 22
    character: 25
  token_type:
    type: Symbol
    symbol: ","
- start_position:
    bytes: 278
    line: 22
    character: 25
  end_position:
    bytes: 279
    line: 22
    character: 26
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 279
    line: 22
    character: 26
  end_position:
    bytes: 280
    line: 22
    character: 27
  token_type:
    type: Identifier
    identifier: b
- start_position:
    bytes: 280
    line: 22
    character: 27
  end_position:
    bytes: 281
    line: 22
    character: 28
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 281
    line: 22
    character: 28
  end_position:
    bytes: 282
    line: 22
    character: 29
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 282
    line: 22
    character: 29
  end_position:
    bytes: 288
    line: 22
    character: 35
  token_type:
    type: Identifier
    identifier: number
- start_position:
    bytes: 288
    line: 22
    character: 35
  end_position:
    bytes: 289
    line: 22
    character: 36
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 289
    line: 22
    character: 36
  end_position:
    bytes: 290
    line: 22
    character: 37
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 290
    line: 22
    character: 37
  end_position:
    bytes: 291
    line: 22
    character: 38
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 291
    line: 22
    character: 38
  end_position:
    bytes: 298
    line: 22
    character: 45
  token_type:
    type: Identifier
    identifier: boolean
- start_position:
    bytes: 298
    line: 22
    character: 45
  end_position:
    bytes: 299
    line: 22
    character: 46
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 299
    line: 22
    character: 46
  end_position:
    bytes: 300
    line: 22
    character: 47
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 300
    line: 22
    character: 47
  end_position:
    bytes: 301
    line: 22
    character: 48
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 301
    line: 22
    character: 48
  end_position:
    bytes: 304
    line: 22
    character: 51
  token_type:
    type: Symbol
    symbol: nil
- start_position:
    bytes: 304
    line: 22
    character: 51
  end_position:
    bytes: 305
    line: 22
    character: 52
  token_type:
    type: Symbol
    symbol: )
- start_position:
    bytes: 305
    line: 22
    character: 52
  end_position:
    bytes: 306
    line: 22
    character: 53
  token_type:
    type: Symbol
    symbol: ":"
- start_position:
    bytes: 306
    line: 22
    character: 53
  end_position:
    bytes: 307
    line: 22
    character: 54
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 307
    line: 22
    character: 54
  end_position:
    bytes: 310
    line: 22
    character: 57
  token_type:
    type: Symbol
    symbol: nil
- start_position:
    bytes: 310
    line: 22
    character: 57
  end_position:
    bytes: 311
    line: 22
    character: 58
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 311
    line: 22
    character: 58
  end_position:
    bytes: 312
    line: 22
    character: 59
  token_type:
    type: Symbol
    symbol: "|"
- start_position:
    bytes: 312
    line: 22
    character: 59
  end_position:
    bytes: 313
    line: 22
    character: 60
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 313
    line: 22
    character: 60
  end_position:
    bytes: 314
    line: 22
    character: 61
  token_type:
    type: Identifier
    identifier: T
- start_position:
    bytes: 314
    line: 22
    character: 61
  end_position:
    bytes: 315
    line: 22
    character: 61
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 315
    line: 23
    character: 1
  end_position:
    bytes: 319
    line: 23
    character: 5
  token_type:
    type: Whitespace
    characters: "    "
- start_position:
    bytes: 319
    line: 23
    character: 5
  end_position:
    bytes: 325
    line: 23
    character: 11
  token_type:
    type: Symbol
    symbol: return
- start_position:
    bytes: 325
    line: 23
    character: 11
  end_position:
    bytes: 326
    line: 23
    character: 12
  token_type:
    type: Whitespace
    characters: " "
- start_position:
    bytes: 326
    line: 23
    character: 12
  end_position:
    bytes: 329
    line: 23
    character: 15
  token_type:
    type: Symbol
    symbol: nil
- start_position:
    bytes: 329
    line: 23
    character: 15
  end_position:
    bytes: 330
    line: 23
    character: 15
  token_type:
    type: Whitespace
    characters: "\n"
- start_position:
    bytes: 330
    line: 24
    character: 1
  end_position:
    bytes: 333
    line: 24
    character: 4
  token_type:
    type: Symbol
    symbol: end
- start_position:
    bytes: 333
    line: 24
    character: 4
  end_position:
    bytes: 333
    line: 24
    character: 4
  token_type:
    type: Eof

