2 "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
4 "word": "lower_identifier",
17 "name": "module_declaration"
38 "name": "_declaration"
51 "name": "_declaration"
65 "module_declaration": {
77 "name": "upper_identifier"
87 "name": "import_declaration"
91 "name": "export_declaration"
95 "name": "_declaration_body"
99 "_declaration_body": {
104 "name": "data_declaration"
108 "name": "type_alias_declaration"
112 "name": "source_declaration"
116 "name": "view_declaration"
120 "name": "derived_declaration"
124 "name": "fun_declaration"
128 "name": "trait_declaration"
132 "name": "impl_declaration"
136 "name": "migrate_declaration"
140 "name": "route_declaration"
144 "name": "route_composite_declaration"
148 "name": "subset_constraint"
152 "import_declaration": {
164 "name": "import_path"
182 "name": "import_item"
195 "name": "import_item"
231 "name": "lower_identifier"
244 "name": "lower_identifier"
258 "name": "lower_identifier"
262 "name": "upper_identifier"
266 "export_declaration": {
275 "name": "_declaration_body"
279 "data_declaration": {
291 "name": "upper_identifier"
301 "name": "lower_identifier"
320 "name": "constructor_def"
333 "name": "constructor_def"
352 "name": "deriving_clause"
374 "name": "constructor_def"
382 "name": "deriving_clause"
416 "name": "upper_identifier"
424 "name": "record_type_body"
445 "name": "upper_identifier"
458 "name": "upper_identifier"
471 "type_alias_declaration": {
483 "name": "upper_identifier"
493 "name": "lower_identifier"
511 "source_declaration": {
553 "view_declaration": {
569 "name": "_block_body"
574 "derived_declaration": {
579 "name": "derived_ref"
590 "name": "_block_body"
603 "name": "lower_identifier"
627 "name": "type_scheme"
646 "name": "_block_body"
663 "name": "type_scheme"
672 "trait_declaration": {
691 "name": "upper_identifier"
701 "name": "_trait_param"
718 "name": "_trait_item"
731 "name": "_trait_item"
745 "type": "PREC_DYNAMIC",
752 "name": "upper_identifier"
773 "name": "lower_identifier"
784 "name": "lower_identifier"
807 "name": "trait_method"
811 "name": "trait_associated_type"
815 "name": "trait_default_body"
820 "type": "PREC_RIGHT",
830 "name": "lower_identifier"
848 "name": "type_scheme"
860 "name": "_pattern_atom"
869 "name": "_expression"
878 "trait_associated_type": {
887 "name": "upper_identifier"
893 "name": "lower_identifier"
898 "trait_default_body": {
903 "name": "lower_identifier"
909 "name": "_pattern_atom"
918 "name": "_expression"
922 "impl_declaration": {
950 "name": "upper_identifier"
1008 "name": "impl_method"
1012 "name": "impl_associated_type"
1024 "name": "lower_identifier"
1034 "name": "_pattern_atom"
1047 "name": "_block_body"
1052 "impl_associated_type": {
1061 "name": "upper_identifier"
1067 "name": "_type_atom"
1080 "migrate_declaration": {
1092 "name": "source_ref"
1128 "name": "_expression"
1133 "route_declaration": {
1145 "name": "upper_identifier"
1161 "name": "_route_item"
1174 "name": "_route_item"
1187 "route_composite_declaration": {
1199 "name": "upper_identifier"
1211 "name": "upper_identifier"
1224 "name": "upper_identifier"
1238 "name": "route_entry"
1242 "name": "route_path_group"
1246 "route_path_group": {
1253 "name": "_route_path_segment"
1265 "name": "_route_item"
1278 "name": "_route_item"
1292 "type": "PREC_RIGHT",
1302 "name": "http_method"
1312 "name": "_route_path_segment"
1319 "name": "record_type_body"
1334 "name": "record_type_body"
1348 "name": "record_type_body"
1379 "name": "record_type_body"
1394 "name": "constructor",
1397 "name": "upper_identifier"
1403 "_route_path_segment": {
1418 "name": "lower_identifier"
1431 "type": "IMMEDIATE_TOKEN",
1442 "name": "lower_identifier"
1494 "subset_constraint": {
1499 "name": "_constraint_path"
1507 "name": "_constraint_path"
1511 "_constraint_path": {
1519 "name": "source_ref"
1527 "name": "lower_identifier"
1533 "name": "source_ref"
1547 "name": "constraint"
1567 "name": "upper_identifier"
1573 "name": "_type_atom"
1583 "name": "function_type"
1587 "name": "refined_type"
1596 "type": "PREC_RIGHT",
1606 "name": "refined_type"
1644 "name": "predicate",
1647 "name": "_expression"
1663 "name": "type_application"
1667 "name": "_type_atom"
1671 "type_application": {
1672 "type": "PREC_LEFT",
1682 "name": "named_type"
1686 "name": "type_application"
1692 "name": "_type_atom"
1702 "name": "named_type"
1706 "name": "type_variable"
1710 "name": "record_type"
1714 "name": "relation_type"
1718 "name": "variant_type"
1726 "name": "parenthesized_type"
1732 "name": "upper_identifier"
1736 "name": "lower_identifier"
1759 "name": "type_field"
1772 "name": "type_field"
1791 "name": "lower_identifier"
1848 "name": "lower_identifier"
1852 "name": "source_ref"
1858 "name": "lower_identifier"
1862 "record_type_body": {
1877 "name": "type_field"
1890 "name": "type_field"
1916 "name": "lower_identifier"
1970 "name": "variant_constructor"
1983 "name": "variant_constructor"
2002 "name": "lower_identifier"
2017 "variant_constructor": {
2022 "name": "upper_identifier"
2029 "name": "record_type_body"
2042 "parenthesized_type": {
2064 "name": "_expression"
2075 "name": "_expression"
2090 "name": "lambda_expression"
2094 "name": "if_expression"
2098 "name": "case_expression"
2102 "name": "do_expression"
2106 "name": "set_expression"
2110 "name": "replace_set_expression"
2114 "name": "yield_expression"
2118 "name": "atomic_expression"
2122 "name": "refine_expression"
2126 "name": "let_in_expression"
2130 "name": "_binary_expression"
2134 "lambda_expression": {
2135 "type": "PREC_RIGHT",
2148 "name": "_pattern_atom"
2160 "name": "_expression"
2167 "type": "PREC_RIGHT",
2178 "name": "condition",
2181 "name": "_expression"
2193 "name": "_expression"
2205 "name": "_expression"
2211 "case_expression": {
2212 "type": "PREC_RIGHT",
2223 "name": "scrutinee",
2226 "name": "_expression"
2270 "type": "PREC_RIGHT",
2292 "name": "_expression"
2314 "name": "_statement"
2327 "name": "_statement"
2345 "name": "bind_statement"
2349 "name": "let_statement"
2353 "name": "where_statement"
2357 "name": "_expression"
2362 "type": "PREC_DYNAMIC",
2372 "name": "_bind_pattern"
2384 "name": "_expression"
2395 "name": "constructor_pattern"
2399 "name": "variable_pattern"
2403 "name": "wildcard_pattern"
2407 "name": "record_pattern"
2411 "name": "list_pattern"
2415 "name": "parenthesized_pattern"
2443 "name": "_expression"
2448 "where_statement": {
2449 "type": "PREC_RIGHT",
2460 "name": "condition",
2463 "name": "_expression"
2470 "type": "PREC_RIGHT",
2484 "name": "source_ref"
2496 "name": "_expression"
2502 "replace_set_expression": {
2503 "type": "PREC_RIGHT",
2521 "name": "source_ref"
2533 "name": "_expression"
2539 "yield_expression": {
2540 "type": "PREC_RIGHT",
2554 "name": "_expression"
2560 "atomic_expression": {
2561 "type": "PREC_RIGHT",
2575 "name": "_expression"
2581 "refine_expression": {
2582 "type": "PREC_RIGHT",
2596 "name": "_expression"
2602 "let_in_expression": {
2603 "type": "PREC_RIGHT",
2622 "name": "_expression"
2630 "name": "_expression"
2635 "_binary_expression": {
2640 "name": "pipe_expression"
2644 "name": "or_expression"
2648 "name": "and_expression"
2652 "name": "equality_expression"
2656 "name": "comparison_expression"
2660 "name": "concat_expression"
2664 "name": "add_expression"
2668 "name": "mul_expression"
2672 "name": "_unary_expression"
2676 "pipe_expression": {
2677 "type": "PREC_LEFT",
2684 "name": "_binary_expression"
2692 "name": "_binary_expression"
2698 "type": "PREC_LEFT",
2705 "name": "_binary_expression"
2713 "name": "_binary_expression"
2719 "type": "PREC_LEFT",
2726 "name": "_binary_expression"
2734 "name": "_binary_expression"
2739 "equality_expression": {
2740 "type": "PREC_LEFT",
2747 "name": "_binary_expression"
2764 "name": "_binary_expression"
2769 "comparison_expression": {
2770 "type": "PREC_LEFT",
2777 "name": "_binary_expression"
2802 "name": "_binary_expression"
2807 "concat_expression": {
2808 "type": "PREC_RIGHT",
2815 "name": "_binary_expression"
2823 "name": "_binary_expression"
2829 "type": "PREC_LEFT",
2836 "name": "_binary_expression"
2853 "name": "_binary_expression"
2859 "type": "PREC_LEFT",
2866 "name": "_binary_expression"
2883 "name": "_binary_expression"
2888 "_unary_expression": {
2893 "name": "negation_expression"
2897 "name": "not_expression"
2901 "name": "_application_expression"
2905 "negation_expression": {
2917 "name": "_application_expression"
2934 "name": "_application_expression"
2939 "_application_expression": {
2944 "name": "application_expression"
2948 "name": "_postfix_expression"
2952 "application_expression": {
2953 "type": "PREC_LEFT",
2960 "name": "_application_expression"
2964 "name": "_postfix_expression"
2969 "_postfix_expression": {
2974 "name": "field_access_expression"
2978 "name": "temporal_expression"
2982 "name": "_atom_expression"
2986 "field_access_expression": {
2987 "type": "PREC_LEFT",
2994 "name": "_postfix_expression"
3002 "name": "lower_identifier"
3007 "temporal_expression": {
3008 "type": "PREC_LEFT",
3015 "name": "_postfix_expression"
3027 "name": "_expression"
3036 "_atom_expression": {
3045 "name": "variable_expression"
3049 "name": "constructor_expression"
3053 "name": "source_ref"
3057 "name": "derived_ref"
3061 "name": "record_expression"
3065 "name": "record_update_expression"
3069 "name": "list_expression"
3073 "name": "parenthesized_expression"
3077 "variable_expression": {
3079 "name": "lower_identifier"
3081 "constructor_expression": {
3083 "name": "upper_identifier"
3096 "value": "[a-z_][a-zA-Z0-9_']*"
3112 "value": "[a-z_][a-zA-Z0-9_']*"
3117 "record_expression": {
3132 "name": "record_field"
3145 "name": "record_field"
3174 "name": "lower_identifier"
3186 "name": "_expression"
3196 "name": "_expression"
3201 "record_update_expression": {
3213 "name": "_expression"
3225 "name": "update_field"
3238 "name": "update_field"
3259 "name": "lower_identifier"
3271 "name": "_expression"
3276 "list_expression": {
3291 "name": "_expression"
3304 "name": "_expression"
3322 "parenthesized_expression": {
3331 "name": "_expression"
3344 "name": "constructor_pattern"
3348 "name": "_pattern_atom"
3352 "constructor_pattern": {
3360 "name": "constructor",
3363 "name": "upper_identifier"
3371 "name": "_pattern_atom"
3382 "name": "variable_pattern"
3386 "name": "wildcard_pattern"
3390 "name": "literal_pattern"
3394 "name": "record_pattern"
3398 "name": "list_pattern"
3402 "name": "parenthesized_pattern"
3406 "variable_pattern": {
3408 "name": "lower_identifier"
3410 "wildcard_pattern": {
3414 "literal_pattern": {
3433 "name": "field_pattern"
3446 "name": "field_pattern"
3475 "name": "lower_identifier"
3494 "name": "lower_identifier"
3544 "parenthesized_pattern": {
3566 "name": "integer_literal"
3570 "name": "float_literal"
3574 "name": "string_literal"
3578 "name": "boolean_literal"
3582 "name": "bytes_literal"
3586 "integer_literal": {
3588 "value": "[0-9][0-9_]*"
3592 "value": "[0-9][0-9_]*\\.[0-9][0-9_]*"
3608 "name": "escape_sequence"
3612 "name": "string_content"
3623 "boolean_literal": {
3650 "name": "escape_sequence"
3654 "name": "string_content"
3665 "escape_sequence": {
3666 "type": "IMMEDIATE_TOKEN",
3672 "value": "\\\\([\\\\\\\"ntr]|x[0-9a-fA-F]{2})"
3677 "type": "IMMEDIATE_TOKEN",
3683 "value": "[^\"\\\\]+"
3687 "lower_identifier": {
3689 "value": "[a-z_][a-zA-Z0-9_']*"
3691 "upper_identifier": {
3693 "value": "[A-Z][a-zA-Z0-9_']*"
3715 "value": "[ \\t\\r]"
3723 "name": "_line_cont"
3733 "variable_expression"
3749 "variable_expression"
3757 "trait_default_body"
3776 "name": "_line_cont"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list