@willbooster/tree-sitter-haskell 4.1.2 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -5
- package/grammar/conflicts.js +11 -105
- package/grammar/decl.js +6 -6
- package/grammar/exp.js +5 -15
- package/grammar/precedences.js +5 -9
- package/grammar/type.js +5 -37
- package/package.json +3 -3
- package/queries/highlights.scm +10 -0
- package/queries/locals.scm +2 -0
- package/queries/tags.scm +27 -17
- package/src/node-types.json +211 -276
- package/tree-sitter-haskell.wasm +0 -0
- package/tree-sitter.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Haskell grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter), f
|
|
|
13
13
|
to its authors and contributors. This is not an official release of that project.
|
|
14
14
|
|
|
15
15
|
This fork is based on upstream's version 0.23.1 grammar and generates the parser with the
|
|
16
|
-
[WillBooster/tree-sitter](https://github.com/WillBooster/tree-sitter) generator. The parser carries that fork's own ABI number, so it loads only with that fork's runtime, version
|
|
16
|
+
[WillBooster/tree-sitter](https://github.com/WillBooster/tree-sitter) generator. The parser carries that fork's own ABI number, so it loads only with that fork's runtime, version 7.0.5 or later in the 7.x series; upstream's runtime rejects it.
|
|
17
17
|
[Upstream's README at that version](https://github.com/tree-sitter/tree-sitter-haskell/blob/v0.23.1/README.md) lists
|
|
18
18
|
the supported language extensions and, under "Querying", explains how to query the grammar's supertypes; it is the
|
|
19
19
|
readme that the comments in `grammar.js` refer to.
|
|
@@ -43,7 +43,7 @@ reports an error: the lexers of the WillBooster/tree-sitter generator let charac
|
|
|
43
43
|
## Usage
|
|
44
44
|
|
|
45
45
|
The npm package ships `tree-sitter-haskell.wasm` for
|
|
46
|
-
[@willbooster/web-tree-sitter](https://www.npmjs.com/package/@willbooster/web-tree-sitter) version
|
|
46
|
+
[@willbooster/web-tree-sitter](https://www.npmjs.com/package/@willbooster/web-tree-sitter) version 7.0.5 or later in the 7.x series, which runs in Node.js, Bun, browsers, and Cloudflare Workers. In Node.js and Bun, load the grammar from its path:
|
|
47
47
|
|
|
48
48
|
```js
|
|
49
49
|
import { fileURLToPath } from 'node:url';
|
|
@@ -85,7 +85,9 @@ The package also ships `grammar.js` with the files in `grammar/` it loads, the q
|
|
|
85
85
|
|
|
86
86
|
For code navigation, use `queries/tags.scm` (or `TAGS_QUERY` in Rust). It indexes module headers, top-level named functions and simple named bindings, named types and classes, class and instance methods, and syntactic variable/operator calls. A signature and each equation have separate definition locations. Call references identify the called name without resolving its binding.
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
Declaration names and variable/operator callees remain indexed through nested parentheses. Class and instance equations retain their method roles; grouping a value without applying it does not create a call reference. Destructuring bindings, local pattern bindings and constructors (including pattern synonyms) are not indexed.
|
|
89
|
+
|
|
90
|
+
Function and type declaration-head parentheses are anonymous syntax: the enclosing declaration directly exposes its `name`, parameter groups and infix `head` fields. Parentheses inside parameters and types retain their existing nodes. A grouped variable name, including a qualified name, uses one `parenthesized_name` node with a direct name child, independent of grouping depth. A symbolic variable operator keeps its required prefix parentheses in `prefix_id`: `(<+>)` and `(Demo.<+>)` remain `prefix_id`, while redundant grouping such as `((<+>))` adds one `parenthesized_name` wrapper around that node. This also applies to unapplied names; only function position creates a call reference or call highlight. A parenthesized simple binding name uses `parenthesized_name` in the `bind` node's `name` field, retaining one wrapper at any grouping depth. Complex expressions retain ordinary `parens` nodes. These changes affect public syntax trees.
|
|
89
91
|
|
|
90
92
|
In a repository checkout, configure the CLI parser directories to include the grammar, then run `script/tree-sitter tags file.hs` to inspect the tags.
|
|
91
93
|
|
|
@@ -95,8 +97,8 @@ fuzzed with:
|
|
|
95
97
|
|
|
96
98
|
```toml
|
|
97
99
|
[dependencies]
|
|
98
|
-
tree-sitter = { package = "willbooster-tree-sitter", version = "
|
|
99
|
-
tree-sitter-haskell = { package = "willbooster-tree-sitter-haskell", version = "
|
|
100
|
+
tree-sitter = { package = "willbooster-tree-sitter", version = "7.0.5" }
|
|
101
|
+
tree-sitter-haskell = { package = "willbooster-tree-sitter-haskell", version = "6" }
|
|
100
102
|
```
|
|
101
103
|
|
|
102
104
|
```rust
|
package/grammar/conflicts.js
CHANGED
|
@@ -1,116 +1,22 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
|
|
3
3
|
conflicts: $ => [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* - Note [Ambiguous syntactic categories]
|
|
8
|
-
* - Note [PatBuilder]
|
|
9
|
-
* - Note [Declaration/signature overlap]
|
|
10
|
-
* - These correspond to `DisambECP`
|
|
11
|
-
*
|
|
12
|
-
* (fun x) y = undefined
|
|
13
|
-
* (fun x -> y) = undefined
|
|
14
|
-
* (fun) <> x = undefined
|
|
15
|
-
*
|
|
16
|
-
* The first one is a regular function with some redundant parens, where `fun` is the declared name.
|
|
17
|
-
* The second one is a pattern binder with a view pattern, where `fun` is a free variable.
|
|
18
|
-
* The third one is an infix pattern binder, where `fun` is a simple varid pattern with redundant parens.
|
|
19
|
-
*
|
|
20
|
-
* These conflicts are also relevant for top-level expression splices, which fundamentally conflict with decls, and
|
|
21
|
-
* since decls start with either `var` or `pat`, they cannot be disambiguated.
|
|
22
|
-
*
|
|
23
|
-
* GHC parses functions and binds as expressions and sorts them into the right LHS in a post-processing step.
|
|
24
|
-
* Since this is not possible in tree-sitter, these conflicts are more function-centric than in GHC.
|
|
25
|
-
*
|
|
26
|
-
* function:
|
|
27
|
-
* func (A a) = a
|
|
28
|
-
*
|
|
29
|
-
* bind variable:
|
|
30
|
-
* a : as = [1, 2, 3]
|
|
31
|
-
*
|
|
32
|
-
* pattern bind infix:
|
|
33
|
-
* a : as = [1, 2, 3]
|
|
34
|
-
*
|
|
35
|
-
* pattern bind prefix:
|
|
36
|
-
* Just 1 = Just 1
|
|
37
|
-
*
|
|
38
|
-
* splice:
|
|
39
|
-
* makeLenses ''A
|
|
40
|
-
*
|
|
41
|
-
* Signature and bind:
|
|
42
|
-
*
|
|
43
|
-
* fun :: Int
|
|
44
|
-
* fun :: Int = 5
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
// Function vs bind
|
|
4
|
+
// GHC DisambECP (notes Ambiguous syntactic categories, PatBuilder and Declaration/signature overlap)
|
|
5
|
+
// disambiguates expressions, patterns and declaration heads after parsing; these alternatives must remain
|
|
6
|
+
// available until following syntax determines their role, including for top-level expression splices.
|
|
48
7
|
[$._function_name, $.pattern],
|
|
49
|
-
|
|
50
|
-
// Function vs bind vs splice
|
|
51
8
|
[$._function_name, $.pattern, $.expression],
|
|
52
|
-
|
|
53
|
-
|
|
9
|
+
[$._grouped_name, $._function_name, $.pattern, $.expression],
|
|
10
|
+
[$._grouped_name, $.expression],
|
|
11
|
+
[$._grouped_name, $.pattern, $.expression],
|
|
12
|
+
[$._grouped_name, $.expression, $.pattern, $._function_name, $._binding_name_parens],
|
|
13
|
+
[$.pattern, $._function_name, $._binding_name_parens],
|
|
14
|
+
[$.pattern, $._binding_name_parens],
|
|
15
|
+
[$._grouped_name, $.expression, $.pattern, $._binding_name_parens],
|
|
54
16
|
[$.pattern, $.expression],
|
|
55
|
-
|
|
56
|
-
// Signature vs bind
|
|
57
17
|
[$.signature, $.pattern],
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Unboxed syntax
|
|
61
|
-
*
|
|
62
|
-
* The hash in the opening parenthesis of unboxed tuples can be an operator.
|
|
63
|
-
*/
|
|
18
|
+
// The hash opening an unboxed tuple can also begin a symbolic operator.
|
|
64
19
|
[$._operator_hash_head, $._unboxed_open],
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Types conflicting with structures that look like types
|
|
68
|
-
*
|
|
69
|
-
* Note: These conflicts have been circumvented by a lookahead mechanism in the scanner.
|
|
70
|
-
* This comment is preserved for reference.
|
|
71
|
-
*
|
|
72
|
-
* `name` and `constructor` use the same terminal symbol, but we cannot reduce `constructor` in prefix data
|
|
73
|
-
* constructor declarations.
|
|
74
|
-
*
|
|
75
|
-
* In GHC, this corresponds to `DisambTD`.
|
|
76
|
-
*
|
|
77
|
-
* > data A = Name Int
|
|
78
|
-
* > data A = Maybe Int :+ Int
|
|
79
|
-
* > data A = Monoid a => A a
|
|
80
|
-
*
|
|
81
|
-
* All of these start with a `name` node.
|
|
82
|
-
* In the first example, the `name` is a data constructor, which will not be reduced to a `type`.
|
|
83
|
-
*
|
|
84
|
-
* In the second example, the `name` is a type constructor applied to another type in the left operand of an infix
|
|
85
|
-
* data constructor, so it must be reduced to `type`, and then to `apply` with the `Int`.
|
|
86
|
-
*
|
|
87
|
-
* In the third example, the `name` is a type constructor applied to a variable resulting in a constraint.
|
|
88
|
-
* It will be reduced the same way as the second example, but using the class tree, which is mostly identical to the
|
|
89
|
-
* type tree, but conflicts since we want to distinguish classes from types granularly.
|
|
90
|
-
*
|
|
91
|
-
* In GHC, these correspond to `mkHsAppTyHeadPV` and `mkHsAppTyPV`.
|
|
92
|
-
*
|
|
93
|
-
* > data A a b = a `C` b => a `A` b
|
|
94
|
-
* > data A a b = a `A` b
|
|
95
|
-
*
|
|
96
|
-
* > data a *** b
|
|
97
|
-
* > data a +++ b => a *** b
|
|
98
|
-
*
|
|
99
|
-
* In GHC, this corresponds to `mkHsOpTyPV`.
|
|
100
|
-
*
|
|
101
|
-
* > class A where type a + b = r | r -> a b
|
|
102
|
-
* > class A where type a + b = (a, b)
|
|
103
|
-
*
|
|
104
|
-
* The first one is a type family declaration, the second one an instance.
|
|
105
|
-
*
|
|
106
|
-
* These were the conflicts that have been turned into scanner lookahead:
|
|
107
|
-
*
|
|
108
|
-
* [$._type_con, $.data_constructor],
|
|
109
|
-
* [$._type_con, $._type_head_name],
|
|
110
|
-
* [$._type_variable, $._tyvar],
|
|
111
|
-
* [$._constructor_ticked, $._tycon_ticked],
|
|
112
|
-
*/
|
|
113
|
-
|
|
114
20
|
],
|
|
115
21
|
|
|
116
22
|
}
|
package/grammar/decl.js
CHANGED
|
@@ -68,7 +68,7 @@ module.exports = {
|
|
|
68
68
|
|
|
69
69
|
_function_name: $ => field('name', $._var),
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
_function_head_parens: $ => parens(
|
|
72
72
|
$,
|
|
73
73
|
choice(
|
|
74
74
|
$._function_head,
|
|
@@ -78,7 +78,7 @@ module.exports = {
|
|
|
78
78
|
|
|
79
79
|
_function_head_patterns: $ => choice(
|
|
80
80
|
$._function_name,
|
|
81
|
-
|
|
81
|
+
$._function_head_parens,
|
|
82
82
|
),
|
|
83
83
|
|
|
84
84
|
/**
|
|
@@ -98,7 +98,7 @@ module.exports = {
|
|
|
98
98
|
|
|
99
99
|
_function_head: $ => choice(
|
|
100
100
|
seq($._function_head_patterns, field('patterns', $.patterns)),
|
|
101
|
-
alias($._function_head_infix, $.infix),
|
|
101
|
+
field('head', alias($._function_head_infix, $.infix)),
|
|
102
102
|
),
|
|
103
103
|
|
|
104
104
|
function: $ => seq(
|
|
@@ -106,6 +106,8 @@ module.exports = {
|
|
|
106
106
|
$._bind_matches,
|
|
107
107
|
),
|
|
108
108
|
|
|
109
|
+
_binding_name_parens: $ => parens($, choice($._var, $._binding_name_parens)),
|
|
110
|
+
|
|
109
111
|
/**
|
|
110
112
|
* The `implicit_variable` here is for:
|
|
111
113
|
* g = let ?par = Impy 5 in f
|
|
@@ -114,14 +116,12 @@ module.exports = {
|
|
|
114
116
|
choice(
|
|
115
117
|
field('pattern', $._pat),
|
|
116
118
|
field('name', $._var),
|
|
119
|
+
field('name', alias($._binding_name_parens, $.parenthesized_name)),
|
|
117
120
|
field('implicit', $.implicit_variable),
|
|
118
121
|
),
|
|
119
122
|
$._bind_matches,
|
|
120
123
|
)),
|
|
121
124
|
|
|
122
|
-
/**
|
|
123
|
-
* This is a supertype.
|
|
124
|
-
*/
|
|
125
125
|
decl: $ => choice(
|
|
126
126
|
$.signature,
|
|
127
127
|
$.function,
|
package/grammar/exp.js
CHANGED
|
@@ -78,9 +78,6 @@ module.exports = {
|
|
|
78
78
|
|
|
79
79
|
_exp_list: $ => brackets($, sep1(',', field('element', $._exp)), optional(',')),
|
|
80
80
|
|
|
81
|
-
/**
|
|
82
|
-
* An expression like `[1,2..20]`.
|
|
83
|
-
*/
|
|
84
81
|
_exp_arithmetic_sequence: $ => brackets(
|
|
85
82
|
$,
|
|
86
83
|
field('from', $._exp),
|
|
@@ -119,9 +116,6 @@ module.exports = {
|
|
|
119
116
|
alias($._exp, $.boolean),
|
|
120
117
|
),
|
|
121
118
|
|
|
122
|
-
/**
|
|
123
|
-
* This is a supertype.
|
|
124
|
-
*/
|
|
125
119
|
qualifiers: $ => seq(sep1(',', field('qualifier', $.qualifier))),
|
|
126
120
|
|
|
127
121
|
_exp_list_comprehension: $ => brackets(
|
|
@@ -171,9 +165,6 @@ module.exports = {
|
|
|
171
165
|
|
|
172
166
|
_exp_statement: $ => $._exp,
|
|
173
167
|
|
|
174
|
-
/**
|
|
175
|
-
* This is a supertype.
|
|
176
|
-
*/
|
|
177
168
|
statement: $ => choice(
|
|
178
169
|
alias($._exp_statement, $.exp),
|
|
179
170
|
alias($.generator, $.bind),
|
|
@@ -278,9 +269,6 @@ module.exports = {
|
|
|
278
269
|
repeat(seq($._tight_dot, field('field', $.variable))),
|
|
279
270
|
),
|
|
280
271
|
|
|
281
|
-
/**
|
|
282
|
-
* A dot-syntax field projection like `var.name.othername`.
|
|
283
|
-
*/
|
|
284
272
|
_exp_projection: $ => seq(
|
|
285
273
|
prec('projection', seq(
|
|
286
274
|
field('expression', $.expression),
|
|
@@ -295,6 +283,10 @@ module.exports = {
|
|
|
295
283
|
|
|
296
284
|
explicit_type: $ => parens($, 'type', field('type', $.type)),
|
|
297
285
|
|
|
286
|
+
_grouped_name: $ => choice($._vars, parens($, $._grouped_name)),
|
|
287
|
+
|
|
288
|
+
parenthesized_name: $ => prec.dynamic(1, parens($, $._grouped_name)),
|
|
289
|
+
|
|
298
290
|
_exp_apply: $ => prec.left('apply', seq(
|
|
299
291
|
field('function', $.expression),
|
|
300
292
|
field('argument', choice(
|
|
@@ -367,10 +359,8 @@ module.exports = {
|
|
|
367
359
|
// top level
|
|
368
360
|
// ------------------------------------------------------------------------
|
|
369
361
|
|
|
370
|
-
/**
|
|
371
|
-
* This is a supertype.
|
|
372
|
-
*/
|
|
373
362
|
expression: $ => choice(
|
|
363
|
+
$.parenthesized_name,
|
|
374
364
|
alias($._exp_infix, $.infix),
|
|
375
365
|
alias($._exp_negation, $.negation),
|
|
376
366
|
alias($._exp_apply, $.apply),
|
package/grammar/precedences.js
CHANGED
|
@@ -41,25 +41,19 @@ module.exports = {
|
|
|
41
41
|
// qualified names
|
|
42
42
|
// ------------------------------------------------
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
* Prioritize shifting over a tight infix dot over reducing to a qualified constructor or module.
|
|
46
|
-
*/
|
|
44
|
+
// Shift a tight dot before reducing a qualified constructor or module.
|
|
47
45
|
[
|
|
48
46
|
'qualifying-module',
|
|
49
47
|
'qualified-id',
|
|
50
48
|
],
|
|
51
49
|
|
|
52
|
-
|
|
53
|
-
* Prioritize qualified variables over record field projection on constructors.
|
|
54
|
-
*/
|
|
50
|
+
// Prefer a qualified variable over record-field projection on a constructor.
|
|
55
51
|
[
|
|
56
52
|
'qualifying-module',
|
|
57
53
|
'con',
|
|
58
54
|
],
|
|
59
55
|
|
|
60
|
-
|
|
61
|
-
* Prioritize qualified names over the infix operator dot in types.
|
|
62
|
-
*/
|
|
56
|
+
// Prefer a qualified type name over an infix dot operator.
|
|
63
57
|
[
|
|
64
58
|
'qualifying-module',
|
|
65
59
|
'type-name',
|
|
@@ -104,6 +98,8 @@ module.exports = {
|
|
|
104
98
|
'apply',
|
|
105
99
|
],
|
|
106
100
|
|
|
101
|
+
[$._grouped_name, $.parenthesized_name, $._exp_parens],
|
|
102
|
+
|
|
107
103
|
],
|
|
108
104
|
|
|
109
105
|
}
|
package/grammar/type.js
CHANGED
|
@@ -29,9 +29,6 @@ module.exports = {
|
|
|
29
29
|
|
|
30
30
|
_type_param_invisible: $ => prefix_at($, field('bind', $.type_param)),
|
|
31
31
|
|
|
32
|
-
/**
|
|
33
|
-
* This is a supertype.
|
|
34
|
-
*/
|
|
35
32
|
type_param: $ => choice(
|
|
36
33
|
alias($._type_param_wildcard, $.wildcard),
|
|
37
34
|
alias($._type_param_invisible, $.invisible),
|
|
@@ -101,9 +98,6 @@ module.exports = {
|
|
|
101
98
|
|
|
102
99
|
_type_apply_arg: $ => choice($.type, alias($._at_type, $.kind_application)),
|
|
103
100
|
|
|
104
|
-
/**
|
|
105
|
-
* Type application, as in `Either e (Int, Text)` or `TypeRep @Int`.
|
|
106
|
-
*/
|
|
107
101
|
_type_apply: $ => prec.left('apply', seq(
|
|
108
102
|
field('constructor', $.type),
|
|
109
103
|
field('argument', $._type_apply_arg),
|
|
@@ -123,9 +117,6 @@ module.exports = {
|
|
|
123
117
|
// unquantified type
|
|
124
118
|
// ------------------------------------------------------------------------
|
|
125
119
|
|
|
126
|
-
/**
|
|
127
|
-
* This is a supertype.
|
|
128
|
-
*/
|
|
129
120
|
type: $ => choice(
|
|
130
121
|
$._type_name,
|
|
131
122
|
alias($._type_star, $.star),
|
|
@@ -240,9 +231,6 @@ module.exports = {
|
|
|
240
231
|
// top level
|
|
241
232
|
// ------------------------------------------------------------------------
|
|
242
233
|
|
|
243
|
-
/**
|
|
244
|
-
* This is a supertype.
|
|
245
|
-
*/
|
|
246
234
|
quantified_type: $ => choice(
|
|
247
235
|
alias($._qtype_function, $.function),
|
|
248
236
|
alias($._qtype_linear_function, $.linear_function),
|
|
@@ -293,7 +281,7 @@ module.exports = {
|
|
|
293
281
|
|
|
294
282
|
_type_head_params: $ => choice(
|
|
295
283
|
$._type_head_name,
|
|
296
|
-
|
|
284
|
+
$._type_head_parens,
|
|
297
285
|
),
|
|
298
286
|
|
|
299
287
|
_type_head_infix: $ => prec('infix', seq(
|
|
@@ -302,26 +290,10 @@ module.exports = {
|
|
|
302
290
|
field('right_operand', $.type_param),
|
|
303
291
|
)),
|
|
304
292
|
|
|
305
|
-
|
|
306
|
-
* A type head introduces the name and parameters in the declaration of a data type/family, type synonym/family, or
|
|
307
|
-
* class.
|
|
308
|
-
*
|
|
309
|
-
* It can be in prefix or infix form:
|
|
310
|
-
*
|
|
311
|
-
* > A a b
|
|
312
|
-
* > a +++ b
|
|
313
|
-
*
|
|
314
|
-
* Parameters can be visible or invisible, the latter marked by a prefix `@`.
|
|
315
|
-
* They can be plain or parenthesized variable names, the latter with an optional kind signature.
|
|
316
|
-
* They can be wildcards.
|
|
317
|
-
*
|
|
318
|
-
* Examples: `a`, `@a`, `(a :: Type)`, `@(_ :: Type -> Type)`
|
|
319
|
-
*
|
|
320
|
-
* The rules are slightly relaxed compared to GHC.
|
|
321
|
-
*/
|
|
293
|
+
// Declaration heads permit variable binders; instance heads below permit full type patterns.
|
|
322
294
|
_type_head: $ => choice(
|
|
323
295
|
seq($._type_head_params, optional(field('patterns', $.type_params))),
|
|
324
|
-
alias($._type_head_infix, $.infix),
|
|
296
|
+
field('head', alias($._type_head_infix, $.infix)),
|
|
325
297
|
),
|
|
326
298
|
|
|
327
299
|
// ------------------------------------------------------------------------
|
|
@@ -339,18 +311,14 @@ module.exports = {
|
|
|
339
311
|
|
|
340
312
|
_type_instance_head_params: $ => choice(
|
|
341
313
|
field('name', $._tycons),
|
|
342
|
-
|
|
314
|
+
$._type_instance_head_parens,
|
|
343
315
|
),
|
|
344
316
|
|
|
345
317
|
type_patterns: $ => repeat1(prec('patterns', $._type_apply_arg)),
|
|
346
318
|
|
|
347
|
-
/**
|
|
348
|
-
* The equivalent of a type head, for type instances, which can contain full type patterns rather than just variable
|
|
349
|
-
* binders.
|
|
350
|
-
*/
|
|
351
319
|
_type_instance_head: $ => choice(
|
|
352
320
|
seq($._type_instance_head_params, optional(field('patterns', $.type_patterns))),
|
|
353
|
-
seq($._cond_infix, alias($._type_infix, $.infix)),
|
|
321
|
+
seq($._cond_infix, field('head', alias($._type_infix, $.infix))),
|
|
354
322
|
),
|
|
355
323
|
|
|
356
324
|
// ------------------------------------------------------------------------
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@willbooster/tree-sitter-haskell",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "Haskell grammar for tree-sitter",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"incremental",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@willbooster/oxfmt-config": "1.2.2",
|
|
49
49
|
"@willbooster/oxlint-config": "1.4.8",
|
|
50
50
|
"@willbooster/wb": "22.26.1",
|
|
51
|
-
"@willbooster/web-tree-sitter": "
|
|
51
|
+
"@willbooster/web-tree-sitter": "7.0.5",
|
|
52
52
|
"conventional-changelog-conventionalcommits": "10.4.0",
|
|
53
53
|
"lefthook": "2.2.1",
|
|
54
54
|
"oxfmt": "0.72.0",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"wrangler": "4.147.0"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
|
-
"@willbooster/web-tree-sitter": "^
|
|
64
|
+
"@willbooster/web-tree-sitter": "^7.0.5"
|
|
65
65
|
},
|
|
66
66
|
"peerDependenciesMeta": {
|
|
67
67
|
"@willbooster/web-tree-sitter": {
|
package/queries/highlights.scm
CHANGED
|
@@ -449,3 +449,13 @@
|
|
|
449
449
|
; ----------------------------------------------------------------------------
|
|
450
450
|
; Spell checking
|
|
451
451
|
(comment) @spell
|
|
452
|
+
|
|
453
|
+
; ----------------------------------------------------------------------------
|
|
454
|
+
; Calls through grouped names
|
|
455
|
+
|
|
456
|
+
(expression/apply
|
|
457
|
+
function: (parenthesized_name
|
|
458
|
+
[
|
|
459
|
+
(variable) @function.call
|
|
460
|
+
(qualified id: (variable) @function.call)
|
|
461
|
+
]))
|
package/queries/locals.scm
CHANGED
package/queries/tags.scm
CHANGED
|
@@ -3,32 +3,44 @@
|
|
|
3
3
|
(declarations
|
|
4
4
|
[
|
|
5
5
|
(function name: [(variable) @name (prefix_id (operator) @name)])
|
|
6
|
-
(function (infix operator: [(operator) @name (infix_id (variable) @name)]))
|
|
6
|
+
(function head: (infix operator: [(operator) @name (infix_id (variable) @name)]))
|
|
7
7
|
(signature name: [(variable) @name (prefix_id (operator) @name)])
|
|
8
8
|
(signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)]))
|
|
9
9
|
] @definition.function)
|
|
10
10
|
|
|
11
11
|
(declarations
|
|
12
|
-
(bind name: [
|
|
12
|
+
(bind name: [
|
|
13
|
+
(variable) @name
|
|
14
|
+
(prefix_id (operator) @name)
|
|
15
|
+
(parenthesized_name [(variable) @name (prefix_id (operator) @name)])
|
|
16
|
+
]) @definition.variable)
|
|
13
17
|
|
|
14
18
|
[
|
|
15
19
|
(class_declarations
|
|
16
20
|
[
|
|
17
21
|
(function name: [(variable) @name (prefix_id (operator) @name)])
|
|
18
|
-
(function (infix operator: [(operator) @name (infix_id (variable) @name)]))
|
|
22
|
+
(function head: (infix operator: [(operator) @name (infix_id (variable) @name)]))
|
|
19
23
|
(signature name: [(variable) @name (prefix_id (operator) @name)])
|
|
20
24
|
(signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)]))
|
|
21
25
|
(default_signature signature: (signature name: [(variable) @name (prefix_id (operator) @name)]))
|
|
22
26
|
(default_signature signature: (signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)])))
|
|
23
|
-
(bind name: [
|
|
27
|
+
(bind name: [
|
|
28
|
+
(variable) @name
|
|
29
|
+
(prefix_id (operator) @name)
|
|
30
|
+
(parenthesized_name [(variable) @name (prefix_id (operator) @name)])
|
|
31
|
+
])
|
|
24
32
|
] @definition.method)
|
|
25
33
|
(instance_declarations
|
|
26
34
|
[
|
|
27
35
|
(function name: [(variable) @name (prefix_id (operator) @name)])
|
|
28
|
-
(function (infix operator: [(operator) @name (infix_id (variable) @name)]))
|
|
36
|
+
(function head: (infix operator: [(operator) @name (infix_id (variable) @name)]))
|
|
29
37
|
(signature name: [(variable) @name (prefix_id (operator) @name)])
|
|
30
38
|
(signature names: (binding_list name: [(variable) @name (prefix_id (operator) @name)]))
|
|
31
|
-
(bind name: [
|
|
39
|
+
(bind name: [
|
|
40
|
+
(variable) @name
|
|
41
|
+
(prefix_id (operator) @name)
|
|
42
|
+
(parenthesized_name [(variable) @name (prefix_id (operator) @name)])
|
|
43
|
+
])
|
|
32
44
|
] @definition.method)
|
|
33
45
|
]
|
|
34
46
|
|
|
@@ -54,9 +66,9 @@
|
|
|
54
66
|
] @definition.class
|
|
55
67
|
|
|
56
68
|
[
|
|
57
|
-
(type_synonym (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)])
|
|
58
|
-
(type_family
|
|
59
|
-
(data_family
|
|
69
|
+
(type_synonym head: (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
70
|
+
(type_family head: (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
71
|
+
(data_family head: (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
60
72
|
] @definition.class
|
|
61
73
|
|
|
62
74
|
(declarations
|
|
@@ -73,10 +85,8 @@
|
|
|
73
85
|
(prefix_id [(operator) @name (constructor_operator) @name])
|
|
74
86
|
(prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
|
|
75
87
|
])
|
|
76
|
-
(data_type
|
|
77
|
-
(
|
|
78
|
-
(newtype . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
79
|
-
(newtype . [(cpp) (comment) (haddock) (pragma)]* . (context) . [(cpp) (comment) (haddock) (pragma)]* . (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
88
|
+
(data_type head: (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
89
|
+
(newtype head: (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)]))
|
|
80
90
|
] @definition.class)
|
|
81
91
|
|
|
82
92
|
(class name: [
|
|
@@ -85,14 +95,14 @@
|
|
|
85
95
|
(prefix_id [(operator) @name (constructor_operator) @name])
|
|
86
96
|
(prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
|
|
87
97
|
]) @definition.interface
|
|
88
|
-
(class (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)])) @definition.interface
|
|
98
|
+
(class head: (infix operator: [(constructor_operator) @name (operator) @name (infix_id (name) @name)])) @definition.interface
|
|
89
99
|
(instance name: [
|
|
90
100
|
(name) @name
|
|
91
101
|
(qualified id: (name) @name)
|
|
92
102
|
(prefix_id [(operator) @name (constructor_operator) @name])
|
|
93
103
|
(prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
|
|
94
104
|
]) @reference.implementation
|
|
95
|
-
(instance (infix operator: [
|
|
105
|
+
(instance head: (infix operator: [
|
|
96
106
|
(constructor_operator) @name
|
|
97
107
|
(operator) @name
|
|
98
108
|
(infix_id (name) @name)
|
|
@@ -106,7 +116,7 @@
|
|
|
106
116
|
(prefix_id [(operator) @name (constructor_operator) @name])
|
|
107
117
|
(prefix_id (qualified id: [(operator) @name (constructor_operator) @name]))
|
|
108
118
|
]) @reference.implementation
|
|
109
|
-
(deriving_instance (infix operator: [
|
|
119
|
+
(deriving_instance head: (infix operator: [
|
|
110
120
|
(constructor_operator) @name
|
|
111
121
|
(operator) @name
|
|
112
122
|
(infix_id (name) @name)
|
|
@@ -123,7 +133,7 @@
|
|
|
123
133
|
(qualified id: (variable) @name)
|
|
124
134
|
(prefix_id (operator) @name)
|
|
125
135
|
(prefix_id (qualified id: (operator) @name))
|
|
126
|
-
(
|
|
136
|
+
(parenthesized_name [
|
|
127
137
|
(variable) @name
|
|
128
138
|
(qualified id: (variable) @name)
|
|
129
139
|
(prefix_id (operator) @name)
|
package/src/node-types.json
CHANGED
|
@@ -317,6 +317,10 @@
|
|
|
317
317
|
"type": "parens",
|
|
318
318
|
"named": true
|
|
319
319
|
},
|
|
320
|
+
{
|
|
321
|
+
"type": "parenthesized_name",
|
|
322
|
+
"named": true
|
|
323
|
+
},
|
|
320
324
|
{
|
|
321
325
|
"type": "prefix_id",
|
|
322
326
|
"named": true
|
|
@@ -1105,6 +1109,10 @@
|
|
|
1105
1109
|
"multiple": false,
|
|
1106
1110
|
"required": false,
|
|
1107
1111
|
"types": [
|
|
1112
|
+
{
|
|
1113
|
+
"type": "parenthesized_name",
|
|
1114
|
+
"named": true
|
|
1115
|
+
},
|
|
1108
1116
|
{
|
|
1109
1117
|
"type": "prefix_id",
|
|
1110
1118
|
"named": true
|
|
@@ -1274,6 +1282,16 @@
|
|
|
1274
1282
|
}
|
|
1275
1283
|
]
|
|
1276
1284
|
},
|
|
1285
|
+
"head": {
|
|
1286
|
+
"multiple": false,
|
|
1287
|
+
"required": false,
|
|
1288
|
+
"types": [
|
|
1289
|
+
{
|
|
1290
|
+
"type": "infix",
|
|
1291
|
+
"named": true
|
|
1292
|
+
}
|
|
1293
|
+
]
|
|
1294
|
+
},
|
|
1277
1295
|
"name": {
|
|
1278
1296
|
"multiple": false,
|
|
1279
1297
|
"required": false,
|
|
@@ -1297,7 +1315,7 @@
|
|
|
1297
1315
|
]
|
|
1298
1316
|
},
|
|
1299
1317
|
"patterns": {
|
|
1300
|
-
"multiple":
|
|
1318
|
+
"multiple": true,
|
|
1301
1319
|
"required": false,
|
|
1302
1320
|
"types": [
|
|
1303
1321
|
{
|
|
@@ -1306,20 +1324,6 @@
|
|
|
1306
1324
|
}
|
|
1307
1325
|
]
|
|
1308
1326
|
}
|
|
1309
|
-
},
|
|
1310
|
-
"children": {
|
|
1311
|
-
"multiple": false,
|
|
1312
|
-
"required": false,
|
|
1313
|
-
"types": [
|
|
1314
|
-
{
|
|
1315
|
-
"type": "infix",
|
|
1316
|
-
"named": true
|
|
1317
|
-
},
|
|
1318
|
-
{
|
|
1319
|
-
"type": "parens",
|
|
1320
|
-
"named": true
|
|
1321
|
-
}
|
|
1322
|
-
]
|
|
1323
1327
|
}
|
|
1324
1328
|
},
|
|
1325
1329
|
{
|
|
@@ -1429,6 +1433,10 @@
|
|
|
1429
1433
|
"multiple": false,
|
|
1430
1434
|
"required": false,
|
|
1431
1435
|
"types": [
|
|
1436
|
+
{
|
|
1437
|
+
"type": "parenthesized_name",
|
|
1438
|
+
"named": true
|
|
1439
|
+
},
|
|
1432
1440
|
{
|
|
1433
1441
|
"type": "prefix_id",
|
|
1434
1442
|
"named": true
|
|
@@ -1592,6 +1600,16 @@
|
|
|
1592
1600
|
"type": "data_family",
|
|
1593
1601
|
"named": true,
|
|
1594
1602
|
"fields": {
|
|
1603
|
+
"head": {
|
|
1604
|
+
"multiple": false,
|
|
1605
|
+
"required": false,
|
|
1606
|
+
"types": [
|
|
1607
|
+
{
|
|
1608
|
+
"type": "infix",
|
|
1609
|
+
"named": true
|
|
1610
|
+
}
|
|
1611
|
+
]
|
|
1612
|
+
},
|
|
1595
1613
|
"kind": {
|
|
1596
1614
|
"multiple": false,
|
|
1597
1615
|
"required": false,
|
|
@@ -1625,7 +1643,7 @@
|
|
|
1625
1643
|
]
|
|
1626
1644
|
},
|
|
1627
1645
|
"patterns": {
|
|
1628
|
-
"multiple":
|
|
1646
|
+
"multiple": true,
|
|
1629
1647
|
"required": false,
|
|
1630
1648
|
"types": [
|
|
1631
1649
|
{
|
|
@@ -1634,20 +1652,6 @@
|
|
|
1634
1652
|
}
|
|
1635
1653
|
]
|
|
1636
1654
|
}
|
|
1637
|
-
},
|
|
1638
|
-
"children": {
|
|
1639
|
-
"multiple": false,
|
|
1640
|
-
"required": false,
|
|
1641
|
-
"types": [
|
|
1642
|
-
{
|
|
1643
|
-
"type": "infix",
|
|
1644
|
-
"named": true
|
|
1645
|
-
},
|
|
1646
|
-
{
|
|
1647
|
-
"type": "parens",
|
|
1648
|
-
"named": true
|
|
1649
|
-
}
|
|
1650
|
-
]
|
|
1651
1655
|
}
|
|
1652
1656
|
},
|
|
1653
1657
|
{
|
|
@@ -1721,9 +1725,19 @@
|
|
|
1721
1725
|
}
|
|
1722
1726
|
]
|
|
1723
1727
|
},
|
|
1724
|
-
"
|
|
1728
|
+
"head": {
|
|
1725
1729
|
"multiple": false,
|
|
1726
1730
|
"required": false,
|
|
1731
|
+
"types": [
|
|
1732
|
+
{
|
|
1733
|
+
"type": "infix",
|
|
1734
|
+
"named": true
|
|
1735
|
+
}
|
|
1736
|
+
]
|
|
1737
|
+
},
|
|
1738
|
+
"kind": {
|
|
1739
|
+
"multiple": true,
|
|
1740
|
+
"required": false,
|
|
1727
1741
|
"types": [
|
|
1728
1742
|
{
|
|
1729
1743
|
"type": "quantified_type",
|
|
@@ -1758,7 +1772,7 @@
|
|
|
1758
1772
|
]
|
|
1759
1773
|
},
|
|
1760
1774
|
"patterns": {
|
|
1761
|
-
"multiple":
|
|
1775
|
+
"multiple": true,
|
|
1762
1776
|
"required": false,
|
|
1763
1777
|
"types": [
|
|
1764
1778
|
{
|
|
@@ -1771,20 +1785,6 @@
|
|
|
1771
1785
|
}
|
|
1772
1786
|
]
|
|
1773
1787
|
}
|
|
1774
|
-
},
|
|
1775
|
-
"children": {
|
|
1776
|
-
"multiple": false,
|
|
1777
|
-
"required": false,
|
|
1778
|
-
"types": [
|
|
1779
|
-
{
|
|
1780
|
-
"type": "infix",
|
|
1781
|
-
"named": true
|
|
1782
|
-
},
|
|
1783
|
-
{
|
|
1784
|
-
"type": "parens",
|
|
1785
|
-
"named": true
|
|
1786
|
-
}
|
|
1787
|
-
]
|
|
1788
1788
|
}
|
|
1789
1789
|
},
|
|
1790
1790
|
{
|
|
@@ -1906,6 +1906,26 @@
|
|
|
1906
1906
|
}
|
|
1907
1907
|
]
|
|
1908
1908
|
},
|
|
1909
|
+
"head": {
|
|
1910
|
+
"multiple": false,
|
|
1911
|
+
"required": false,
|
|
1912
|
+
"types": [
|
|
1913
|
+
{
|
|
1914
|
+
"type": "infix",
|
|
1915
|
+
"named": true
|
|
1916
|
+
}
|
|
1917
|
+
]
|
|
1918
|
+
},
|
|
1919
|
+
"kind": {
|
|
1920
|
+
"multiple": true,
|
|
1921
|
+
"required": false,
|
|
1922
|
+
"types": [
|
|
1923
|
+
{
|
|
1924
|
+
"type": "quantified_type",
|
|
1925
|
+
"named": true
|
|
1926
|
+
}
|
|
1927
|
+
]
|
|
1928
|
+
},
|
|
1909
1929
|
"name": {
|
|
1910
1930
|
"multiple": false,
|
|
1911
1931
|
"required": false,
|
|
@@ -1925,7 +1945,7 @@
|
|
|
1925
1945
|
]
|
|
1926
1946
|
},
|
|
1927
1947
|
"patterns": {
|
|
1928
|
-
"multiple":
|
|
1948
|
+
"multiple": true,
|
|
1929
1949
|
"required": false,
|
|
1930
1950
|
"types": [
|
|
1931
1951
|
{
|
|
@@ -1954,20 +1974,6 @@
|
|
|
1954
1974
|
}
|
|
1955
1975
|
]
|
|
1956
1976
|
}
|
|
1957
|
-
},
|
|
1958
|
-
"children": {
|
|
1959
|
-
"multiple": false,
|
|
1960
|
-
"required": false,
|
|
1961
|
-
"types": [
|
|
1962
|
-
{
|
|
1963
|
-
"type": "infix",
|
|
1964
|
-
"named": true
|
|
1965
|
-
},
|
|
1966
|
-
{
|
|
1967
|
-
"type": "parens",
|
|
1968
|
-
"named": true
|
|
1969
|
-
}
|
|
1970
|
-
]
|
|
1971
1977
|
}
|
|
1972
1978
|
},
|
|
1973
1979
|
{
|
|
@@ -2079,6 +2085,26 @@
|
|
|
2079
2085
|
}
|
|
2080
2086
|
]
|
|
2081
2087
|
},
|
|
2088
|
+
"head": {
|
|
2089
|
+
"multiple": false,
|
|
2090
|
+
"required": false,
|
|
2091
|
+
"types": [
|
|
2092
|
+
{
|
|
2093
|
+
"type": "infix",
|
|
2094
|
+
"named": true
|
|
2095
|
+
}
|
|
2096
|
+
]
|
|
2097
|
+
},
|
|
2098
|
+
"kind": {
|
|
2099
|
+
"multiple": true,
|
|
2100
|
+
"required": false,
|
|
2101
|
+
"types": [
|
|
2102
|
+
{
|
|
2103
|
+
"type": "quantified_type",
|
|
2104
|
+
"named": true
|
|
2105
|
+
}
|
|
2106
|
+
]
|
|
2107
|
+
},
|
|
2082
2108
|
"name": {
|
|
2083
2109
|
"multiple": false,
|
|
2084
2110
|
"required": false,
|
|
@@ -2112,7 +2138,7 @@
|
|
|
2112
2138
|
]
|
|
2113
2139
|
},
|
|
2114
2140
|
"patterns": {
|
|
2115
|
-
"multiple":
|
|
2141
|
+
"multiple": true,
|
|
2116
2142
|
"required": false,
|
|
2117
2143
|
"types": [
|
|
2118
2144
|
{
|
|
@@ -2133,17 +2159,9 @@
|
|
|
2133
2159
|
}
|
|
2134
2160
|
},
|
|
2135
2161
|
"children": {
|
|
2136
|
-
"multiple":
|
|
2162
|
+
"multiple": false,
|
|
2137
2163
|
"required": false,
|
|
2138
2164
|
"types": [
|
|
2139
|
-
{
|
|
2140
|
-
"type": "infix",
|
|
2141
|
-
"named": true
|
|
2142
|
-
},
|
|
2143
|
-
{
|
|
2144
|
-
"type": "parens",
|
|
2145
|
-
"named": true
|
|
2146
|
-
},
|
|
2147
2165
|
{
|
|
2148
2166
|
"type": "quantified_type",
|
|
2149
2167
|
"named": true
|
|
@@ -2767,6 +2785,16 @@
|
|
|
2767
2785
|
}
|
|
2768
2786
|
]
|
|
2769
2787
|
},
|
|
2788
|
+
"head": {
|
|
2789
|
+
"multiple": false,
|
|
2790
|
+
"required": false,
|
|
2791
|
+
"types": [
|
|
2792
|
+
{
|
|
2793
|
+
"type": "infix",
|
|
2794
|
+
"named": true
|
|
2795
|
+
}
|
|
2796
|
+
]
|
|
2797
|
+
},
|
|
2770
2798
|
"match": {
|
|
2771
2799
|
"multiple": true,
|
|
2772
2800
|
"required": false,
|
|
@@ -2809,18 +2837,8 @@
|
|
|
2809
2837
|
}
|
|
2810
2838
|
]
|
|
2811
2839
|
},
|
|
2812
|
-
"parens": {
|
|
2813
|
-
"multiple": false,
|
|
2814
|
-
"required": false,
|
|
2815
|
-
"types": [
|
|
2816
|
-
{
|
|
2817
|
-
"type": "function_head_parens",
|
|
2818
|
-
"named": true
|
|
2819
|
-
}
|
|
2820
|
-
]
|
|
2821
|
-
},
|
|
2822
2840
|
"patterns": {
|
|
2823
|
-
"multiple":
|
|
2841
|
+
"multiple": true,
|
|
2824
2842
|
"required": false,
|
|
2825
2843
|
"types": [
|
|
2826
2844
|
{
|
|
@@ -2839,66 +2857,6 @@
|
|
|
2839
2857
|
}
|
|
2840
2858
|
]
|
|
2841
2859
|
}
|
|
2842
|
-
},
|
|
2843
|
-
"children": {
|
|
2844
|
-
"multiple": false,
|
|
2845
|
-
"required": false,
|
|
2846
|
-
"types": [
|
|
2847
|
-
{
|
|
2848
|
-
"type": "infix",
|
|
2849
|
-
"named": true
|
|
2850
|
-
}
|
|
2851
|
-
]
|
|
2852
|
-
}
|
|
2853
|
-
},
|
|
2854
|
-
{
|
|
2855
|
-
"type": "function_head_parens",
|
|
2856
|
-
"named": true,
|
|
2857
|
-
"fields": {
|
|
2858
|
-
"name": {
|
|
2859
|
-
"multiple": false,
|
|
2860
|
-
"required": false,
|
|
2861
|
-
"types": [
|
|
2862
|
-
{
|
|
2863
|
-
"type": "prefix_id",
|
|
2864
|
-
"named": true
|
|
2865
|
-
},
|
|
2866
|
-
{
|
|
2867
|
-
"type": "variable",
|
|
2868
|
-
"named": true
|
|
2869
|
-
}
|
|
2870
|
-
]
|
|
2871
|
-
},
|
|
2872
|
-
"parens": {
|
|
2873
|
-
"multiple": false,
|
|
2874
|
-
"required": false,
|
|
2875
|
-
"types": [
|
|
2876
|
-
{
|
|
2877
|
-
"type": "function_head_parens",
|
|
2878
|
-
"named": true
|
|
2879
|
-
}
|
|
2880
|
-
]
|
|
2881
|
-
},
|
|
2882
|
-
"patterns": {
|
|
2883
|
-
"multiple": false,
|
|
2884
|
-
"required": false,
|
|
2885
|
-
"types": [
|
|
2886
|
-
{
|
|
2887
|
-
"type": "patterns",
|
|
2888
|
-
"named": true
|
|
2889
|
-
}
|
|
2890
|
-
]
|
|
2891
|
-
}
|
|
2892
|
-
},
|
|
2893
|
-
"children": {
|
|
2894
|
-
"multiple": false,
|
|
2895
|
-
"required": false,
|
|
2896
|
-
"types": [
|
|
2897
|
-
{
|
|
2898
|
-
"type": "infix",
|
|
2899
|
-
"named": true
|
|
2900
|
-
}
|
|
2901
|
-
]
|
|
2902
2860
|
}
|
|
2903
2861
|
},
|
|
2904
2862
|
{
|
|
@@ -3561,6 +3519,26 @@
|
|
|
3561
3519
|
}
|
|
3562
3520
|
]
|
|
3563
3521
|
},
|
|
3522
|
+
"head": {
|
|
3523
|
+
"multiple": false,
|
|
3524
|
+
"required": false,
|
|
3525
|
+
"types": [
|
|
3526
|
+
{
|
|
3527
|
+
"type": "infix",
|
|
3528
|
+
"named": true
|
|
3529
|
+
}
|
|
3530
|
+
]
|
|
3531
|
+
},
|
|
3532
|
+
"kind": {
|
|
3533
|
+
"multiple": true,
|
|
3534
|
+
"required": false,
|
|
3535
|
+
"types": [
|
|
3536
|
+
{
|
|
3537
|
+
"type": "quantified_type",
|
|
3538
|
+
"named": true
|
|
3539
|
+
}
|
|
3540
|
+
]
|
|
3541
|
+
},
|
|
3564
3542
|
"name": {
|
|
3565
3543
|
"multiple": false,
|
|
3566
3544
|
"required": false,
|
|
@@ -3580,7 +3558,7 @@
|
|
|
3580
3558
|
]
|
|
3581
3559
|
},
|
|
3582
3560
|
"patterns": {
|
|
3583
|
-
"multiple":
|
|
3561
|
+
"multiple": true,
|
|
3584
3562
|
"required": false,
|
|
3585
3563
|
"types": [
|
|
3586
3564
|
{
|
|
@@ -3589,20 +3567,6 @@
|
|
|
3589
3567
|
}
|
|
3590
3568
|
]
|
|
3591
3569
|
}
|
|
3592
|
-
},
|
|
3593
|
-
"children": {
|
|
3594
|
-
"multiple": false,
|
|
3595
|
-
"required": false,
|
|
3596
|
-
"types": [
|
|
3597
|
-
{
|
|
3598
|
-
"type": "infix",
|
|
3599
|
-
"named": true
|
|
3600
|
-
},
|
|
3601
|
-
{
|
|
3602
|
-
"type": "parens",
|
|
3603
|
-
"named": true
|
|
3604
|
-
}
|
|
3605
|
-
]
|
|
3606
3570
|
}
|
|
3607
3571
|
},
|
|
3608
3572
|
{
|
|
@@ -3678,6 +3642,16 @@
|
|
|
3678
3642
|
"type": "kind_signature",
|
|
3679
3643
|
"named": true,
|
|
3680
3644
|
"fields": {
|
|
3645
|
+
"head": {
|
|
3646
|
+
"multiple": false,
|
|
3647
|
+
"required": false,
|
|
3648
|
+
"types": [
|
|
3649
|
+
{
|
|
3650
|
+
"type": "infix",
|
|
3651
|
+
"named": true
|
|
3652
|
+
}
|
|
3653
|
+
]
|
|
3654
|
+
},
|
|
3681
3655
|
"kind": {
|
|
3682
3656
|
"multiple": false,
|
|
3683
3657
|
"required": true,
|
|
@@ -3711,7 +3685,7 @@
|
|
|
3711
3685
|
]
|
|
3712
3686
|
},
|
|
3713
3687
|
"patterns": {
|
|
3714
|
-
"multiple":
|
|
3688
|
+
"multiple": true,
|
|
3715
3689
|
"required": false,
|
|
3716
3690
|
"types": [
|
|
3717
3691
|
{
|
|
@@ -3720,20 +3694,6 @@
|
|
|
3720
3694
|
}
|
|
3721
3695
|
]
|
|
3722
3696
|
}
|
|
3723
|
-
},
|
|
3724
|
-
"children": {
|
|
3725
|
-
"multiple": false,
|
|
3726
|
-
"required": false,
|
|
3727
|
-
"types": [
|
|
3728
|
-
{
|
|
3729
|
-
"type": "infix",
|
|
3730
|
-
"named": true
|
|
3731
|
-
},
|
|
3732
|
-
{
|
|
3733
|
-
"type": "parens",
|
|
3734
|
-
"named": true
|
|
3735
|
-
}
|
|
3736
|
-
]
|
|
3737
3697
|
}
|
|
3738
3698
|
},
|
|
3739
3699
|
{
|
|
@@ -4268,9 +4228,19 @@
|
|
|
4268
4228
|
}
|
|
4269
4229
|
]
|
|
4270
4230
|
},
|
|
4271
|
-
"
|
|
4231
|
+
"head": {
|
|
4272
4232
|
"multiple": false,
|
|
4273
4233
|
"required": false,
|
|
4234
|
+
"types": [
|
|
4235
|
+
{
|
|
4236
|
+
"type": "infix",
|
|
4237
|
+
"named": true
|
|
4238
|
+
}
|
|
4239
|
+
]
|
|
4240
|
+
},
|
|
4241
|
+
"kind": {
|
|
4242
|
+
"multiple": true,
|
|
4243
|
+
"required": false,
|
|
4274
4244
|
"types": [
|
|
4275
4245
|
{
|
|
4276
4246
|
"type": "quantified_type",
|
|
@@ -4305,7 +4275,7 @@
|
|
|
4305
4275
|
]
|
|
4306
4276
|
},
|
|
4307
4277
|
"patterns": {
|
|
4308
|
-
"multiple":
|
|
4278
|
+
"multiple": true,
|
|
4309
4279
|
"required": false,
|
|
4310
4280
|
"types": [
|
|
4311
4281
|
{
|
|
@@ -4318,20 +4288,6 @@
|
|
|
4318
4288
|
}
|
|
4319
4289
|
]
|
|
4320
4290
|
}
|
|
4321
|
-
},
|
|
4322
|
-
"children": {
|
|
4323
|
-
"multiple": false,
|
|
4324
|
-
"required": false,
|
|
4325
|
-
"types": [
|
|
4326
|
-
{
|
|
4327
|
-
"type": "infix",
|
|
4328
|
-
"named": true
|
|
4329
|
-
},
|
|
4330
|
-
{
|
|
4331
|
-
"type": "parens",
|
|
4332
|
-
"named": true
|
|
4333
|
-
}
|
|
4334
|
-
]
|
|
4335
4291
|
}
|
|
4336
4292
|
},
|
|
4337
4293
|
{
|
|
@@ -4401,42 +4357,6 @@
|
|
|
4401
4357
|
}
|
|
4402
4358
|
]
|
|
4403
4359
|
},
|
|
4404
|
-
"kind": {
|
|
4405
|
-
"multiple": false,
|
|
4406
|
-
"required": false,
|
|
4407
|
-
"types": [
|
|
4408
|
-
{
|
|
4409
|
-
"type": "quantified_type",
|
|
4410
|
-
"named": true
|
|
4411
|
-
}
|
|
4412
|
-
]
|
|
4413
|
-
},
|
|
4414
|
-
"name": {
|
|
4415
|
-
"multiple": false,
|
|
4416
|
-
"required": false,
|
|
4417
|
-
"types": [
|
|
4418
|
-
{
|
|
4419
|
-
"type": "name",
|
|
4420
|
-
"named": true
|
|
4421
|
-
},
|
|
4422
|
-
{
|
|
4423
|
-
"type": "prefix_id",
|
|
4424
|
-
"named": true
|
|
4425
|
-
},
|
|
4426
|
-
{
|
|
4427
|
-
"type": "prefix_list",
|
|
4428
|
-
"named": true
|
|
4429
|
-
},
|
|
4430
|
-
{
|
|
4431
|
-
"type": "qualified",
|
|
4432
|
-
"named": true
|
|
4433
|
-
},
|
|
4434
|
-
{
|
|
4435
|
-
"type": "unit",
|
|
4436
|
-
"named": true
|
|
4437
|
-
}
|
|
4438
|
-
]
|
|
4439
|
-
},
|
|
4440
4360
|
"pattern": {
|
|
4441
4361
|
"multiple": false,
|
|
4442
4362
|
"required": false,
|
|
@@ -4455,20 +4375,6 @@
|
|
|
4455
4375
|
}
|
|
4456
4376
|
]
|
|
4457
4377
|
},
|
|
4458
|
-
"patterns": {
|
|
4459
|
-
"multiple": false,
|
|
4460
|
-
"required": false,
|
|
4461
|
-
"types": [
|
|
4462
|
-
{
|
|
4463
|
-
"type": "type_params",
|
|
4464
|
-
"named": true
|
|
4465
|
-
},
|
|
4466
|
-
{
|
|
4467
|
-
"type": "type_patterns",
|
|
4468
|
-
"named": true
|
|
4469
|
-
}
|
|
4470
|
-
]
|
|
4471
|
-
},
|
|
4472
4378
|
"type": {
|
|
4473
4379
|
"multiple": false,
|
|
4474
4380
|
"required": false,
|
|
@@ -4496,10 +4402,6 @@
|
|
|
4496
4402
|
"type": "constraints",
|
|
4497
4403
|
"named": true
|
|
4498
4404
|
},
|
|
4499
|
-
{
|
|
4500
|
-
"type": "infix",
|
|
4501
|
-
"named": true
|
|
4502
|
-
},
|
|
4503
4405
|
{
|
|
4504
4406
|
"type": "invisible",
|
|
4505
4407
|
"named": true
|
|
@@ -4515,6 +4417,29 @@
|
|
|
4515
4417
|
]
|
|
4516
4418
|
}
|
|
4517
4419
|
},
|
|
4420
|
+
{
|
|
4421
|
+
"type": "parenthesized_name",
|
|
4422
|
+
"named": true,
|
|
4423
|
+
"fields": {},
|
|
4424
|
+
"children": {
|
|
4425
|
+
"multiple": false,
|
|
4426
|
+
"required": true,
|
|
4427
|
+
"types": [
|
|
4428
|
+
{
|
|
4429
|
+
"type": "prefix_id",
|
|
4430
|
+
"named": true
|
|
4431
|
+
},
|
|
4432
|
+
{
|
|
4433
|
+
"type": "qualified",
|
|
4434
|
+
"named": true
|
|
4435
|
+
},
|
|
4436
|
+
{
|
|
4437
|
+
"type": "variable",
|
|
4438
|
+
"named": true
|
|
4439
|
+
}
|
|
4440
|
+
]
|
|
4441
|
+
}
|
|
4442
|
+
},
|
|
4518
4443
|
{
|
|
4519
4444
|
"type": "pattern_guard",
|
|
4520
4445
|
"named": true,
|
|
@@ -5630,6 +5555,16 @@
|
|
|
5630
5555
|
}
|
|
5631
5556
|
]
|
|
5632
5557
|
},
|
|
5558
|
+
"head": {
|
|
5559
|
+
"multiple": false,
|
|
5560
|
+
"required": false,
|
|
5561
|
+
"types": [
|
|
5562
|
+
{
|
|
5563
|
+
"type": "infix",
|
|
5564
|
+
"named": true
|
|
5565
|
+
}
|
|
5566
|
+
]
|
|
5567
|
+
},
|
|
5633
5568
|
"kind": {
|
|
5634
5569
|
"multiple": false,
|
|
5635
5570
|
"required": false,
|
|
@@ -5663,7 +5598,7 @@
|
|
|
5663
5598
|
]
|
|
5664
5599
|
},
|
|
5665
5600
|
"patterns": {
|
|
5666
|
-
"multiple":
|
|
5601
|
+
"multiple": true,
|
|
5667
5602
|
"required": false,
|
|
5668
5603
|
"types": [
|
|
5669
5604
|
{
|
|
@@ -5677,14 +5612,6 @@
|
|
|
5677
5612
|
"multiple": true,
|
|
5678
5613
|
"required": false,
|
|
5679
5614
|
"types": [
|
|
5680
|
-
{
|
|
5681
|
-
"type": "infix",
|
|
5682
|
-
"named": true
|
|
5683
|
-
},
|
|
5684
|
-
{
|
|
5685
|
-
"type": "parens",
|
|
5686
|
-
"named": true
|
|
5687
|
-
},
|
|
5688
5615
|
{
|
|
5689
5616
|
"type": "type_family_injectivity",
|
|
5690
5617
|
"named": true
|
|
@@ -5756,6 +5683,26 @@
|
|
|
5756
5683
|
}
|
|
5757
5684
|
]
|
|
5758
5685
|
},
|
|
5686
|
+
"head": {
|
|
5687
|
+
"multiple": false,
|
|
5688
|
+
"required": false,
|
|
5689
|
+
"types": [
|
|
5690
|
+
{
|
|
5691
|
+
"type": "infix",
|
|
5692
|
+
"named": true
|
|
5693
|
+
}
|
|
5694
|
+
]
|
|
5695
|
+
},
|
|
5696
|
+
"kind": {
|
|
5697
|
+
"multiple": true,
|
|
5698
|
+
"required": false,
|
|
5699
|
+
"types": [
|
|
5700
|
+
{
|
|
5701
|
+
"type": "quantified_type",
|
|
5702
|
+
"named": true
|
|
5703
|
+
}
|
|
5704
|
+
]
|
|
5705
|
+
},
|
|
5759
5706
|
"name": {
|
|
5760
5707
|
"multiple": false,
|
|
5761
5708
|
"required": false,
|
|
@@ -5775,7 +5722,7 @@
|
|
|
5775
5722
|
]
|
|
5776
5723
|
},
|
|
5777
5724
|
"patterns": {
|
|
5778
|
-
"multiple":
|
|
5725
|
+
"multiple": true,
|
|
5779
5726
|
"required": false,
|
|
5780
5727
|
"types": [
|
|
5781
5728
|
{
|
|
@@ -5786,17 +5733,9 @@
|
|
|
5786
5733
|
}
|
|
5787
5734
|
},
|
|
5788
5735
|
"children": {
|
|
5789
|
-
"multiple":
|
|
5736
|
+
"multiple": false,
|
|
5790
5737
|
"required": true,
|
|
5791
5738
|
"types": [
|
|
5792
|
-
{
|
|
5793
|
-
"type": "infix",
|
|
5794
|
-
"named": true
|
|
5795
|
-
},
|
|
5796
|
-
{
|
|
5797
|
-
"type": "parens",
|
|
5798
|
-
"named": true
|
|
5799
|
-
},
|
|
5800
5739
|
{
|
|
5801
5740
|
"type": "quantified_type",
|
|
5802
5741
|
"named": true
|
|
@@ -5866,6 +5805,16 @@
|
|
|
5866
5805
|
"type": "type_synonym",
|
|
5867
5806
|
"named": true,
|
|
5868
5807
|
"fields": {
|
|
5808
|
+
"head": {
|
|
5809
|
+
"multiple": false,
|
|
5810
|
+
"required": false,
|
|
5811
|
+
"types": [
|
|
5812
|
+
{
|
|
5813
|
+
"type": "infix",
|
|
5814
|
+
"named": true
|
|
5815
|
+
}
|
|
5816
|
+
]
|
|
5817
|
+
},
|
|
5869
5818
|
"name": {
|
|
5870
5819
|
"multiple": false,
|
|
5871
5820
|
"required": false,
|
|
@@ -5889,7 +5838,7 @@
|
|
|
5889
5838
|
]
|
|
5890
5839
|
},
|
|
5891
5840
|
"patterns": {
|
|
5892
|
-
"multiple":
|
|
5841
|
+
"multiple": true,
|
|
5893
5842
|
"required": false,
|
|
5894
5843
|
"types": [
|
|
5895
5844
|
{
|
|
@@ -5912,20 +5861,6 @@
|
|
|
5912
5861
|
}
|
|
5913
5862
|
]
|
|
5914
5863
|
}
|
|
5915
|
-
},
|
|
5916
|
-
"children": {
|
|
5917
|
-
"multiple": false,
|
|
5918
|
-
"required": false,
|
|
5919
|
-
"types": [
|
|
5920
|
-
{
|
|
5921
|
-
"type": "infix",
|
|
5922
|
-
"named": true
|
|
5923
|
-
},
|
|
5924
|
-
{
|
|
5925
|
-
"type": "parens",
|
|
5926
|
-
"named": true
|
|
5927
|
-
}
|
|
5928
|
-
]
|
|
5929
5864
|
}
|
|
5930
5865
|
},
|
|
5931
5866
|
{
|
package/tree-sitter-haskell.wasm
CHANGED
|
Binary file
|