/* Automatically generated by tree-sitter v0.25.3 */

#include "tree_sitter/parser.h"

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#define LANGUAGE_VERSION 15
#define STATE_COUNT 1060
#define LARGE_STATE_COUNT 20
#define SYMBOL_COUNT 201
#define ALIAS_COUNT 2
#define TOKEN_COUNT 85
#define EXTERNAL_TOKEN_COUNT 6
#define FIELD_COUNT 35
#define MAX_ALIAS_SEQUENCE_LENGTH 9
#define MAX_RESERVED_WORD_SET_SIZE 0
#define PRODUCTION_ID_COUNT 99
#define SUPERTYPE_COUNT 0

enum ts_symbol_identifiers {
  sym_lower_case_identifier = 1,
  anon_sym_LBRACE_DASH = 2,
  anon_sym_DASH_RBRACE = 3,
  sym_line_comment = 4,
  anon_sym_LPAREN = 5,
  anon_sym_COMMA = 6,
  anon_sym_RPAREN = 7,
  sym__upper_case_identifier_without_leading_whitespace = 8,
  sym__lower_case_identifier_without_leading_whitespace = 9,
  anon_sym_DOT = 10,
  anon_sym_PIPE = 11,
  anon_sym_LBRACE = 12,
  anon_sym_RBRACE = 13,
  anon_sym_SQUOTE = 14,
  aux_sym_char_constant_expr_token1 = 15,
  anon_sym_DQUOTE_DQUOTE_DQUOTE = 16,
  aux_sym_string_constant_expr_token1 = 17,
  anon_sym_DQUOTE = 18,
  aux_sym_string_constant_expr_token2 = 19,
  anon_sym_LBRACK = 20,
  anon_sym_RBRACK = 21,
  anon_sym_else = 22,
  anon_sym_if = 23,
  anon_sym_then = 24,
  anon_sym_let = 25,
  anon_sym_in = 26,
  anon_sym_COLON_COLON = 27,
  anon_sym_left = 28,
  anon_sym_right = 29,
  anon_sym_non = 30,
  anon_sym_LBRACKglsl_PIPE = 31,
  anon_sym_PIPE_RBRACK = 32,
  sym_upper_case_identifier = 33,
  sym_number_literal = 34,
  sym_string_escape = 35,
  sym_invalid_string_escape = 36,
  sym_module = 37,
  sym_effect = 38,
  sym_where = 39,
  sym_import = 40,
  sym_as = 41,
  sym_exposing = 42,
  sym_case = 43,
  sym_of = 44,
  sym_type = 45,
  sym_alias = 46,
  sym_port = 47,
  sym_infix = 48,
  sym_double_dot = 49,
  sym_eq = 50,
  sym_arrow = 51,
  sym_colon = 52,
  sym_backslash = 53,
  sym_underscore = 54,
  sym_dot = 55,
  anon_sym_PLUS = 56,
  anon_sym_DASH = 57,
  anon_sym_STAR = 58,
  anon_sym_SLASH = 59,
  anon_sym_SLASH_SLASH = 60,
  anon_sym_CARET = 61,
  anon_sym_EQ_EQ = 62,
  anon_sym_SLASH_EQ = 63,
  anon_sym_LT = 64,
  anon_sym_GT = 65,
  anon_sym_LT_EQ = 66,
  anon_sym_GT_EQ = 67,
  anon_sym_AMP_AMP = 68,
  anon_sym_PIPE_PIPE = 69,
  anon_sym_PLUS_PLUS = 70,
  anon_sym_LT_PIPE = 71,
  anon_sym_PIPE_GT = 72,
  anon_sym_LT_LT = 73,
  anon_sym_GT_GT = 74,
  anon_sym_LT_SLASH_GT = 75,
  anon_sym_LT_QMARK_GT = 76,
  anon_sym_PIPE_DOT = 77,
  anon_sym_PIPE_EQ = 78,
  sym__virtual_end_decl = 79,
  sym__virtual_open_section = 80,
  sym__virtual_end_section = 81,
  sym_minus_without_trailing_whitespace = 82,
  sym_glsl_content = 83,
  sym__block_comment_content = 84,
  sym_file = 85,
  sym_block_comment = 86,
  sym_module_declaration = 87,
  aux_sym__import_list = 88,
  aux_sym__top_decl_list = 89,
  sym_exposing_list = 90,
  sym_exposed_value = 91,
  sym_exposed_type = 92,
  sym_exposed_union_constructors = 93,
  sym_exposed_operator = 94,
  sym__dot_without_leading_whitespace = 95,
  sym_upper_case_qid = 96,
  sym_value_qid = 97,
  sym_field_accessor_function_expr = 98,
  sym_import_clause = 99,
  sym_as_clause = 100,
  sym_value_declaration = 101,
  sym_function_declaration_left = 102,
  sym_type_declaration = 103,
  sym_lower_type_name = 104,
  sym_union_variant = 105,
  sym__more_union_variants = 106,
  sym_type_alias_declaration = 107,
  sym_type_expression = 108,
  sym__type_expression_inner = 109,
  sym_type_ref = 110,
  sym__single_type_expression = 111,
  sym_type_ref_without_args = 112,
  sym_type_variable = 113,
  sym_record_type = 114,
  sym_field_type = 115,
  sym_tuple_type = 116,
  sym_type_annotation = 117,
  sym_port_annotation = 118,
  sym__expression = 119,
  sym_bin_op_expr = 120,
  sym_operator = 121,
  sym_operator_as_function_expr = 122,
  sym__operator_as_function_inner = 123,
  sym__call_or_atom = 124,
  sym_function_call_expr = 125,
  sym__function_call_target = 126,
  sym__atom = 127,
  sym_field_access_expr = 128,
  sym__field_access_start = 129,
  sym__field_access_segment = 130,
  sym_negate_expr = 131,
  sym_parenthesized_expr = 132,
  sym__literal_expr_group = 133,
  sym_char_constant_expr = 134,
  sym_number_constant_expr = 135,
  sym_string_constant_expr = 136,
  sym_anonymous_function_expr = 137,
  sym_value_expr = 138,
  sym_tuple_expr = 139,
  sym_unit_expr = 140,
  sym_list_expr = 141,
  sym_record_expr = 142,
  sym_record_base_identifier = 143,
  sym__record_base = 144,
  sym__record_inner = 145,
  sym_field = 146,
  sym_if_else_expr = 147,
  sym__if = 148,
  sym__then = 149,
  sym__else = 150,
  sym_case_of_expr = 151,
  sym__more_case_of_branches = 152,
  sym_case_of_branch = 153,
  sym_let_in_expr = 154,
  sym__inner_declaration = 155,
  sym_pattern = 156,
  sym_cons_pattern = 157,
  sym__single_pattern_cons = 158,
  sym__single_pattern = 159,
  sym_lower_pattern = 160,
  sym_anything_pattern = 161,
  sym_record_pattern = 162,
  sym_list_pattern = 163,
  sym_union_pattern = 164,
  sym_nullary_constructor_argument_pattern = 165,
  sym__union_argument_pattern = 166,
  sym_tuple_pattern = 167,
  sym__parenthesized_pattern = 168,
  sym_infix_declaration = 169,
  sym_glsl_code_expr = 170,
  sym__glsl_begin = 171,
  sym__glsl_end = 172,
  sym_operator_identifier = 173,
  aux_sym_exposing_list_repeat1 = 174,
  aux_sym_upper_case_qid_repeat1 = 175,
  aux_sym_value_qid_repeat1 = 176,
  aux_sym_function_declaration_left_repeat1 = 177,
  aux_sym_type_declaration_repeat1 = 178,
  aux_sym_type_declaration_repeat2 = 179,
  aux_sym_union_variant_repeat1 = 180,
  aux_sym_type_expression_repeat1 = 181,
  aux_sym_type_ref_repeat1 = 182,
  aux_sym_record_type_repeat1 = 183,
  aux_sym_tuple_type_repeat1 = 184,
  aux_sym_bin_op_expr_repeat1 = 185,
  aux_sym_function_call_expr_repeat1 = 186,
  aux_sym_field_access_expr_repeat1 = 187,
  aux_sym_string_constant_expr_repeat1 = 188,
  aux_sym_string_constant_expr_repeat2 = 189,
  aux_sym_anonymous_function_expr_repeat1 = 190,
  aux_sym_tuple_expr_repeat1 = 191,
  aux_sym_list_expr_repeat1 = 192,
  aux_sym__record_inner_repeat1 = 193,
  aux_sym_if_else_expr_repeat1 = 194,
  aux_sym__more_case_of_branches_repeat1 = 195,
  aux_sym_let_in_expr_repeat1 = 196,
  aux_sym_record_pattern_repeat1 = 197,
  aux_sym_list_pattern_repeat1 = 198,
  aux_sym_union_pattern_repeat1 = 199,
  aux_sym_tuple_pattern_repeat1 = 200,
  alias_sym_close_char = 201,
  alias_sym_close_quote = 202,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [sym_lower_case_identifier] = "lower_case_identifier",
  [anon_sym_LBRACE_DASH] = "{-",
  [anon_sym_DASH_RBRACE] = "-}",
  [sym_line_comment] = "line_comment",
  [anon_sym_LPAREN] = "(",
  [anon_sym_COMMA] = ",",
  [anon_sym_RPAREN] = ")",
  [sym__upper_case_identifier_without_leading_whitespace] = "upper_case_identifier",
  [sym__lower_case_identifier_without_leading_whitespace] = "lower_case_identifier",
  [anon_sym_DOT] = ".",
  [anon_sym_PIPE] = "|",
  [anon_sym_LBRACE] = "{",
  [anon_sym_RBRACE] = "}",
  [anon_sym_SQUOTE] = "open_char",
  [aux_sym_char_constant_expr_token1] = "regular_string_part",
  [anon_sym_DQUOTE_DQUOTE_DQUOTE] = "open_quote",
  [aux_sym_string_constant_expr_token1] = "regular_string_part",
  [anon_sym_DQUOTE] = "open_quote",
  [aux_sym_string_constant_expr_token2] = "regular_string_part",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_else] = "else",
  [anon_sym_if] = "if",
  [anon_sym_then] = "then",
  [anon_sym_let] = "let",
  [anon_sym_in] = "in",
  [anon_sym_COLON_COLON] = "::",
  [anon_sym_left] = "lower_case_identifier",
  [anon_sym_right] = "lower_case_identifier",
  [anon_sym_non] = "lower_case_identifier",
  [anon_sym_LBRACKglsl_PIPE] = "[glsl|",
  [anon_sym_PIPE_RBRACK] = "|]",
  [sym_upper_case_identifier] = "upper_case_identifier",
  [sym_number_literal] = "number_literal",
  [sym_string_escape] = "string_escape",
  [sym_invalid_string_escape] = "invalid_string_escape",
  [sym_module] = "module",
  [sym_effect] = "effect",
  [sym_where] = "where",
  [sym_import] = "import",
  [sym_as] = "as",
  [sym_exposing] = "exposing",
  [sym_case] = "case",
  [sym_of] = "of",
  [sym_type] = "type",
  [sym_alias] = "alias",
  [sym_port] = "port",
  [sym_infix] = "infix",
  [sym_double_dot] = "double_dot",
  [sym_eq] = "eq",
  [sym_arrow] = "arrow",
  [sym_colon] = "colon",
  [sym_backslash] = "backslash",
  [sym_underscore] = "underscore",
  [sym_dot] = "dot",
  [anon_sym_PLUS] = "+",
  [anon_sym_DASH] = "-",
  [anon_sym_STAR] = "*",
  [anon_sym_SLASH] = "/",
  [anon_sym_SLASH_SLASH] = "//",
  [anon_sym_CARET] = "^",
  [anon_sym_EQ_EQ] = "==",
  [anon_sym_SLASH_EQ] = "/=",
  [anon_sym_LT] = "<",
  [anon_sym_GT] = ">",
  [anon_sym_LT_EQ] = "<=",
  [anon_sym_GT_EQ] = ">=",
  [anon_sym_AMP_AMP] = "&&",
  [anon_sym_PIPE_PIPE] = "||",
  [anon_sym_PLUS_PLUS] = "++",
  [anon_sym_LT_PIPE] = "<|",
  [anon_sym_PIPE_GT] = "|>",
  [anon_sym_LT_LT] = "<<",
  [anon_sym_GT_GT] = ">>",
  [anon_sym_LT_SLASH_GT] = "</>",
  [anon_sym_LT_QMARK_GT] = "<\?>",
  [anon_sym_PIPE_DOT] = "|.",
  [anon_sym_PIPE_EQ] = "|=",
  [sym__virtual_end_decl] = "_virtual_end_decl",
  [sym__virtual_open_section] = "_virtual_open_section",
  [sym__virtual_end_section] = "_virtual_end_section",
  [sym_minus_without_trailing_whitespace] = "operator_identifier",
  [sym_glsl_content] = "glsl_content",
  [sym__block_comment_content] = "_block_comment_content",
  [sym_file] = "file",
  [sym_block_comment] = "block_comment",
  [sym_module_declaration] = "module_declaration",
  [aux_sym__import_list] = "_import_list",
  [aux_sym__top_decl_list] = "_top_decl_list",
  [sym_exposing_list] = "exposing_list",
  [sym_exposed_value] = "exposed_value",
  [sym_exposed_type] = "exposed_type",
  [sym_exposed_union_constructors] = "exposed_union_constructors",
  [sym_exposed_operator] = "exposed_operator",
  [sym__dot_without_leading_whitespace] = "dot",
  [sym_upper_case_qid] = "upper_case_qid",
  [sym_value_qid] = "value_qid",
  [sym_field_accessor_function_expr] = "field_accessor_function_expr",
  [sym_import_clause] = "import_clause",
  [sym_as_clause] = "as_clause",
  [sym_value_declaration] = "value_declaration",
  [sym_function_declaration_left] = "function_declaration_left",
  [sym_type_declaration] = "type_declaration",
  [sym_lower_type_name] = "lower_type_name",
  [sym_union_variant] = "union_variant",
  [sym__more_union_variants] = "_more_union_variants",
  [sym_type_alias_declaration] = "type_alias_declaration",
  [sym_type_expression] = "type_expression",
  [sym__type_expression_inner] = "_type_expression_inner",
  [sym_type_ref] = "type_ref",
  [sym__single_type_expression] = "_single_type_expression",
  [sym_type_ref_without_args] = "type_ref",
  [sym_type_variable] = "type_variable",
  [sym_record_type] = "record_type",
  [sym_field_type] = "field_type",
  [sym_tuple_type] = "tuple_type",
  [sym_type_annotation] = "type_annotation",
  [sym_port_annotation] = "port_annotation",
  [sym__expression] = "_expression",
  [sym_bin_op_expr] = "bin_op_expr",
  [sym_operator] = "operator",
  [sym_operator_as_function_expr] = "operator_as_function_expr",
  [sym__operator_as_function_inner] = "_operator_as_function_inner",
  [sym__call_or_atom] = "_call_or_atom",
  [sym_function_call_expr] = "function_call_expr",
  [sym__function_call_target] = "_function_call_target",
  [sym__atom] = "_atom",
  [sym_field_access_expr] = "field_access_expr",
  [sym__field_access_start] = "_field_access_start",
  [sym__field_access_segment] = "_field_access_segment",
  [sym_negate_expr] = "negate_expr",
  [sym_parenthesized_expr] = "parenthesized_expr",
  [sym__literal_expr_group] = "_literal_expr_group",
  [sym_char_constant_expr] = "char_constant_expr",
  [sym_number_constant_expr] = "number_constant_expr",
  [sym_string_constant_expr] = "string_constant_expr",
  [sym_anonymous_function_expr] = "anonymous_function_expr",
  [sym_value_expr] = "value_expr",
  [sym_tuple_expr] = "tuple_expr",
  [sym_unit_expr] = "unit_expr",
  [sym_list_expr] = "list_expr",
  [sym_record_expr] = "record_expr",
  [sym_record_base_identifier] = "record_base_identifier",
  [sym__record_base] = "_record_base",
  [sym__record_inner] = "_record_inner",
  [sym_field] = "field",
  [sym_if_else_expr] = "if_else_expr",
  [sym__if] = "_if",
  [sym__then] = "_then",
  [sym__else] = "_else",
  [sym_case_of_expr] = "case_of_expr",
  [sym__more_case_of_branches] = "_more_case_of_branches",
  [sym_case_of_branch] = "case_of_branch",
  [sym_let_in_expr] = "let_in_expr",
  [sym__inner_declaration] = "_inner_declaration",
  [sym_pattern] = "pattern",
  [sym_cons_pattern] = "cons_pattern",
  [sym__single_pattern_cons] = "_single_pattern_cons",
  [sym__single_pattern] = "_single_pattern",
  [sym_lower_pattern] = "lower_pattern",
  [sym_anything_pattern] = "anything_pattern",
  [sym_record_pattern] = "record_pattern",
  [sym_list_pattern] = "list_pattern",
  [sym_union_pattern] = "union_pattern",
  [sym_nullary_constructor_argument_pattern] = "nullary_constructor_argument_pattern",
  [sym__union_argument_pattern] = "_union_argument_pattern",
  [sym_tuple_pattern] = "tuple_pattern",
  [sym__parenthesized_pattern] = "_parenthesized_pattern",
  [sym_infix_declaration] = "infix_declaration",
  [sym_glsl_code_expr] = "glsl_code_expr",
  [sym__glsl_begin] = "_glsl_begin",
  [sym__glsl_end] = "_glsl_end",
  [sym_operator_identifier] = "operator_identifier",
  [aux_sym_exposing_list_repeat1] = "exposing_list_repeat1",
  [aux_sym_upper_case_qid_repeat1] = "upper_case_qid_repeat1",
  [aux_sym_value_qid_repeat1] = "value_qid_repeat1",
  [aux_sym_function_declaration_left_repeat1] = "function_declaration_left_repeat1",
  [aux_sym_type_declaration_repeat1] = "type_declaration_repeat1",
  [aux_sym_type_declaration_repeat2] = "type_declaration_repeat2",
  [aux_sym_union_variant_repeat1] = "union_variant_repeat1",
  [aux_sym_type_expression_repeat1] = "type_expression_repeat1",
  [aux_sym_type_ref_repeat1] = "type_ref_repeat1",
  [aux_sym_record_type_repeat1] = "record_type_repeat1",
  [aux_sym_tuple_type_repeat1] = "tuple_type_repeat1",
  [aux_sym_bin_op_expr_repeat1] = "bin_op_expr_repeat1",
  [aux_sym_function_call_expr_repeat1] = "function_call_expr_repeat1",
  [aux_sym_field_access_expr_repeat1] = "field_access_expr_repeat1",
  [aux_sym_string_constant_expr_repeat1] = "string_constant_expr_repeat1",
  [aux_sym_string_constant_expr_repeat2] = "string_constant_expr_repeat2",
  [aux_sym_anonymous_function_expr_repeat1] = "anonymous_function_expr_repeat1",
  [aux_sym_tuple_expr_repeat1] = "tuple_expr_repeat1",
  [aux_sym_list_expr_repeat1] = "list_expr_repeat1",
  [aux_sym__record_inner_repeat1] = "_record_inner_repeat1",
  [aux_sym_if_else_expr_repeat1] = "if_else_expr_repeat1",
  [aux_sym__more_case_of_branches_repeat1] = "_more_case_of_branches_repeat1",
  [aux_sym_let_in_expr_repeat1] = "let_in_expr_repeat1",
  [aux_sym_record_pattern_repeat1] = "record_pattern_repeat1",
  [aux_sym_list_pattern_repeat1] = "list_pattern_repeat1",
  [aux_sym_union_pattern_repeat1] = "union_pattern_repeat1",
  [aux_sym_tuple_pattern_repeat1] = "tuple_pattern_repeat1",
  [alias_sym_close_char] = "close_char",
  [alias_sym_close_quote] = "close_quote",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [sym_lower_case_identifier] = sym_lower_case_identifier,
  [anon_sym_LBRACE_DASH] = anon_sym_LBRACE_DASH,
  [anon_sym_DASH_RBRACE] = anon_sym_DASH_RBRACE,
  [sym_line_comment] = sym_line_comment,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [sym__upper_case_identifier_without_leading_whitespace] = sym_upper_case_identifier,
  [sym__lower_case_identifier_without_leading_whitespace] = sym_lower_case_identifier,
  [anon_sym_DOT] = anon_sym_DOT,
  [anon_sym_PIPE] = anon_sym_PIPE,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_SQUOTE] = anon_sym_SQUOTE,
  [aux_sym_char_constant_expr_token1] = aux_sym_char_constant_expr_token1,
  [anon_sym_DQUOTE_DQUOTE_DQUOTE] = anon_sym_DQUOTE_DQUOTE_DQUOTE,
  [aux_sym_string_constant_expr_token1] = aux_sym_char_constant_expr_token1,
  [anon_sym_DQUOTE] = anon_sym_DQUOTE_DQUOTE_DQUOTE,
  [aux_sym_string_constant_expr_token2] = aux_sym_char_constant_expr_token1,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_else] = anon_sym_else,
  [anon_sym_if] = anon_sym_if,
  [anon_sym_then] = anon_sym_then,
  [anon_sym_let] = anon_sym_let,
  [anon_sym_in] = anon_sym_in,
  [anon_sym_COLON_COLON] = anon_sym_COLON_COLON,
  [anon_sym_left] = sym_lower_case_identifier,
  [anon_sym_right] = sym_lower_case_identifier,
  [anon_sym_non] = sym_lower_case_identifier,
  [anon_sym_LBRACKglsl_PIPE] = anon_sym_LBRACKglsl_PIPE,
  [anon_sym_PIPE_RBRACK] = anon_sym_PIPE_RBRACK,
  [sym_upper_case_identifier] = sym_upper_case_identifier,
  [sym_number_literal] = sym_number_literal,
  [sym_string_escape] = sym_string_escape,
  [sym_invalid_string_escape] = sym_invalid_string_escape,
  [sym_module] = sym_module,
  [sym_effect] = sym_effect,
  [sym_where] = sym_where,
  [sym_import] = sym_import,
  [sym_as] = sym_as,
  [sym_exposing] = sym_exposing,
  [sym_case] = sym_case,
  [sym_of] = sym_of,
  [sym_type] = sym_type,
  [sym_alias] = sym_alias,
  [sym_port] = sym_port,
  [sym_infix] = sym_infix,
  [sym_double_dot] = sym_double_dot,
  [sym_eq] = sym_eq,
  [sym_arrow] = sym_arrow,
  [sym_colon] = sym_colon,
  [sym_backslash] = sym_backslash,
  [sym_underscore] = sym_underscore,
  [sym_dot] = sym_dot,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [anon_sym_DASH] = anon_sym_DASH,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_SLASH] = anon_sym_SLASH,
  [anon_sym_SLASH_SLASH] = anon_sym_SLASH_SLASH,
  [anon_sym_CARET] = anon_sym_CARET,
  [anon_sym_EQ_EQ] = anon_sym_EQ_EQ,
  [anon_sym_SLASH_EQ] = anon_sym_SLASH_EQ,
  [anon_sym_LT] = anon_sym_LT,
  [anon_sym_GT] = anon_sym_GT,
  [anon_sym_LT_EQ] = anon_sym_LT_EQ,
  [anon_sym_GT_EQ] = anon_sym_GT_EQ,
  [anon_sym_AMP_AMP] = anon_sym_AMP_AMP,
  [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE,
  [anon_sym_PLUS_PLUS] = anon_sym_PLUS_PLUS,
  [anon_sym_LT_PIPE] = anon_sym_LT_PIPE,
  [anon_sym_PIPE_GT] = anon_sym_PIPE_GT,
  [anon_sym_LT_LT] = anon_sym_LT_LT,
  [anon_sym_GT_GT] = anon_sym_GT_GT,
  [anon_sym_LT_SLASH_GT] = anon_sym_LT_SLASH_GT,
  [anon_sym_LT_QMARK_GT] = anon_sym_LT_QMARK_GT,
  [anon_sym_PIPE_DOT] = anon_sym_PIPE_DOT,
  [anon_sym_PIPE_EQ] = anon_sym_PIPE_EQ,
  [sym__virtual_end_decl] = sym__virtual_end_decl,
  [sym__virtual_open_section] = sym__virtual_open_section,
  [sym__virtual_end_section] = sym__virtual_end_section,
  [sym_minus_without_trailing_whitespace] = sym_operator_identifier,
  [sym_glsl_content] = sym_glsl_content,
  [sym__block_comment_content] = sym__block_comment_content,
  [sym_file] = sym_file,
  [sym_block_comment] = sym_block_comment,
  [sym_module_declaration] = sym_module_declaration,
  [aux_sym__import_list] = aux_sym__import_list,
  [aux_sym__top_decl_list] = aux_sym__top_decl_list,
  [sym_exposing_list] = sym_exposing_list,
  [sym_exposed_value] = sym_exposed_value,
  [sym_exposed_type] = sym_exposed_type,
  [sym_exposed_union_constructors] = sym_exposed_union_constructors,
  [sym_exposed_operator] = sym_exposed_operator,
  [sym__dot_without_leading_whitespace] = sym_dot,
  [sym_upper_case_qid] = sym_upper_case_qid,
  [sym_value_qid] = sym_value_qid,
  [sym_field_accessor_function_expr] = sym_field_accessor_function_expr,
  [sym_import_clause] = sym_import_clause,
  [sym_as_clause] = sym_as_clause,
  [sym_value_declaration] = sym_value_declaration,
  [sym_function_declaration_left] = sym_function_declaration_left,
  [sym_type_declaration] = sym_type_declaration,
  [sym_lower_type_name] = sym_lower_type_name,
  [sym_union_variant] = sym_union_variant,
  [sym__more_union_variants] = sym__more_union_variants,
  [sym_type_alias_declaration] = sym_type_alias_declaration,
  [sym_type_expression] = sym_type_expression,
  [sym__type_expression_inner] = sym__type_expression_inner,
  [sym_type_ref] = sym_type_ref,
  [sym__single_type_expression] = sym__single_type_expression,
  [sym_type_ref_without_args] = sym_type_ref,
  [sym_type_variable] = sym_type_variable,
  [sym_record_type] = sym_record_type,
  [sym_field_type] = sym_field_type,
  [sym_tuple_type] = sym_tuple_type,
  [sym_type_annotation] = sym_type_annotation,
  [sym_port_annotation] = sym_port_annotation,
  [sym__expression] = sym__expression,
  [sym_bin_op_expr] = sym_bin_op_expr,
  [sym_operator] = sym_operator,
  [sym_operator_as_function_expr] = sym_operator_as_function_expr,
  [sym__operator_as_function_inner] = sym__operator_as_function_inner,
  [sym__call_or_atom] = sym__call_or_atom,
  [sym_function_call_expr] = sym_function_call_expr,
  [sym__function_call_target] = sym__function_call_target,
  [sym__atom] = sym__atom,
  [sym_field_access_expr] = sym_field_access_expr,
  [sym__field_access_start] = sym__field_access_start,
  [sym__field_access_segment] = sym__field_access_segment,
  [sym_negate_expr] = sym_negate_expr,
  [sym_parenthesized_expr] = sym_parenthesized_expr,
  [sym__literal_expr_group] = sym__literal_expr_group,
  [sym_char_constant_expr] = sym_char_constant_expr,
  [sym_number_constant_expr] = sym_number_constant_expr,
  [sym_string_constant_expr] = sym_string_constant_expr,
  [sym_anonymous_function_expr] = sym_anonymous_function_expr,
  [sym_value_expr] = sym_value_expr,
  [sym_tuple_expr] = sym_tuple_expr,
  [sym_unit_expr] = sym_unit_expr,
  [sym_list_expr] = sym_list_expr,
  [sym_record_expr] = sym_record_expr,
  [sym_record_base_identifier] = sym_record_base_identifier,
  [sym__record_base] = sym__record_base,
  [sym__record_inner] = sym__record_inner,
  [sym_field] = sym_field,
  [sym_if_else_expr] = sym_if_else_expr,
  [sym__if] = sym__if,
  [sym__then] = sym__then,
  [sym__else] = sym__else,
  [sym_case_of_expr] = sym_case_of_expr,
  [sym__more_case_of_branches] = sym__more_case_of_branches,
  [sym_case_of_branch] = sym_case_of_branch,
  [sym_let_in_expr] = sym_let_in_expr,
  [sym__inner_declaration] = sym__inner_declaration,
  [sym_pattern] = sym_pattern,
  [sym_cons_pattern] = sym_cons_pattern,
  [sym__single_pattern_cons] = sym__single_pattern_cons,
  [sym__single_pattern] = sym__single_pattern,
  [sym_lower_pattern] = sym_lower_pattern,
  [sym_anything_pattern] = sym_anything_pattern,
  [sym_record_pattern] = sym_record_pattern,
  [sym_list_pattern] = sym_list_pattern,
  [sym_union_pattern] = sym_union_pattern,
  [sym_nullary_constructor_argument_pattern] = sym_nullary_constructor_argument_pattern,
  [sym__union_argument_pattern] = sym__union_argument_pattern,
  [sym_tuple_pattern] = sym_tuple_pattern,
  [sym__parenthesized_pattern] = sym__parenthesized_pattern,
  [sym_infix_declaration] = sym_infix_declaration,
  [sym_glsl_code_expr] = sym_glsl_code_expr,
  [sym__glsl_begin] = sym__glsl_begin,
  [sym__glsl_end] = sym__glsl_end,
  [sym_operator_identifier] = sym_operator_identifier,
  [aux_sym_exposing_list_repeat1] = aux_sym_exposing_list_repeat1,
  [aux_sym_upper_case_qid_repeat1] = aux_sym_upper_case_qid_repeat1,
  [aux_sym_value_qid_repeat1] = aux_sym_value_qid_repeat1,
  [aux_sym_function_declaration_left_repeat1] = aux_sym_function_declaration_left_repeat1,
  [aux_sym_type_declaration_repeat1] = aux_sym_type_declaration_repeat1,
  [aux_sym_type_declaration_repeat2] = aux_sym_type_declaration_repeat2,
  [aux_sym_union_variant_repeat1] = aux_sym_union_variant_repeat1,
  [aux_sym_type_expression_repeat1] = aux_sym_type_expression_repeat1,
  [aux_sym_type_ref_repeat1] = aux_sym_type_ref_repeat1,
  [aux_sym_record_type_repeat1] = aux_sym_record_type_repeat1,
  [aux_sym_tuple_type_repeat1] = aux_sym_tuple_type_repeat1,
  [aux_sym_bin_op_expr_repeat1] = aux_sym_bin_op_expr_repeat1,
  [aux_sym_function_call_expr_repeat1] = aux_sym_function_call_expr_repeat1,
  [aux_sym_field_access_expr_repeat1] = aux_sym_field_access_expr_repeat1,
  [aux_sym_string_constant_expr_repeat1] = aux_sym_string_constant_expr_repeat1,
  [aux_sym_string_constant_expr_repeat2] = aux_sym_string_constant_expr_repeat2,
  [aux_sym_anonymous_function_expr_repeat1] = aux_sym_anonymous_function_expr_repeat1,
  [aux_sym_tuple_expr_repeat1] = aux_sym_tuple_expr_repeat1,
  [aux_sym_list_expr_repeat1] = aux_sym_list_expr_repeat1,
  [aux_sym__record_inner_repeat1] = aux_sym__record_inner_repeat1,
  [aux_sym_if_else_expr_repeat1] = aux_sym_if_else_expr_repeat1,
  [aux_sym__more_case_of_branches_repeat1] = aux_sym__more_case_of_branches_repeat1,
  [aux_sym_let_in_expr_repeat1] = aux_sym_let_in_expr_repeat1,
  [aux_sym_record_pattern_repeat1] = aux_sym_record_pattern_repeat1,
  [aux_sym_list_pattern_repeat1] = aux_sym_list_pattern_repeat1,
  [aux_sym_union_pattern_repeat1] = aux_sym_union_pattern_repeat1,
  [aux_sym_tuple_pattern_repeat1] = aux_sym_tuple_pattern_repeat1,
  [alias_sym_close_char] = alias_sym_close_char,
  [alias_sym_close_quote] = alias_sym_close_quote,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [sym_lower_case_identifier] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LBRACE_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [sym_line_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [sym__upper_case_identifier_without_leading_whitespace] = {
    .visible = true,
    .named = true,
  },
  [sym__lower_case_identifier_without_leading_whitespace] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SQUOTE] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_char_constant_expr_token1] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_DQUOTE_DQUOTE_DQUOTE] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_string_constant_expr_token1] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_DQUOTE] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_string_constant_expr_token2] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_else] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_if] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_then] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_let] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_in] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_left] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_right] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_non] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LBRACKglsl_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [sym_upper_case_identifier] = {
    .visible = true,
    .named = true,
  },
  [sym_number_literal] = {
    .visible = true,
    .named = true,
  },
  [sym_string_escape] = {
    .visible = true,
    .named = true,
  },
  [sym_invalid_string_escape] = {
    .visible = true,
    .named = true,
  },
  [sym_module] = {
    .visible = true,
    .named = true,
  },
  [sym_effect] = {
    .visible = true,
    .named = true,
  },
  [sym_where] = {
    .visible = true,
    .named = true,
  },
  [sym_import] = {
    .visible = true,
    .named = true,
  },
  [sym_as] = {
    .visible = true,
    .named = true,
  },
  [sym_exposing] = {
    .visible = true,
    .named = true,
  },
  [sym_case] = {
    .visible = true,
    .named = true,
  },
  [sym_of] = {
    .visible = true,
    .named = true,
  },
  [sym_type] = {
    .visible = true,
    .named = true,
  },
  [sym_alias] = {
    .visible = true,
    .named = true,
  },
  [sym_port] = {
    .visible = true,
    .named = true,
  },
  [sym_infix] = {
    .visible = true,
    .named = true,
  },
  [sym_double_dot] = {
    .visible = true,
    .named = true,
  },
  [sym_eq] = {
    .visible = true,
    .named = true,
  },
  [sym_arrow] = {
    .visible = true,
    .named = true,
  },
  [sym_colon] = {
    .visible = true,
    .named = true,
  },
  [sym_backslash] = {
    .visible = true,
    .named = true,
  },
  [sym_underscore] = {
    .visible = true,
    .named = true,
  },
  [sym_dot] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_LT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_SLASH_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_QMARK_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_EQ] = {
    .visible = true,
    .named = false,
  },
  [sym__virtual_end_decl] = {
    .visible = false,
    .named = true,
  },
  [sym__virtual_open_section] = {
    .visible = false,
    .named = true,
  },
  [sym__virtual_end_section] = {
    .visible = false,
    .named = true,
  },
  [sym_minus_without_trailing_whitespace] = {
    .visible = true,
    .named = true,
  },
  [sym_glsl_content] = {
    .visible = true,
    .named = true,
  },
  [sym__block_comment_content] = {
    .visible = false,
    .named = true,
  },
  [sym_file] = {
    .visible = true,
    .named = true,
  },
  [sym_block_comment] = {
    .visible = true,
    .named = true,
  },
  [sym_module_declaration] = {
    .visible = true,
    .named = true,
  },
  [aux_sym__import_list] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__top_decl_list] = {
    .visible = false,
    .named = false,
  },
  [sym_exposing_list] = {
    .visible = true,
    .named = true,
  },
  [sym_exposed_value] = {
    .visible = true,
    .named = true,
  },
  [sym_exposed_type] = {
    .visible = true,
    .named = true,
  },
  [sym_exposed_union_constructors] = {
    .visible = true,
    .named = true,
  },
  [sym_exposed_operator] = {
    .visible = true,
    .named = true,
  },
  [sym__dot_without_leading_whitespace] = {
    .visible = true,
    .named = true,
  },
  [sym_upper_case_qid] = {
    .visible = true,
    .named = true,
  },
  [sym_value_qid] = {
    .visible = true,
    .named = true,
  },
  [sym_field_accessor_function_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_import_clause] = {
    .visible = true,
    .named = true,
  },
  [sym_as_clause] = {
    .visible = true,
    .named = true,
  },
  [sym_value_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_function_declaration_left] = {
    .visible = true,
    .named = true,
  },
  [sym_type_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_lower_type_name] = {
    .visible = true,
    .named = true,
  },
  [sym_union_variant] = {
    .visible = true,
    .named = true,
  },
  [sym__more_union_variants] = {
    .visible = false,
    .named = true,
  },
  [sym_type_alias_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_type_expression] = {
    .visible = true,
    .named = true,
  },
  [sym__type_expression_inner] = {
    .visible = false,
    .named = true,
  },
  [sym_type_ref] = {
    .visible = true,
    .named = true,
  },
  [sym__single_type_expression] = {
    .visible = false,
    .named = true,
  },
  [sym_type_ref_without_args] = {
    .visible = true,
    .named = true,
  },
  [sym_type_variable] = {
    .visible = true,
    .named = true,
  },
  [sym_record_type] = {
    .visible = true,
    .named = true,
  },
  [sym_field_type] = {
    .visible = true,
    .named = true,
  },
  [sym_tuple_type] = {
    .visible = true,
    .named = true,
  },
  [sym_type_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_port_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym__expression] = {
    .visible = false,
    .named = true,
  },
  [sym_bin_op_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_operator] = {
    .visible = true,
    .named = true,
  },
  [sym_operator_as_function_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__operator_as_function_inner] = {
    .visible = false,
    .named = true,
  },
  [sym__call_or_atom] = {
    .visible = false,
    .named = true,
  },
  [sym_function_call_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__function_call_target] = {
    .visible = false,
    .named = true,
  },
  [sym__atom] = {
    .visible = false,
    .named = true,
  },
  [sym_field_access_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__field_access_start] = {
    .visible = false,
    .named = true,
  },
  [sym__field_access_segment] = {
    .visible = false,
    .named = true,
  },
  [sym_negate_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_parenthesized_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__literal_expr_group] = {
    .visible = false,
    .named = true,
  },
  [sym_char_constant_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_number_constant_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_string_constant_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_anonymous_function_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_value_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_tuple_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_unit_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_list_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_record_expr] = {
    .visible = true,
    .named = true,
  },
  [sym_record_base_identifier] = {
    .visible = true,
    .named = true,
  },
  [sym__record_base] = {
    .visible = false,
    .named = true,
  },
  [sym__record_inner] = {
    .visible = false,
    .named = true,
  },
  [sym_field] = {
    .visible = true,
    .named = true,
  },
  [sym_if_else_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__if] = {
    .visible = false,
    .named = true,
  },
  [sym__then] = {
    .visible = false,
    .named = true,
  },
  [sym__else] = {
    .visible = false,
    .named = true,
  },
  [sym_case_of_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__more_case_of_branches] = {
    .visible = false,
    .named = true,
  },
  [sym_case_of_branch] = {
    .visible = true,
    .named = true,
  },
  [sym_let_in_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__inner_declaration] = {
    .visible = false,
    .named = true,
  },
  [sym_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_cons_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym__single_pattern_cons] = {
    .visible = false,
    .named = true,
  },
  [sym__single_pattern] = {
    .visible = false,
    .named = true,
  },
  [sym_lower_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_anything_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_record_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_list_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_union_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_nullary_constructor_argument_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym__union_argument_pattern] = {
    .visible = false,
    .named = true,
  },
  [sym_tuple_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym__parenthesized_pattern] = {
    .visible = false,
    .named = true,
  },
  [sym_infix_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_glsl_code_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__glsl_begin] = {
    .visible = false,
    .named = true,
  },
  [sym__glsl_end] = {
    .visible = false,
    .named = true,
  },
  [sym_operator_identifier] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_exposing_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_upper_case_qid_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_value_qid_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_declaration_left_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_type_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_type_declaration_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_union_variant_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_type_expression_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_type_ref_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_record_type_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_tuple_type_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_bin_op_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_call_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_field_access_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_string_constant_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_string_constant_expr_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_anonymous_function_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_tuple_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_list_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__record_inner_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_if_else_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__more_case_of_branches_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_let_in_expr_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_record_pattern_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_list_pattern_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_union_pattern_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_tuple_pattern_repeat1] = {
    .visible = false,
    .named = false,
  },
  [alias_sym_close_char] = {
    .visible = true,
    .named = true,
  },
  [alias_sym_close_quote] = {
    .visible = true,
    .named = true,
  },
};

enum ts_field_identifiers {
  field_arg = 1,
  field_argPattern = 2,
  field_asClause = 3,
  field_associativity = 4,
  field_baseRecord = 5,
  field_body = 6,
  field_branch = 7,
  field_child = 8,
  field_constructor = 9,
  field_content = 10,
  field_doubleDot = 11,
  field_exposing = 12,
  field_expr = 13,
  field_exprList = 14,
  field_expression = 15,
  field_field = 16,
  field_fieldType = 17,
  field_functionDeclarationLeft = 18,
  field_moduleDeclaration = 19,
  field_moduleName = 20,
  field_name = 21,
  field_operator = 22,
  field_param = 23,
  field_part = 24,
  field_pattern = 25,
  field_patternAs = 26,
  field_patternList = 27,
  field_precedence = 28,
  field_target = 29,
  field_typeExpression = 30,
  field_typeName = 31,
  field_typeVariable = 32,
  field_unionVariant = 33,
  field_unitExpr = 34,
  field_valueDeclaration = 35,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_arg] = "arg",
  [field_argPattern] = "argPattern",
  [field_asClause] = "asClause",
  [field_associativity] = "associativity",
  [field_baseRecord] = "baseRecord",
  [field_body] = "body",
  [field_branch] = "branch",
  [field_child] = "child",
  [field_constructor] = "constructor",
  [field_content] = "content",
  [field_doubleDot] = "doubleDot",
  [field_exposing] = "exposing",
  [field_expr] = "expr",
  [field_exprList] = "exprList",
  [field_expression] = "expression",
  [field_field] = "field",
  [field_fieldType] = "fieldType",
  [field_functionDeclarationLeft] = "functionDeclarationLeft",
  [field_moduleDeclaration] = "moduleDeclaration",
  [field_moduleName] = "moduleName",
  [field_name] = "name",
  [field_operator] = "operator",
  [field_param] = "param",
  [field_part] = "part",
  [field_pattern] = "pattern",
  [field_patternAs] = "patternAs",
  [field_patternList] = "patternList",
  [field_precedence] = "precedence",
  [field_target] = "target",
  [field_typeExpression] = "typeExpression",
  [field_typeName] = "typeName",
  [field_typeVariable] = "typeVariable",
  [field_unionVariant] = "unionVariant",
  [field_unitExpr] = "unitExpr",
  [field_valueDeclaration] = "valueDeclaration",
};

static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 1},
  [2] = {.index = 1, .length = 1},
  [3] = {.index = 2, .length = 1},
  [5] = {.index = 3, .length = 1},
  [6] = {.index = 4, .length = 1},
  [7] = {.index = 5, .length = 1},
  [8] = {.index = 6, .length = 2},
  [9] = {.index = 8, .length = 1},
  [10] = {.index = 9, .length = 1},
  [13] = {.index = 10, .length = 1},
  [14] = {.index = 11, .length = 2},
  [15] = {.index = 13, .length = 1},
  [16] = {.index = 14, .length = 1},
  [17] = {.index = 15, .length = 1},
  [18] = {.index = 16, .length = 2},
  [19] = {.index = 18, .length = 2},
  [20] = {.index = 20, .length = 2},
  [21] = {.index = 22, .length = 1},
  [22] = {.index = 23, .length = 2},
  [23] = {.index = 25, .length = 1},
  [24] = {.index = 26, .length = 2},
  [25] = {.index = 28, .length = 2},
  [26] = {.index = 30, .length = 2},
  [27] = {.index = 32, .length = 2},
  [28] = {.index = 34, .length = 2},
  [29] = {.index = 36, .length = 2},
  [30] = {.index = 38, .length = 2},
  [31] = {.index = 40, .length = 2},
  [32] = {.index = 42, .length = 1},
  [33] = {.index = 43, .length = 1},
  [34] = {.index = 44, .length = 3},
  [35] = {.index = 47, .length = 2},
  [36] = {.index = 49, .length = 2},
  [37] = {.index = 51, .length = 2},
  [38] = {.index = 53, .length = 1},
  [39] = {.index = 54, .length = 1},
  [40] = {.index = 55, .length = 2},
  [41] = {.index = 57, .length = 2},
  [42] = {.index = 59, .length = 1},
  [43] = {.index = 60, .length = 2},
  [44] = {.index = 62, .length = 1},
  [45] = {.index = 63, .length = 1},
  [46] = {.index = 64, .length = 2},
  [47] = {.index = 66, .length = 1},
  [48] = {.index = 67, .length = 3},
  [49] = {.index = 70, .length = 3},
  [50] = {.index = 73, .length = 2},
  [51] = {.index = 75, .length = 1},
  [52] = {.index = 76, .length = 1},
  [53] = {.index = 77, .length = 2},
  [54] = {.index = 79, .length = 2},
  [55] = {.index = 81, .length = 2},
  [56] = {.index = 83, .length = 1},
  [57] = {.index = 84, .length = 3},
  [58] = {.index = 87, .length = 1},
  [59] = {.index = 88, .length = 3},
  [60] = {.index = 91, .length = 2},
  [61] = {.index = 93, .length = 1},
  [62] = {.index = 94, .length = 2},
  [63] = {.index = 96, .length = 2},
  [64] = {.index = 98, .length = 2},
  [65] = {.index = 100, .length = 2},
  [66] = {.index = 102, .length = 2},
  [67] = {.index = 104, .length = 1},
  [68] = {.index = 105, .length = 2},
  [69] = {.index = 107, .length = 1},
  [70] = {.index = 108, .length = 2},
  [71] = {.index = 110, .length = 4},
  [72] = {.index = 114, .length = 3},
  [73] = {.index = 117, .length = 3},
  [74] = {.index = 120, .length = 1},
  [75] = {.index = 121, .length = 2},
  [76] = {.index = 123, .length = 2},
  [77] = {.index = 125, .length = 2},
  [78] = {.index = 127, .length = 3},
  [79] = {.index = 130, .length = 1},
  [80] = {.index = 131, .length = 2},
  [81] = {.index = 133, .length = 2},
  [82] = {.index = 135, .length = 2},
  [83] = {.index = 137, .length = 2},
  [84] = {.index = 139, .length = 4},
  [85] = {.index = 143, .length = 3},
  [86] = {.index = 146, .length = 1},
  [87] = {.index = 147, .length = 2},
  [88] = {.index = 149, .length = 2},
  [89] = {.index = 151, .length = 2},
  [90] = {.index = 153, .length = 2},
  [91] = {.index = 155, .length = 1},
  [92] = {.index = 156, .length = 2},
  [93] = {.index = 158, .length = 3},
  [94] = {.index = 161, .length = 1},
  [95] = {.index = 162, .length = 3},
  [96] = {.index = 165, .length = 2},
  [97] = {.index = 167, .length = 2},
  [98] = {.index = 169, .length = 3},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_constructor, 0},
  [1] =
    {field_child, 0},
  [2] =
    {field_child, 0, .inherited = true},
  [3] =
    {field_pattern, 1},
  [4] =
    {field_moduleName, 1},
  [5] =
    {field_moduleDeclaration, 0},
  [6] =
    {field_argPattern, 1},
    {field_constructor, 0},
  [8] =
    {field_child, 1},
  [9] =
    {field_patternList, 1},
  [10] =
    {field_part, 1},
  [11] =
    {field_name, 0},
    {field_typeExpression, 2},
  [13] =
    {field_part, 0, .inherited = true},
  [14] =
    {field_part, 0},
  [15] =
    {field_unitExpr, 0},
  [16] =
    {field_exposing, 2},
    {field_name, 1},
  [18] =
    {field_exposing, 2},
    {field_moduleName, 1},
  [20] =
    {field_asClause, 2},
    {field_moduleName, 1},
  [22] =
    {field_name, 0},
  [23] =
    {field_body, 2},
    {field_functionDeclarationLeft, 0},
  [25] =
    {field_operator, 0, .inherited = true},
  [26] =
    {field_body, 2},
    {field_pattern, 0},
  [28] =
    {field_child, 0},
    {field_patternAs, 2},
  [30] =
    {field_part, 0},
    {field_part, 2},
  [32] =
    {field_child, 0, .inherited = true},
    {field_patternAs, 2},
  [34] =
    {field_patternList, 1},
    {field_patternList, 2, .inherited = true},
  [36] =
    {field_patternList, 0, .inherited = true},
    {field_patternList, 1, .inherited = true},
  [38] =
    {field_part, 1},
    {field_part, 2, .inherited = true},
  [40] =
    {field_part, 0, .inherited = true},
    {field_part, 1, .inherited = true},
  [42] =
    {field_part, 1, .inherited = true},
  [43] =
    {field_name, 1},
  [44] =
    {field_asClause, 2},
    {field_exposing, 3},
    {field_moduleName, 1},
  [47] =
    {field_name, 1},
    {field_unionVariant, 3},
  [49] =
    {field_name, 1},
    {field_typeExpression, 3},
  [51] =
    {field_exposing, 3},
    {field_name, 2},
  [53] =
    {field_field, 0},
  [54] =
    {field_exprList, 1},
  [55] =
    {field_part, 0},
    {field_part, 1},
  [57] =
    {field_arg, 1},
    {field_target, 0},
  [59] =
    {field_target, 0},
  [60] =
    {field_pattern, 1},
    {field_pattern, 3},
  [62] =
    {field_fieldType, 1},
  [63] =
    {field_baseRecord, 0},
  [64] =
    {field_name, 0},
    {field_part, 1, .inherited = true},
  [66] =
    {field_unionVariant, 0, .inherited = true},
  [67] =
    {field_name, 1},
    {field_unionVariant, 3},
    {field_unionVariant, 4, .inherited = true},
  [70] =
    {field_name, 1},
    {field_typeName, 2},
    {field_unionVariant, 4},
  [73] =
    {field_name, 2},
    {field_typeExpression, 4},
  [75] =
    {field_expression, 1},
  [76] =
    {field_operator, 1},
  [77] =
    {field_baseRecord, 0, .inherited = true},
    {field_field, 1},
  [79] =
    {field_baseRecord, 1, .inherited = true},
    {field_field, 1, .inherited = true},
  [81] =
    {field_field, 0},
    {field_field, 1, .inherited = true},
  [83] =
    {field_valueDeclaration, 0},
  [84] =
    {field_exprList, 0, .inherited = true},
    {field_exprList, 1, .inherited = true},
    {field_exprList, 2, .inherited = true},
  [87] =
    {field_content, 1},
  [88] =
    {field_pattern, 1},
    {field_pattern, 3},
    {field_pattern, 4, .inherited = true},
  [91] =
    {field_pattern, 0, .inherited = true},
    {field_pattern, 1, .inherited = true},
  [93] =
    {field_typeExpression, 1},
  [94] =
    {field_typeExpression, 1},
    {field_typeExpression, 2, .inherited = true},
  [96] =
    {field_typeExpression, 0, .inherited = true},
    {field_typeExpression, 1, .inherited = true},
  [98] =
    {field_fieldType, 1},
    {field_fieldType, 2, .inherited = true},
  [100] =
    {field_fieldType, 0, .inherited = true},
    {field_fieldType, 1, .inherited = true},
  [102] =
    {field_baseRecord, 1, .inherited = true},
    {field_fieldType, 2},
  [104] =
    {field_doubleDot, 2},
  [105] =
    {field_exposing, 5},
    {field_name, 2},
  [107] =
    {field_unionVariant, 1},
  [108] =
    {field_unionVariant, 0, .inherited = true},
    {field_unionVariant, 1, .inherited = true},
  [110] =
    {field_name, 1},
    {field_typeName, 2},
    {field_unionVariant, 4},
    {field_unionVariant, 5, .inherited = true},
  [114] =
    {field_name, 2},
    {field_typeExpression, 5},
    {field_typeVariable, 3},
  [117] =
    {field_associativity, 1},
    {field_operator, 3, .inherited = true},
    {field_precedence, 2},
  [120] =
    {field_expr, 1},
  [121] =
    {field_expr, 1},
    {field_expr, 2, .inherited = true},
  [123] =
    {field_expr, 0, .inherited = true},
    {field_expr, 1, .inherited = true},
  [125] =
    {field_expression, 2},
    {field_name, 0},
  [127] =
    {field_baseRecord, 0, .inherited = true},
    {field_field, 1},
    {field_field, 2, .inherited = true},
  [130] =
    {field_field, 1},
  [131] =
    {field_field, 0, .inherited = true},
    {field_field, 1, .inherited = true},
  [133] =
    {field_exprList, 1},
    {field_exprList, 2, .inherited = true},
  [135] =
    {field_exprList, 0, .inherited = true},
    {field_exprList, 1, .inherited = true},
  [137] =
    {field_expr, 3},
    {field_param, 1},
  [139] =
    {field_exprList, 0, .inherited = true},
    {field_exprList, 1, .inherited = true},
    {field_exprList, 2, .inherited = true},
    {field_exprList, 3, .inherited = true},
  [143] =
    {field_baseRecord, 1, .inherited = true},
    {field_fieldType, 2},
    {field_fieldType, 3, .inherited = true},
  [146] =
    {field_valueDeclaration, 1, .inherited = true},
  [147] =
    {field_valueDeclaration, 0, .inherited = true},
    {field_valueDeclaration, 1, .inherited = true},
  [149] =
    {field_exprList, 1, .inherited = true},
    {field_exprList, 2, .inherited = true},
  [151] =
    {field_body, 5},
    {field_valueDeclaration, 2, .inherited = true},
  [153] =
    {field_branch, 4},
    {field_expr, 1},
  [155] =
    {field_branch, 0, .inherited = true},
  [156] =
    {field_branch, 5},
    {field_expr, 2},
  [158] =
    {field_body, 6},
    {field_valueDeclaration, 2, .inherited = true},
    {field_valueDeclaration, 3, .inherited = true},
  [161] =
    {field_branch, 1},
  [162] =
    {field_branch, 4},
    {field_branch, 5, .inherited = true},
    {field_expr, 1},
  [165] =
    {field_branch, 0, .inherited = true},
    {field_branch, 1, .inherited = true},
  [167] =
    {field_expr, 2},
    {field_pattern, 0},
  [169] =
    {field_branch, 5},
    {field_branch, 6, .inherited = true},
    {field_expr, 2},
};

static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
  [0] = {0},
  [4] = {
    [1] = alias_sym_close_quote,
  },
  [11] = {
    [2] = alias_sym_close_char,
  },
  [12] = {
    [2] = alias_sym_close_quote,
  },
};

static const uint16_t ts_non_terminal_alias_map[] = {
  0,
};

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 3,
  [4] = 2,
  [5] = 5,
  [6] = 5,
  [7] = 5,
  [8] = 5,
  [9] = 5,
  [10] = 5,
  [11] = 5,
  [12] = 5,
  [13] = 5,
  [14] = 2,
  [15] = 3,
  [16] = 2,
  [17] = 2,
  [18] = 3,
  [19] = 2,
  [20] = 20,
  [21] = 21,
  [22] = 22,
  [23] = 23,
  [24] = 24,
  [25] = 25,
  [26] = 26,
  [27] = 27,
  [28] = 28,
  [29] = 29,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 30,
  [35] = 35,
  [36] = 29,
  [37] = 37,
  [38] = 29,
  [39] = 29,
  [40] = 29,
  [41] = 41,
  [42] = 42,
  [43] = 43,
  [44] = 29,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 51,
  [52] = 52,
  [53] = 53,
  [54] = 54,
  [55] = 55,
  [56] = 56,
  [57] = 49,
  [58] = 50,
  [59] = 59,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 66,
  [67] = 67,
  [68] = 68,
  [69] = 69,
  [70] = 70,
  [71] = 71,
  [72] = 72,
  [73] = 73,
  [74] = 74,
  [75] = 75,
  [76] = 76,
  [77] = 77,
  [78] = 78,
  [79] = 79,
  [80] = 80,
  [81] = 81,
  [82] = 82,
  [83] = 83,
  [84] = 84,
  [85] = 85,
  [86] = 86,
  [87] = 87,
  [88] = 88,
  [89] = 89,
  [90] = 90,
  [91] = 52,
  [92] = 92,
  [93] = 93,
  [94] = 20,
  [95] = 95,
  [96] = 21,
  [97] = 55,
  [98] = 59,
  [99] = 99,
  [100] = 100,
  [101] = 54,
  [102] = 56,
  [103] = 49,
  [104] = 50,
  [105] = 54,
  [106] = 56,
  [107] = 49,
  [108] = 50,
  [109] = 54,
  [110] = 56,
  [111] = 49,
  [112] = 50,
  [113] = 113,
  [114] = 114,
  [115] = 54,
  [116] = 56,
  [117] = 49,
  [118] = 50,
  [119] = 56,
  [120] = 54,
  [121] = 48,
  [122] = 71,
  [123] = 48,
  [124] = 71,
  [125] = 48,
  [126] = 71,
  [127] = 48,
  [128] = 71,
  [129] = 48,
  [130] = 71,
  [131] = 26,
  [132] = 25,
  [133] = 27,
  [134] = 23,
  [135] = 24,
  [136] = 22,
  [137] = 20,
  [138] = 138,
  [139] = 138,
  [140] = 138,
  [141] = 138,
  [142] = 138,
  [143] = 28,
  [144] = 138,
  [145] = 21,
  [146] = 47,
  [147] = 41,
  [148] = 42,
  [149] = 32,
  [150] = 24,
  [151] = 22,
  [152] = 27,
  [153] = 25,
  [154] = 30,
  [155] = 37,
  [156] = 43,
  [157] = 23,
  [158] = 45,
  [159] = 31,
  [160] = 33,
  [161] = 26,
  [162] = 46,
  [163] = 35,
  [164] = 30,
  [165] = 53,
  [166] = 166,
  [167] = 166,
  [168] = 75,
  [169] = 76,
  [170] = 93,
  [171] = 77,
  [172] = 78,
  [173] = 166,
  [174] = 79,
  [175] = 80,
  [176] = 81,
  [177] = 82,
  [178] = 60,
  [179] = 166,
  [180] = 83,
  [181] = 84,
  [182] = 85,
  [183] = 61,
  [184] = 86,
  [185] = 74,
  [186] = 87,
  [187] = 166,
  [188] = 88,
  [189] = 72,
  [190] = 89,
  [191] = 90,
  [192] = 52,
  [193] = 28,
  [194] = 68,
  [195] = 70,
  [196] = 73,
  [197] = 95,
  [198] = 63,
  [199] = 64,
  [200] = 65,
  [201] = 66,
  [202] = 67,
  [203] = 52,
  [204] = 92,
  [205] = 69,
  [206] = 166,
  [207] = 31,
  [208] = 33,
  [209] = 46,
  [210] = 210,
  [211] = 211,
  [212] = 41,
  [213] = 37,
  [214] = 42,
  [215] = 215,
  [216] = 216,
  [217] = 45,
  [218] = 47,
  [219] = 32,
  [220] = 215,
  [221] = 30,
  [222] = 30,
  [223] = 35,
  [224] = 215,
  [225] = 43,
  [226] = 215,
  [227] = 215,
  [228] = 215,
  [229] = 83,
  [230] = 66,
  [231] = 73,
  [232] = 68,
  [233] = 74,
  [234] = 75,
  [235] = 76,
  [236] = 77,
  [237] = 78,
  [238] = 52,
  [239] = 79,
  [240] = 80,
  [241] = 81,
  [242] = 82,
  [243] = 90,
  [244] = 84,
  [245] = 64,
  [246] = 86,
  [247] = 87,
  [248] = 88,
  [249] = 89,
  [250] = 60,
  [251] = 52,
  [252] = 92,
  [253] = 93,
  [254] = 69,
  [255] = 61,
  [256] = 67,
  [257] = 70,
  [258] = 72,
  [259] = 95,
  [260] = 65,
  [261] = 53,
  [262] = 63,
  [263] = 85,
  [264] = 264,
  [265] = 265,
  [266] = 266,
  [267] = 267,
  [268] = 268,
  [269] = 24,
  [270] = 20,
  [271] = 23,
  [272] = 23,
  [273] = 24,
  [274] = 21,
  [275] = 27,
  [276] = 22,
  [277] = 26,
  [278] = 24,
  [279] = 23,
  [280] = 25,
  [281] = 45,
  [282] = 46,
  [283] = 28,
  [284] = 42,
  [285] = 46,
  [286] = 41,
  [287] = 90,
  [288] = 47,
  [289] = 32,
  [290] = 290,
  [291] = 291,
  [292] = 46,
  [293] = 37,
  [294] = 294,
  [295] = 72,
  [296] = 43,
  [297] = 31,
  [298] = 33,
  [299] = 35,
  [300] = 79,
  [301] = 20,
  [302] = 61,
  [303] = 92,
  [304] = 74,
  [305] = 60,
  [306] = 95,
  [307] = 75,
  [308] = 308,
  [309] = 76,
  [310] = 70,
  [311] = 73,
  [312] = 63,
  [313] = 77,
  [314] = 64,
  [315] = 68,
  [316] = 80,
  [317] = 81,
  [318] = 65,
  [319] = 69,
  [320] = 82,
  [321] = 66,
  [322] = 67,
  [323] = 93,
  [324] = 308,
  [325] = 308,
  [326] = 308,
  [327] = 308,
  [328] = 308,
  [329] = 83,
  [330] = 84,
  [331] = 85,
  [332] = 86,
  [333] = 87,
  [334] = 88,
  [335] = 89,
  [336] = 336,
  [337] = 21,
  [338] = 90,
  [339] = 78,
  [340] = 27,
  [341] = 25,
  [342] = 22,
  [343] = 26,
  [344] = 90,
  [345] = 28,
  [346] = 346,
  [347] = 346,
  [348] = 346,
  [349] = 346,
  [350] = 21,
  [351] = 351,
  [352] = 346,
  [353] = 346,
  [354] = 20,
  [355] = 355,
  [356] = 356,
  [357] = 291,
  [358] = 294,
  [359] = 22,
  [360] = 360,
  [361] = 356,
  [362] = 26,
  [363] = 25,
  [364] = 41,
  [365] = 42,
  [366] = 45,
  [367] = 47,
  [368] = 32,
  [369] = 37,
  [370] = 43,
  [371] = 31,
  [372] = 33,
  [373] = 35,
  [374] = 27,
  [375] = 375,
  [376] = 376,
  [377] = 377,
  [378] = 356,
  [379] = 376,
  [380] = 377,
  [381] = 356,
  [382] = 376,
  [383] = 377,
  [384] = 356,
  [385] = 376,
  [386] = 377,
  [387] = 356,
  [388] = 376,
  [389] = 377,
  [390] = 376,
  [391] = 377,
  [392] = 392,
  [393] = 95,
  [394] = 76,
  [395] = 77,
  [396] = 78,
  [397] = 79,
  [398] = 80,
  [399] = 81,
  [400] = 82,
  [401] = 83,
  [402] = 84,
  [403] = 85,
  [404] = 86,
  [405] = 87,
  [406] = 88,
  [407] = 89,
  [408] = 408,
  [409] = 60,
  [410] = 61,
  [411] = 92,
  [412] = 72,
  [413] = 93,
  [414] = 63,
  [415] = 64,
  [416] = 65,
  [417] = 66,
  [418] = 67,
  [419] = 419,
  [420] = 68,
  [421] = 28,
  [422] = 69,
  [423] = 70,
  [424] = 424,
  [425] = 73,
  [426] = 74,
  [427] = 75,
  [428] = 428,
  [429] = 41,
  [430] = 430,
  [431] = 428,
  [432] = 430,
  [433] = 428,
  [434] = 42,
  [435] = 43,
  [436] = 35,
  [437] = 45,
  [438] = 33,
  [439] = 47,
  [440] = 32,
  [441] = 430,
  [442] = 428,
  [443] = 37,
  [444] = 430,
  [445] = 31,
  [446] = 428,
  [447] = 430,
  [448] = 428,
  [449] = 430,
  [450] = 81,
  [451] = 82,
  [452] = 72,
  [453] = 85,
  [454] = 92,
  [455] = 93,
  [456] = 68,
  [457] = 457,
  [458] = 69,
  [459] = 70,
  [460] = 86,
  [461] = 88,
  [462] = 89,
  [463] = 60,
  [464] = 61,
  [465] = 83,
  [466] = 63,
  [467] = 467,
  [468] = 64,
  [469] = 65,
  [470] = 73,
  [471] = 95,
  [472] = 74,
  [473] = 75,
  [474] = 76,
  [475] = 467,
  [476] = 77,
  [477] = 78,
  [478] = 87,
  [479] = 79,
  [480] = 80,
  [481] = 84,
  [482] = 482,
  [483] = 66,
  [484] = 67,
  [485] = 482,
  [486] = 486,
  [487] = 23,
  [488] = 24,
  [489] = 489,
  [490] = 490,
  [491] = 46,
  [492] = 90,
  [493] = 493,
  [494] = 494,
  [495] = 64,
  [496] = 496,
  [497] = 497,
  [498] = 66,
  [499] = 67,
  [500] = 500,
  [501] = 501,
  [502] = 63,
  [503] = 503,
  [504] = 504,
  [505] = 505,
  [506] = 506,
  [507] = 507,
  [508] = 508,
  [509] = 509,
  [510] = 65,
  [511] = 511,
  [512] = 512,
  [513] = 513,
  [514] = 514,
  [515] = 515,
  [516] = 516,
  [517] = 517,
  [518] = 518,
  [519] = 519,
  [520] = 520,
  [521] = 521,
  [522] = 522,
  [523] = 523,
  [524] = 515,
  [525] = 517,
  [526] = 526,
  [527] = 527,
  [528] = 518,
  [529] = 523,
  [530] = 523,
  [531] = 531,
  [532] = 523,
  [533] = 533,
  [534] = 534,
  [535] = 535,
  [536] = 536,
  [537] = 518,
  [538] = 538,
  [539] = 539,
  [540] = 533,
  [541] = 541,
  [542] = 542,
  [543] = 543,
  [544] = 515,
  [545] = 517,
  [546] = 546,
  [547] = 547,
  [548] = 547,
  [549] = 547,
  [550] = 550,
  [551] = 486,
  [552] = 552,
  [553] = 486,
  [554] = 554,
  [555] = 24,
  [556] = 486,
  [557] = 23,
  [558] = 558,
  [559] = 559,
  [560] = 560,
  [561] = 561,
  [562] = 562,
  [563] = 563,
  [564] = 564,
  [565] = 565,
  [566] = 566,
  [567] = 567,
  [568] = 568,
  [569] = 569,
  [570] = 570,
  [571] = 563,
  [572] = 558,
  [573] = 560,
  [574] = 562,
  [575] = 565,
  [576] = 566,
  [577] = 559,
  [578] = 564,
  [579] = 567,
  [580] = 550,
  [581] = 581,
  [582] = 570,
  [583] = 568,
  [584] = 569,
  [585] = 46,
  [586] = 586,
  [587] = 570,
  [588] = 568,
  [589] = 569,
  [590] = 586,
  [591] = 90,
  [592] = 562,
  [593] = 560,
  [594] = 586,
  [595] = 586,
  [596] = 596,
  [597] = 566,
  [598] = 565,
  [599] = 599,
  [600] = 570,
  [601] = 568,
  [602] = 569,
  [603] = 586,
  [604] = 558,
  [605] = 563,
  [606] = 586,
  [607] = 559,
  [608] = 564,
  [609] = 567,
  [610] = 565,
  [611] = 559,
  [612] = 564,
  [613] = 567,
  [614] = 566,
  [615] = 560,
  [616] = 562,
  [617] = 558,
  [618] = 618,
  [619] = 619,
  [620] = 620,
  [621] = 621,
  [622] = 622,
  [623] = 623,
  [624] = 619,
  [625] = 618,
  [626] = 620,
  [627] = 627,
  [628] = 619,
  [629] = 629,
  [630] = 623,
  [631] = 623,
  [632] = 627,
  [633] = 619,
  [634] = 620,
  [635] = 635,
  [636] = 618,
  [637] = 627,
  [638] = 638,
  [639] = 618,
  [640] = 623,
  [641] = 623,
  [642] = 620,
  [643] = 638,
  [644] = 638,
  [645] = 627,
  [646] = 619,
  [647] = 618,
  [648] = 623,
  [649] = 649,
  [650] = 650,
  [651] = 627,
  [652] = 620,
  [653] = 627,
  [654] = 654,
  [655] = 618,
  [656] = 638,
  [657] = 627,
  [658] = 619,
  [659] = 620,
  [660] = 618,
  [661] = 623,
  [662] = 619,
  [663] = 663,
  [664] = 664,
  [665] = 665,
  [666] = 666,
  [667] = 667,
  [668] = 668,
  [669] = 669,
  [670] = 670,
  [671] = 671,
  [672] = 672,
  [673] = 673,
  [674] = 674,
  [675] = 675,
  [676] = 670,
  [677] = 664,
  [678] = 670,
  [679] = 679,
  [680] = 670,
  [681] = 622,
  [682] = 664,
  [683] = 664,
  [684] = 684,
  [685] = 685,
  [686] = 686,
  [687] = 650,
  [688] = 688,
  [689] = 670,
  [690] = 664,
  [691] = 664,
  [692] = 692,
  [693] = 635,
  [694] = 670,
  [695] = 695,
  [696] = 696,
  [697] = 697,
  [698] = 622,
  [699] = 699,
  [700] = 700,
  [701] = 675,
  [702] = 702,
  [703] = 703,
  [704] = 704,
  [705] = 705,
  [706] = 706,
  [707] = 707,
  [708] = 702,
  [709] = 709,
  [710] = 710,
  [711] = 711,
  [712] = 712,
  [713] = 713,
  [714] = 714,
  [715] = 700,
  [716] = 707,
  [717] = 710,
  [718] = 718,
  [719] = 719,
  [720] = 720,
  [721] = 721,
  [722] = 722,
  [723] = 723,
  [724] = 699,
  [725] = 725,
  [726] = 702,
  [727] = 711,
  [728] = 728,
  [729] = 729,
  [730] = 702,
  [731] = 718,
  [732] = 732,
  [733] = 713,
  [734] = 714,
  [735] = 700,
  [736] = 707,
  [737] = 710,
  [738] = 738,
  [739] = 718,
  [740] = 719,
  [741] = 720,
  [742] = 721,
  [743] = 722,
  [744] = 723,
  [745] = 699,
  [746] = 711,
  [747] = 728,
  [748] = 748,
  [749] = 749,
  [750] = 688,
  [751] = 702,
  [752] = 752,
  [753] = 679,
  [754] = 754,
  [755] = 719,
  [756] = 756,
  [757] = 757,
  [758] = 713,
  [759] = 714,
  [760] = 700,
  [761] = 707,
  [762] = 710,
  [763] = 718,
  [764] = 719,
  [765] = 720,
  [766] = 721,
  [767] = 722,
  [768] = 723,
  [769] = 699,
  [770] = 711,
  [771] = 720,
  [772] = 728,
  [773] = 773,
  [774] = 721,
  [775] = 702,
  [776] = 635,
  [777] = 777,
  [778] = 778,
  [779] = 779,
  [780] = 713,
  [781] = 700,
  [782] = 707,
  [783] = 710,
  [784] = 718,
  [785] = 722,
  [786] = 723,
  [787] = 699,
  [788] = 728,
  [789] = 714,
  [790] = 790,
  [791] = 700,
  [792] = 707,
  [793] = 710,
  [794] = 718,
  [795] = 722,
  [796] = 723,
  [797] = 699,
  [798] = 728,
  [799] = 799,
  [800] = 700,
  [801] = 700,
  [802] = 712,
  [803] = 650,
  [804] = 700,
  [805] = 697,
  [806] = 756,
  [807] = 807,
  [808] = 712,
  [809] = 697,
  [810] = 756,
  [811] = 712,
  [812] = 697,
  [813] = 756,
  [814] = 814,
  [815] = 712,
  [816] = 697,
  [817] = 756,
  [818] = 722,
  [819] = 712,
  [820] = 712,
  [821] = 821,
  [822] = 697,
  [823] = 756,
  [824] = 728,
  [825] = 825,
  [826] = 826,
  [827] = 827,
  [828] = 723,
  [829] = 829,
  [830] = 830,
  [831] = 831,
  [832] = 832,
  [833] = 833,
  [834] = 834,
  [835] = 835,
  [836] = 836,
  [837] = 837,
  [838] = 838,
  [839] = 839,
  [840] = 840,
  [841] = 834,
  [842] = 842,
  [843] = 843,
  [844] = 679,
  [845] = 845,
  [846] = 832,
  [847] = 832,
  [848] = 832,
  [849] = 849,
  [850] = 850,
  [851] = 851,
  [852] = 852,
  [853] = 834,
  [854] = 854,
  [855] = 855,
  [856] = 856,
  [857] = 857,
  [858] = 858,
  [859] = 859,
  [860] = 860,
  [861] = 861,
  [862] = 862,
  [863] = 863,
  [864] = 834,
  [865] = 865,
  [866] = 839,
  [867] = 867,
  [868] = 868,
  [869] = 869,
  [870] = 870,
  [871] = 871,
  [872] = 872,
  [873] = 873,
  [874] = 874,
  [875] = 834,
  [876] = 876,
  [877] = 865,
  [878] = 839,
  [879] = 865,
  [880] = 834,
  [881] = 872,
  [882] = 882,
  [883] = 883,
  [884] = 865,
  [885] = 839,
  [886] = 675,
  [887] = 872,
  [888] = 872,
  [889] = 889,
  [890] = 890,
  [891] = 865,
  [892] = 892,
  [893] = 893,
  [894] = 894,
  [895] = 872,
  [896] = 896,
  [897] = 897,
  [898] = 865,
  [899] = 899,
  [900] = 872,
  [901] = 901,
  [902] = 902,
  [903] = 903,
  [904] = 904,
  [905] = 832,
  [906] = 906,
  [907] = 907,
  [908] = 908,
  [909] = 909,
  [910] = 910,
  [911] = 832,
  [912] = 688,
  [913] = 913,
  [914] = 914,
  [915] = 915,
  [916] = 916,
  [917] = 917,
  [918] = 918,
  [919] = 919,
  [920] = 920,
  [921] = 921,
  [922] = 922,
  [923] = 923,
  [924] = 924,
  [925] = 925,
  [926] = 856,
  [927] = 927,
  [928] = 928,
  [929] = 929,
  [930] = 928,
  [931] = 922,
  [932] = 932,
  [933] = 933,
  [934] = 934,
  [935] = 935,
  [936] = 925,
  [937] = 937,
  [938] = 938,
  [939] = 939,
  [940] = 940,
  [941] = 941,
  [942] = 942,
  [943] = 928,
  [944] = 944,
  [945] = 945,
  [946] = 921,
  [947] = 917,
  [948] = 948,
  [949] = 521,
  [950] = 933,
  [951] = 934,
  [952] = 922,
  [953] = 922,
  [954] = 937,
  [955] = 925,
  [956] = 956,
  [957] = 925,
  [958] = 937,
  [959] = 925,
  [960] = 960,
  [961] = 956,
  [962] = 962,
  [963] = 963,
  [964] = 964,
  [965] = 965,
  [966] = 933,
  [967] = 967,
  [968] = 934,
  [969] = 969,
  [970] = 928,
  [971] = 971,
  [972] = 939,
  [973] = 939,
  [974] = 974,
  [975] = 922,
  [976] = 837,
  [977] = 974,
  [978] = 978,
  [979] = 974,
  [980] = 921,
  [981] = 933,
  [982] = 934,
  [983] = 967,
  [984] = 984,
  [985] = 985,
  [986] = 937,
  [987] = 987,
  [988] = 988,
  [989] = 989,
  [990] = 962,
  [991] = 991,
  [992] = 937,
  [993] = 993,
  [994] = 925,
  [995] = 933,
  [996] = 996,
  [997] = 997,
  [998] = 922,
  [999] = 925,
  [1000] = 1000,
  [1001] = 922,
  [1002] = 925,
  [1003] = 967,
  [1004] = 928,
  [1005] = 1005,
  [1006] = 1006,
  [1007] = 928,
  [1008] = 934,
  [1009] = 939,
  [1010] = 967,
  [1011] = 933,
  [1012] = 934,
  [1013] = 974,
  [1014] = 1014,
  [1015] = 1015,
  [1016] = 1016,
  [1017] = 937,
  [1018] = 917,
  [1019] = 944,
  [1020] = 1020,
  [1021] = 939,
  [1022] = 917,
  [1023] = 944,
  [1024] = 1024,
  [1025] = 917,
  [1026] = 944,
  [1027] = 921,
  [1028] = 917,
  [1029] = 944,
  [1030] = 1030,
  [1031] = 944,
  [1032] = 1032,
  [1033] = 974,
  [1034] = 1000,
  [1035] = 997,
  [1036] = 1032,
  [1037] = 1000,
  [1038] = 997,
  [1039] = 1032,
  [1040] = 1000,
  [1041] = 997,
  [1042] = 1032,
  [1043] = 1000,
  [1044] = 997,
  [1045] = 1000,
  [1046] = 997,
  [1047] = 1032,
  [1048] = 939,
  [1049] = 974,
  [1050] = 967,
  [1051] = 1051,
  [1052] = 858,
  [1053] = 1032,
  [1054] = 921,
  [1055] = 1055,
  [1056] = 921,
  [1057] = 963,
  [1058] = 967,
  [1059] = 1059,
};

static const TSCharacterRange sym__upper_case_identifier_without_leading_whitespace_character_set_1[] = {
  {'A', 'Z'}, {0xc0, 0xd6}, {0xd8, 0xde}, {0x100, 0x100}, {0x102, 0x102}, {0x104, 0x104}, {0x106, 0x106}, {0x108, 0x108},
  {0x10a, 0x10a}, {0x10c, 0x10c}, {0x10e, 0x10e}, {0x110, 0x110}, {0x112, 0x112}, {0x114, 0x114}, {0x116, 0x116}, {0x118, 0x118},
  {0x11a, 0x11a}, {0x11c, 0x11c}, {0x11e, 0x11e}, {0x120, 0x120}, {0x122, 0x122}, {0x124, 0x124}, {0x126, 0x126}, {0x128, 0x128},
  {0x12a, 0x12a}, {0x12c, 0x12c}, {0x12e, 0x12e}, {0x130, 0x130}, {0x132, 0x132}, {0x134, 0x134}, {0x136, 0x136}, {0x139, 0x139},
  {0x13b, 0x13b}, {0x13d, 0x13d}, {0x13f, 0x13f}, {0x141, 0x141}, {0x143, 0x143}, {0x145, 0x145}, {0x147, 0x147}, {0x14a, 0x14a},
  {0x14c, 0x14c}, {0x14e, 0x14e}, {0x150, 0x150}, {0x152, 0x152}, {0x154, 0x154}, {0x156, 0x156}, {0x158, 0x158}, {0x15a, 0x15a},
  {0x15c, 0x15c}, {0x15e, 0x15e}, {0x160, 0x160}, {0x162, 0x162}, {0x164, 0x164}, {0x166, 0x166}, {0x168, 0x168}, {0x16a, 0x16a},
  {0x16c, 0x16c}, {0x16e, 0x16e}, {0x170, 0x170}, {0x172, 0x172}, {0x174, 0x174}, {0x176, 0x176}, {0x178, 0x179}, {0x17b, 0x17b},
  {0x17d, 0x17d}, {0x181, 0x182}, {0x184, 0x184}, {0x186, 0x187}, {0x189, 0x18b}, {0x18e, 0x191}, {0x193, 0x194}, {0x196, 0x198},
  {0x19c, 0x19d}, {0x19f, 0x1a0}, {0x1a2, 0x1a2}, {0x1a4, 0x1a4}, {0x1a6, 0x1a7}, {0x1a9, 0x1a9}, {0x1ac, 0x1ac}, {0x1ae, 0x1af},
  {0x1b1, 0x1b3}, {0x1b5, 0x1b5}, {0x1b7, 0x1b8}, {0x1bc, 0x1bc}, {0x1c4, 0x1c4}, {0x1c7, 0x1c7}, {0x1ca, 0x1ca}, {0x1cd, 0x1cd},
  {0x1cf, 0x1cf}, {0x1d1, 0x1d1}, {0x1d3, 0x1d3}, {0x1d5, 0x1d5}, {0x1d7, 0x1d7}, {0x1d9, 0x1d9}, {0x1db, 0x1db}, {0x1de, 0x1de},
  {0x1e0, 0x1e0}, {0x1e2, 0x1e2}, {0x1e4, 0x1e4}, {0x1e6, 0x1e6}, {0x1e8, 0x1e8}, {0x1ea, 0x1ea}, {0x1ec, 0x1ec}, {0x1ee, 0x1ee},
  {0x1f1, 0x1f1}, {0x1f4, 0x1f4}, {0x1f6, 0x1f8}, {0x1fa, 0x1fa}, {0x1fc, 0x1fc}, {0x1fe, 0x1fe}, {0x200, 0x200}, {0x202, 0x202},
  {0x204, 0x204}, {0x206, 0x206}, {0x208, 0x208}, {0x20a, 0x20a}, {0x20c, 0x20c}, {0x20e, 0x20e}, {0x210, 0x210}, {0x212, 0x212},
  {0x214, 0x214}, {0x216, 0x216}, {0x218, 0x218}, {0x21a, 0x21a}, {0x21c, 0x21c}, {0x21e, 0x21e}, {0x220, 0x220}, {0x222, 0x222},
  {0x224, 0x224}, {0x226, 0x226}, {0x228, 0x228}, {0x22a, 0x22a}, {0x22c, 0x22c}, {0x22e, 0x22e}, {0x230, 0x230}, {0x232, 0x232},
  {0x23a, 0x23b}, {0x23d, 0x23e}, {0x241, 0x241}, {0x243, 0x246}, {0x248, 0x248}, {0x24a, 0x24a}, {0x24c, 0x24c}, {0x24e, 0x24e},
  {0x370, 0x370}, {0x372, 0x372}, {0x376, 0x376}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x38f},
  {0x391, 0x3a1}, {0x3a3, 0x3ab}, {0x3cf, 0x3cf}, {0x3d2, 0x3d4}, {0x3d8, 0x3d8}, {0x3da, 0x3da}, {0x3dc, 0x3dc}, {0x3de, 0x3de},
  {0x3e0, 0x3e0}, {0x3e2, 0x3e2}, {0x3e4, 0x3e4}, {0x3e6, 0x3e6}, {0x3e8, 0x3e8}, {0x3ea, 0x3ea}, {0x3ec, 0x3ec}, {0x3ee, 0x3ee},
  {0x3f4, 0x3f4}, {0x3f7, 0x3f7}, {0x3f9, 0x3fa}, {0x3fd, 0x42f}, {0x460, 0x460}, {0x462, 0x462}, {0x464, 0x464}, {0x466, 0x466},
  {0x468, 0x468}, {0x46a, 0x46a}, {0x46c, 0x46c}, {0x46e, 0x46e}, {0x470, 0x470}, {0x472, 0x472}, {0x474, 0x474}, {0x476, 0x476},
  {0x478, 0x478}, {0x47a, 0x47a}, {0x47c, 0x47c}, {0x47e, 0x47e}, {0x480, 0x480}, {0x48a, 0x48a}, {0x48c, 0x48c}, {0x48e, 0x48e},
  {0x490, 0x490}, {0x492, 0x492}, {0x494, 0x494}, {0x496, 0x496}, {0x498, 0x498}, {0x49a, 0x49a}, {0x49c, 0x49c}, {0x49e, 0x49e},
  {0x4a0, 0x4a0}, {0x4a2, 0x4a2}, {0x4a4, 0x4a4}, {0x4a6, 0x4a6}, {0x4a8, 0x4a8}, {0x4aa, 0x4aa}, {0x4ac, 0x4ac}, {0x4ae, 0x4ae},
  {0x4b0, 0x4b0}, {0x4b2, 0x4b2}, {0x4b4, 0x4b4}, {0x4b6, 0x4b6}, {0x4b8, 0x4b8}, {0x4ba, 0x4ba}, {0x4bc, 0x4bc}, {0x4be, 0x4be},
  {0x4c0, 0x4c1}, {0x4c3, 0x4c3}, {0x4c5, 0x4c5}, {0x4c7, 0x4c7}, {0x4c9, 0x4c9}, {0x4cb, 0x4cb}, {0x4cd, 0x4cd}, {0x4d0, 0x4d0},
  {0x4d2, 0x4d2}, {0x4d4, 0x4d4}, {0x4d6, 0x4d6}, {0x4d8, 0x4d8}, {0x4da, 0x4da}, {0x4dc, 0x4dc}, {0x4de, 0x4de}, {0x4e0, 0x4e0},
  {0x4e2, 0x4e2}, {0x4e4, 0x4e4}, {0x4e6, 0x4e6}, {0x4e8, 0x4e8}, {0x4ea, 0x4ea}, {0x4ec, 0x4ec}, {0x4ee, 0x4ee}, {0x4f0, 0x4f0},
  {0x4f2, 0x4f2}, {0x4f4, 0x4f4}, {0x4f6, 0x4f6}, {0x4f8, 0x4f8}, {0x4fa, 0x4fa}, {0x4fc, 0x4fc}, {0x4fe, 0x4fe}, {0x500, 0x500},
  {0x502, 0x502}, {0x504, 0x504}, {0x506, 0x506}, {0x508, 0x508}, {0x50a, 0x50a}, {0x50c, 0x50c}, {0x50e, 0x50e}, {0x510, 0x510},
  {0x512, 0x512}, {0x514, 0x514}, {0x516, 0x516}, {0x518, 0x518}, {0x51a, 0x51a}, {0x51c, 0x51c}, {0x51e, 0x51e}, {0x520, 0x520},
  {0x522, 0x522}, {0x524, 0x524}, {0x526, 0x526}, {0x528, 0x528}, {0x52a, 0x52a}, {0x52c, 0x52c}, {0x52e, 0x52e}, {0x531, 0x556},
  {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x13a0, 0x13f5}, {0x1c89, 0x1c89}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1e00, 0x1e00},
  {0x1e02, 0x1e02}, {0x1e04, 0x1e04}, {0x1e06, 0x1e06}, {0x1e08, 0x1e08}, {0x1e0a, 0x1e0a}, {0x1e0c, 0x1e0c}, {0x1e0e, 0x1e0e}, {0x1e10, 0x1e10},
  {0x1e12, 0x1e12}, {0x1e14, 0x1e14}, {0x1e16, 0x1e16}, {0x1e18, 0x1e18}, {0x1e1a, 0x1e1a}, {0x1e1c, 0x1e1c}, {0x1e1e, 0x1e1e}, {0x1e20, 0x1e20},
  {0x1e22, 0x1e22}, {0x1e24, 0x1e24}, {0x1e26, 0x1e26}, {0x1e28, 0x1e28}, {0x1e2a, 0x1e2a}, {0x1e2c, 0x1e2c}, {0x1e2e, 0x1e2e}, {0x1e30, 0x1e30},
  {0x1e32, 0x1e32}, {0x1e34, 0x1e34}, {0x1e36, 0x1e36}, {0x1e38, 0x1e38}, {0x1e3a, 0x1e3a}, {0x1e3c, 0x1e3c}, {0x1e3e, 0x1e3e}, {0x1e40, 0x1e40},
  {0x1e42, 0x1e42}, {0x1e44, 0x1e44}, {0x1e46, 0x1e46}, {0x1e48, 0x1e48}, {0x1e4a, 0x1e4a}, {0x1e4c, 0x1e4c}, {0x1e4e, 0x1e4e}, {0x1e50, 0x1e50},
  {0x1e52, 0x1e52}, {0x1e54, 0x1e54}, {0x1e56, 0x1e56}, {0x1e58, 0x1e58}, {0x1e5a, 0x1e5a}, {0x1e5c, 0x1e5c}, {0x1e5e, 0x1e5e}, {0x1e60, 0x1e60},
  {0x1e62, 0x1e62}, {0x1e64, 0x1e64}, {0x1e66, 0x1e66}, {0x1e68, 0x1e68}, {0x1e6a, 0x1e6a}, {0x1e6c, 0x1e6c}, {0x1e6e, 0x1e6e}, {0x1e70, 0x1e70},
  {0x1e72, 0x1e72}, {0x1e74, 0x1e74}, {0x1e76, 0x1e76}, {0x1e78, 0x1e78}, {0x1e7a, 0x1e7a}, {0x1e7c, 0x1e7c}, {0x1e7e, 0x1e7e}, {0x1e80, 0x1e80},
  {0x1e82, 0x1e82}, {0x1e84, 0x1e84}, {0x1e86, 0x1e86}, {0x1e88, 0x1e88}, {0x1e8a, 0x1e8a}, {0x1e8c, 0x1e8c}, {0x1e8e, 0x1e8e}, {0x1e90, 0x1e90},
  {0x1e92, 0x1e92}, {0x1e94, 0x1e94}, {0x1e9e, 0x1e9e}, {0x1ea0, 0x1ea0}, {0x1ea2, 0x1ea2}, {0x1ea4, 0x1ea4}, {0x1ea6, 0x1ea6}, {0x1ea8, 0x1ea8},
  {0x1eaa, 0x1eaa}, {0x1eac, 0x1eac}, {0x1eae, 0x1eae}, {0x1eb0, 0x1eb0}, {0x1eb2, 0x1eb2}, {0x1eb4, 0x1eb4}, {0x1eb6, 0x1eb6}, {0x1eb8, 0x1eb8},
  {0x1eba, 0x1eba}, {0x1ebc, 0x1ebc}, {0x1ebe, 0x1ebe}, {0x1ec0, 0x1ec0}, {0x1ec2, 0x1ec2}, {0x1ec4, 0x1ec4}, {0x1ec6, 0x1ec6}, {0x1ec8, 0x1ec8},
  {0x1eca, 0x1eca}, {0x1ecc, 0x1ecc}, {0x1ece, 0x1ece}, {0x1ed0, 0x1ed0}, {0x1ed2, 0x1ed2}, {0x1ed4, 0x1ed4}, {0x1ed6, 0x1ed6}, {0x1ed8, 0x1ed8},
  {0x1eda, 0x1eda}, {0x1edc, 0x1edc}, {0x1ede, 0x1ede}, {0x1ee0, 0x1ee0}, {0x1ee2, 0x1ee2}, {0x1ee4, 0x1ee4}, {0x1ee6, 0x1ee6}, {0x1ee8, 0x1ee8},
  {0x1eea, 0x1eea}, {0x1eec, 0x1eec}, {0x1eee, 0x1eee}, {0x1ef0, 0x1ef0}, {0x1ef2, 0x1ef2}, {0x1ef4, 0x1ef4}, {0x1ef6, 0x1ef6}, {0x1ef8, 0x1ef8},
  {0x1efa, 0x1efa}, {0x1efc, 0x1efc}, {0x1efe, 0x1efe}, {0x1f08, 0x1f0f}, {0x1f18, 0x1f1d}, {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d},
  {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f5f}, {0x1f68, 0x1f6f}, {0x1fb8, 0x1fbb}, {0x1fc8, 0x1fcb}, {0x1fd8, 0x1fdb},
  {0x1fe8, 0x1fec}, {0x1ff8, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210b, 0x210d}, {0x2110, 0x2112}, {0x2115, 0x2115}, {0x2119, 0x211d},
  {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x2130, 0x2133}, {0x213e, 0x213f}, {0x2145, 0x2145}, {0x2183, 0x2183},
  {0x2c00, 0x2c2f}, {0x2c60, 0x2c60}, {0x2c62, 0x2c64}, {0x2c67, 0x2c67}, {0x2c69, 0x2c69}, {0x2c6b, 0x2c6b}, {0x2c6d, 0x2c70}, {0x2c72, 0x2c72},
  {0x2c75, 0x2c75}, {0x2c7e, 0x2c80}, {0x2c82, 0x2c82}, {0x2c84, 0x2c84}, {0x2c86, 0x2c86}, {0x2c88, 0x2c88}, {0x2c8a, 0x2c8a}, {0x2c8c, 0x2c8c},
  {0x2c8e, 0x2c8e}, {0x2c90, 0x2c90}, {0x2c92, 0x2c92}, {0x2c94, 0x2c94}, {0x2c96, 0x2c96}, {0x2c98, 0x2c98}, {0x2c9a, 0x2c9a}, {0x2c9c, 0x2c9c},
  {0x2c9e, 0x2c9e}, {0x2ca0, 0x2ca0}, {0x2ca2, 0x2ca2}, {0x2ca4, 0x2ca4}, {0x2ca6, 0x2ca6}, {0x2ca8, 0x2ca8}, {0x2caa, 0x2caa}, {0x2cac, 0x2cac},
  {0x2cae, 0x2cae}, {0x2cb0, 0x2cb0}, {0x2cb2, 0x2cb2}, {0x2cb4, 0x2cb4}, {0x2cb6, 0x2cb6}, {0x2cb8, 0x2cb8}, {0x2cba, 0x2cba}, {0x2cbc, 0x2cbc},
  {0x2cbe, 0x2cbe}, {0x2cc0, 0x2cc0}, {0x2cc2, 0x2cc2}, {0x2cc4, 0x2cc4}, {0x2cc6, 0x2cc6}, {0x2cc8, 0x2cc8}, {0x2cca, 0x2cca}, {0x2ccc, 0x2ccc},
  {0x2cce, 0x2cce}, {0x2cd0, 0x2cd0}, {0x2cd2, 0x2cd2}, {0x2cd4, 0x2cd4}, {0x2cd6, 0x2cd6}, {0x2cd8, 0x2cd8}, {0x2cda, 0x2cda}, {0x2cdc, 0x2cdc},
  {0x2cde, 0x2cde}, {0x2ce0, 0x2ce0}, {0x2ce2, 0x2ce2}, {0x2ceb, 0x2ceb}, {0x2ced, 0x2ced}, {0x2cf2, 0x2cf2}, {0xa640, 0xa640}, {0xa642, 0xa642},
  {0xa644, 0xa644}, {0xa646, 0xa646}, {0xa648, 0xa648}, {0xa64a, 0xa64a}, {0xa64c, 0xa64c}, {0xa64e, 0xa64e}, {0xa650, 0xa650}, {0xa652, 0xa652},
  {0xa654, 0xa654}, {0xa656, 0xa656}, {0xa658, 0xa658}, {0xa65a, 0xa65a}, {0xa65c, 0xa65c}, {0xa65e, 0xa65e}, {0xa660, 0xa660}, {0xa662, 0xa662},
  {0xa664, 0xa664}, {0xa666, 0xa666}, {0xa668, 0xa668}, {0xa66a, 0xa66a}, {0xa66c, 0xa66c}, {0xa680, 0xa680}, {0xa682, 0xa682}, {0xa684, 0xa684},
  {0xa686, 0xa686}, {0xa688, 0xa688}, {0xa68a, 0xa68a}, {0xa68c, 0xa68c}, {0xa68e, 0xa68e}, {0xa690, 0xa690}, {0xa692, 0xa692}, {0xa694, 0xa694},
  {0xa696, 0xa696}, {0xa698, 0xa698}, {0xa69a, 0xa69a}, {0xa722, 0xa722}, {0xa724, 0xa724}, {0xa726, 0xa726}, {0xa728, 0xa728}, {0xa72a, 0xa72a},
  {0xa72c, 0xa72c}, {0xa72e, 0xa72e}, {0xa732, 0xa732}, {0xa734, 0xa734}, {0xa736, 0xa736}, {0xa738, 0xa738}, {0xa73a, 0xa73a}, {0xa73c, 0xa73c},
  {0xa73e, 0xa73e}, {0xa740, 0xa740}, {0xa742, 0xa742}, {0xa744, 0xa744}, {0xa746, 0xa746}, {0xa748, 0xa748}, {0xa74a, 0xa74a}, {0xa74c, 0xa74c},
  {0xa74e, 0xa74e}, {0xa750, 0xa750}, {0xa752, 0xa752}, {0xa754, 0xa754}, {0xa756, 0xa756}, {0xa758, 0xa758}, {0xa75a, 0xa75a}, {0xa75c, 0xa75c},
  {0xa75e, 0xa75e}, {0xa760, 0xa760}, {0xa762, 0xa762}, {0xa764, 0xa764}, {0xa766, 0xa766}, {0xa768, 0xa768}, {0xa76a, 0xa76a}, {0xa76c, 0xa76c},
  {0xa76e, 0xa76e}, {0xa779, 0xa779}, {0xa77b, 0xa77b}, {0xa77d, 0xa77e}, {0xa780, 0xa780}, {0xa782, 0xa782}, {0xa784, 0xa784}, {0xa786, 0xa786},
  {0xa78b, 0xa78b}, {0xa78d, 0xa78d}, {0xa790, 0xa790}, {0xa792, 0xa792}, {0xa796, 0xa796}, {0xa798, 0xa798}, {0xa79a, 0xa79a}, {0xa79c, 0xa79c},
  {0xa79e, 0xa79e}, {0xa7a0, 0xa7a0}, {0xa7a2, 0xa7a2}, {0xa7a4, 0xa7a4}, {0xa7a6, 0xa7a6}, {0xa7a8, 0xa7a8}, {0xa7aa, 0xa7ae}, {0xa7b0, 0xa7b4},
  {0xa7b6, 0xa7b6}, {0xa7b8, 0xa7b8}, {0xa7ba, 0xa7ba}, {0xa7bc, 0xa7bc}, {0xa7be, 0xa7be}, {0xa7c0, 0xa7c0}, {0xa7c2, 0xa7c2}, {0xa7c4, 0xa7c7},
  {0xa7c9, 0xa7c9}, {0xa7cb, 0xa7cc}, {0xa7d0, 0xa7d0}, {0xa7d6, 0xa7d6}, {0xa7d8, 0xa7d8}, {0xa7da, 0xa7da}, {0xa7dc, 0xa7dc}, {0xa7f5, 0xa7f5},
  {0xff21, 0xff3a}, {0x10400, 0x10427}, {0x104b0, 0x104d3}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10c80, 0x10cb2},
  {0x10d50, 0x10d65}, {0x118a0, 0x118bf}, {0x16e40, 0x16e5f}, {0x1d400, 0x1d419}, {0x1d434, 0x1d44d}, {0x1d468, 0x1d481}, {0x1d49c, 0x1d49c}, {0x1d49e, 0x1d49f},
  {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9}, {0x1d504, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514},
  {0x1d516, 0x1d51c}, {0x1d538, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d56c, 0x1d585}, {0x1d5a0, 0x1d5b9},
  {0x1d5d4, 0x1d5ed}, {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689}, {0x1d6a8, 0x1d6c0}, {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734}, {0x1d756, 0x1d76e},
  {0x1d790, 0x1d7a8}, {0x1d7ca, 0x1d7ca}, {0x1e900, 0x1e921},
};

static const TSCharacterRange sym__upper_case_identifier_without_leading_whitespace_character_set_2[] = {
  {'0', '9'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6},
  {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374}, {0x376, 0x377},
  {0x37a, 0x37d}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481},
  {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a}, {0x66e, 0x66f},
  {0x671, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f},
  {0x74d, 0x7a5}, {0x7b1, 0x7b1}, {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a}, {0x824, 0x824},
  {0x828, 0x828}, {0x840, 0x858}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x8a0, 0x8c9}, {0x904, 0x939}, {0x93d, 0x93d},
  {0x950, 0x950}, {0x958, 0x961}, {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2},
  {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0x9fc, 0x9fc}, {0xa05, 0xa0a},
  {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e},
  {0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd},
  {0xad0, 0xad0}, {0xae0, 0xae1}, {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33},
  {0xb35, 0xb39}, {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90},
  {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbd0, 0xbd0},
  {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, {0xc5d, 0xc5d}, {0xc60, 0xc61},
  {0xc80, 0xc80}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcdd, 0xcde},
  {0xce0, 0xce1}, {0xcf1, 0xcf2}, {0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e}, {0xd54, 0xd56},
  {0xd5f, 0xd61}, {0xd7a, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30},
  {0xe32, 0xe33}, {0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xeb0},
  {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6c},
  {0xf88, 0xf8c}, {0x1000, 0x102a}, {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, {0x1065, 0x1066}, {0x106e, 0x1070},
  {0x1075, 0x1081}, {0x108e, 0x108e}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d},
  {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be},
  {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f}, {0x13a0, 0x13f5},
  {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16f1, 0x16f8}, {0x1700, 0x1711}, {0x171f, 0x1731},
  {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1878}, {0x1880, 0x1884},
  {0x1887, 0x18a8}, {0x18aa, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9},
  {0x1a00, 0x1a16}, {0x1a20, 0x1a54}, {0x1aa7, 0x1aa7}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, {0x1bba, 0x1be5},
  {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, {0x1c80, 0x1c8a}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, {0x1cee, 0x1cf3},
  {0x1cf5, 0x1cf6}, {0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
  {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4},
  {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f},
  {0x2090, 0x209c}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126},
  {0x2128, 0x2128}, {0x212a, 0x212d}, {0x212f, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2183, 0x2184}, {0x2c00, 0x2ce4},
  {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96},
  {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde},
  {0x2e2f, 0x2e2f}, {0x3005, 0x3006}, {0x3031, 0x3035}, {0x303b, 0x303c}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff},
  {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c},
  {0xa610, 0xa61f}, {0xa62a, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d}, {0xa6a0, 0xa6e5}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7cd},
  {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7dc}, {0xa7f2, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa840, 0xa873},
  {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa8fe}, {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2},
  {0xa9cf, 0xa9cf}, {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa60, 0xaa76},
  {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1}, {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, {0xaadb, 0xaadd},
  {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a},
  {0xab5c, 0xab69}, {0xab70, 0xabe2}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06},
  {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44},
  {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff21, 0xff3a},
  {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026},
  {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x10300, 0x1031f},
  {0x1032d, 0x10340}, {0x10342, 0x10349}, {0x10350, 0x10375}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x10400, 0x1049d}, {0x104b0, 0x104d3},
  {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1},
  {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x105c0, 0x105f3}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785},
  {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855},
  {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109b7}, {0x109be, 0x109bf},
  {0x10a00, 0x10a00}, {0x10a10, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4},
  {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d23},
  {0x10d4a, 0x10d65}, {0x10d6f, 0x10d85}, {0x10e80, 0x10ea9}, {0x10eb0, 0x10eb1}, {0x10ec2, 0x10ec4}, {0x10f00, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f45},
  {0x10f70, 0x10f81}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11003, 0x11037}, {0x11071, 0x11072}, {0x11075, 0x11075}, {0x11083, 0x110af}, {0x110d0, 0x110e8},
  {0x11103, 0x11126}, {0x11144, 0x11144}, {0x11147, 0x11147}, {0x11150, 0x11172}, {0x11176, 0x11176}, {0x11183, 0x111b2}, {0x111c1, 0x111c4}, {0x111da, 0x111da},
  {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x1123f, 0x11240}, {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d},
  {0x1129f, 0x112a8}, {0x112b0, 0x112de}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339},
  {0x1133d, 0x1133d}, {0x11350, 0x11350}, {0x1135d, 0x11361}, {0x11380, 0x11389}, {0x1138b, 0x1138b}, {0x1138e, 0x1138e}, {0x11390, 0x113b5}, {0x113b7, 0x113b7},
  {0x113d1, 0x113d1}, {0x113d3, 0x113d3}, {0x11400, 0x11434}, {0x11447, 0x1144a}, {0x1145f, 0x11461}, {0x11480, 0x114af}, {0x114c4, 0x114c5}, {0x114c7, 0x114c7},
  {0x11580, 0x115ae}, {0x115d8, 0x115db}, {0x11600, 0x1162f}, {0x11644, 0x11644}, {0x11680, 0x116aa}, {0x116b8, 0x116b8}, {0x11700, 0x1171a}, {0x11740, 0x11746},
  {0x11800, 0x1182b}, {0x118a0, 0x118df}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x1192f}, {0x1193f, 0x1193f},
  {0x11941, 0x11941}, {0x119a0, 0x119a7}, {0x119aa, 0x119d0}, {0x119e1, 0x119e1}, {0x119e3, 0x119e3}, {0x11a00, 0x11a00}, {0x11a0b, 0x11a32}, {0x11a3a, 0x11a3a},
  {0x11a50, 0x11a50}, {0x11a5c, 0x11a89}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11bc0, 0x11be0}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c2e}, {0x11c40, 0x11c40},
  {0x11c72, 0x11c8f}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d30}, {0x11d46, 0x11d46}, {0x11d60, 0x11d65}, {0x11d67, 0x11d68}, {0x11d6a, 0x11d89},
  {0x11d98, 0x11d98}, {0x11ee0, 0x11ef2}, {0x11f02, 0x11f02}, {0x11f04, 0x11f10}, {0x11f12, 0x11f33}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12480, 0x12543},
  {0x12f90, 0x12ff0}, {0x13000, 0x1342f}, {0x13441, 0x13446}, {0x13460, 0x143fa}, {0x14400, 0x14646}, {0x16100, 0x1611d}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e},
  {0x16a70, 0x16abe}, {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f}, {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16d40, 0x16d6c}, {0x16e40, 0x16e7f},
  {0x16f00, 0x16f4a}, {0x16f50, 0x16f50}, {0x16f93, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe3}, {0x17000, 0x187f7}, {0x18800, 0x18cd5}, {0x18cff, 0x18d08},
  {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, {0x1b155, 0x1b155}, {0x1b164, 0x1b167},
  {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f},
  {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a},
  {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5},
  {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788},
  {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1df00, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e030, 0x1e06d}, {0x1e100, 0x1e12c}, {0x1e137, 0x1e13d},
  {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ad}, {0x1e2c0, 0x1e2eb}, {0x1e4d0, 0x1e4eb}, {0x1e5d0, 0x1e5ed}, {0x1e5f0, 0x1e5f0}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb},
  {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, {0x1e800, 0x1e8c4}, {0x1e900, 0x1e943}, {0x1e94b, 0x1e94b}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22},
  {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47},
  {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b},
  {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c},
  {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x20000, 0x2a6df}, {0x2a700, 0x2b739},
  {0x2b740, 0x2b81d}, {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0}, {0x2ebf0, 0x2ee5d}, {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0x31350, 0x323af},
};

static const TSCharacterRange sym__lower_case_identifier_without_leading_whitespace_character_set_1[] = {
  {'a', 'z'}, {0xb5, 0xb5}, {0xdf, 0xf6}, {0xf8, 0xff}, {0x101, 0x101}, {0x103, 0x103}, {0x105, 0x105}, {0x107, 0x107},
  {0x109, 0x109}, {0x10b, 0x10b}, {0x10d, 0x10d}, {0x10f, 0x10f}, {0x111, 0x111}, {0x113, 0x113}, {0x115, 0x115}, {0x117, 0x117},
  {0x119, 0x119}, {0x11b, 0x11b}, {0x11d, 0x11d}, {0x11f, 0x11f}, {0x121, 0x121}, {0x123, 0x123}, {0x125, 0x125}, {0x127, 0x127},
  {0x129, 0x129}, {0x12b, 0x12b}, {0x12d, 0x12d}, {0x12f, 0x12f}, {0x131, 0x131}, {0x133, 0x133}, {0x135, 0x135}, {0x137, 0x138},
  {0x13a, 0x13a}, {0x13c, 0x13c}, {0x13e, 0x13e}, {0x140, 0x140}, {0x142, 0x142}, {0x144, 0x144}, {0x146, 0x146}, {0x148, 0x149},
  {0x14b, 0x14b}, {0x14d, 0x14d}, {0x14f, 0x14f}, {0x151, 0x151}, {0x153, 0x153}, {0x155, 0x155}, {0x157, 0x157}, {0x159, 0x159},
  {0x15b, 0x15b}, {0x15d, 0x15d}, {0x15f, 0x15f}, {0x161, 0x161}, {0x163, 0x163}, {0x165, 0x165}, {0x167, 0x167}, {0x169, 0x169},
  {0x16b, 0x16b}, {0x16d, 0x16d}, {0x16f, 0x16f}, {0x171, 0x171}, {0x173, 0x173}, {0x175, 0x175}, {0x177, 0x177}, {0x17a, 0x17a},
  {0x17c, 0x17c}, {0x17e, 0x180}, {0x183, 0x183}, {0x185, 0x185}, {0x188, 0x188}, {0x18c, 0x18d}, {0x192, 0x192}, {0x195, 0x195},
  {0x199, 0x19b}, {0x19e, 0x19e}, {0x1a1, 0x1a1}, {0x1a3, 0x1a3}, {0x1a5, 0x1a5}, {0x1a8, 0x1a8}, {0x1aa, 0x1ab}, {0x1ad, 0x1ad},
  {0x1b0, 0x1b0}, {0x1b4, 0x1b4}, {0x1b6, 0x1b6}, {0x1b9, 0x1ba}, {0x1bd, 0x1bf}, {0x1c6, 0x1c6}, {0x1c9, 0x1c9}, {0x1cc, 0x1cc},
  {0x1ce, 0x1ce}, {0x1d0, 0x1d0}, {0x1d2, 0x1d2}, {0x1d4, 0x1d4}, {0x1d6, 0x1d6}, {0x1d8, 0x1d8}, {0x1da, 0x1da}, {0x1dc, 0x1dd},
  {0x1df, 0x1df}, {0x1e1, 0x1e1}, {0x1e3, 0x1e3}, {0x1e5, 0x1e5}, {0x1e7, 0x1e7}, {0x1e9, 0x1e9}, {0x1eb, 0x1eb}, {0x1ed, 0x1ed},
  {0x1ef, 0x1f0}, {0x1f3, 0x1f3}, {0x1f5, 0x1f5}, {0x1f9, 0x1f9}, {0x1fb, 0x1fb}, {0x1fd, 0x1fd}, {0x1ff, 0x1ff}, {0x201, 0x201},
  {0x203, 0x203}, {0x205, 0x205}, {0x207, 0x207}, {0x209, 0x209}, {0x20b, 0x20b}, {0x20d, 0x20d}, {0x20f, 0x20f}, {0x211, 0x211},
  {0x213, 0x213}, {0x215, 0x215}, {0x217, 0x217}, {0x219, 0x219}, {0x21b, 0x21b}, {0x21d, 0x21d}, {0x21f, 0x21f}, {0x221, 0x221},
  {0x223, 0x223}, {0x225, 0x225}, {0x227, 0x227}, {0x229, 0x229}, {0x22b, 0x22b}, {0x22d, 0x22d}, {0x22f, 0x22f}, {0x231, 0x231},
  {0x233, 0x239}, {0x23c, 0x23c}, {0x23f, 0x240}, {0x242, 0x242}, {0x247, 0x247}, {0x249, 0x249}, {0x24b, 0x24b}, {0x24d, 0x24d},
  {0x24f, 0x293}, {0x295, 0x2af}, {0x371, 0x371}, {0x373, 0x373}, {0x377, 0x377}, {0x37b, 0x37d}, {0x390, 0x390}, {0x3ac, 0x3ce},
  {0x3d0, 0x3d1}, {0x3d5, 0x3d7}, {0x3d9, 0x3d9}, {0x3db, 0x3db}, {0x3dd, 0x3dd}, {0x3df, 0x3df}, {0x3e1, 0x3e1}, {0x3e3, 0x3e3},
  {0x3e5, 0x3e5}, {0x3e7, 0x3e7}, {0x3e9, 0x3e9}, {0x3eb, 0x3eb}, {0x3ed, 0x3ed}, {0x3ef, 0x3f3}, {0x3f5, 0x3f5}, {0x3f8, 0x3f8},
  {0x3fb, 0x3fc}, {0x430, 0x45f}, {0x461, 0x461}, {0x463, 0x463}, {0x465, 0x465}, {0x467, 0x467}, {0x469, 0x469}, {0x46b, 0x46b},
  {0x46d, 0x46d}, {0x46f, 0x46f}, {0x471, 0x471}, {0x473, 0x473}, {0x475, 0x475}, {0x477, 0x477}, {0x479, 0x479}, {0x47b, 0x47b},
  {0x47d, 0x47d}, {0x47f, 0x47f}, {0x481, 0x481}, {0x48b, 0x48b}, {0x48d, 0x48d}, {0x48f, 0x48f}, {0x491, 0x491}, {0x493, 0x493},
  {0x495, 0x495}, {0x497, 0x497}, {0x499, 0x499}, {0x49b, 0x49b}, {0x49d, 0x49d}, {0x49f, 0x49f}, {0x4a1, 0x4a1}, {0x4a3, 0x4a3},
  {0x4a5, 0x4a5}, {0x4a7, 0x4a7}, {0x4a9, 0x4a9}, {0x4ab, 0x4ab}, {0x4ad, 0x4ad}, {0x4af, 0x4af}, {0x4b1, 0x4b1}, {0x4b3, 0x4b3},
  {0x4b5, 0x4b5}, {0x4b7, 0x4b7}, {0x4b9, 0x4b9}, {0x4bb, 0x4bb}, {0x4bd, 0x4bd}, {0x4bf, 0x4bf}, {0x4c2, 0x4c2}, {0x4c4, 0x4c4},
  {0x4c6, 0x4c6}, {0x4c8, 0x4c8}, {0x4ca, 0x4ca}, {0x4cc, 0x4cc}, {0x4ce, 0x4cf}, {0x4d1, 0x4d1}, {0x4d3, 0x4d3}, {0x4d5, 0x4d5},
  {0x4d7, 0x4d7}, {0x4d9, 0x4d9}, {0x4db, 0x4db}, {0x4dd, 0x4dd}, {0x4df, 0x4df}, {0x4e1, 0x4e1}, {0x4e3, 0x4e3}, {0x4e5, 0x4e5},
  {0x4e7, 0x4e7}, {0x4e9, 0x4e9}, {0x4eb, 0x4eb}, {0x4ed, 0x4ed}, {0x4ef, 0x4ef}, {0x4f1, 0x4f1}, {0x4f3, 0x4f3}, {0x4f5, 0x4f5},
  {0x4f7, 0x4f7}, {0x4f9, 0x4f9}, {0x4fb, 0x4fb}, {0x4fd, 0x4fd}, {0x4ff, 0x4ff}, {0x501, 0x501}, {0x503, 0x503}, {0x505, 0x505},
  {0x507, 0x507}, {0x509, 0x509}, {0x50b, 0x50b}, {0x50d, 0x50d}, {0x50f, 0x50f}, {0x511, 0x511}, {0x513, 0x513}, {0x515, 0x515},
  {0x517, 0x517}, {0x519, 0x519}, {0x51b, 0x51b}, {0x51d, 0x51d}, {0x51f, 0x51f}, {0x521, 0x521}, {0x523, 0x523}, {0x525, 0x525},
  {0x527, 0x527}, {0x529, 0x529}, {0x52b, 0x52b}, {0x52d, 0x52d}, {0x52f, 0x52f}, {0x560, 0x588}, {0x10d0, 0x10fa}, {0x10fd, 0x10ff},
  {0x13f8, 0x13fd}, {0x1c80, 0x1c88}, {0x1c8a, 0x1c8a}, {0x1d00, 0x1d2b}, {0x1d6b, 0x1d77}, {0x1d79, 0x1d9a}, {0x1e01, 0x1e01}, {0x1e03, 0x1e03},
  {0x1e05, 0x1e05}, {0x1e07, 0x1e07}, {0x1e09, 0x1e09}, {0x1e0b, 0x1e0b}, {0x1e0d, 0x1e0d}, {0x1e0f, 0x1e0f}, {0x1e11, 0x1e11}, {0x1e13, 0x1e13},
  {0x1e15, 0x1e15}, {0x1e17, 0x1e17}, {0x1e19, 0x1e19}, {0x1e1b, 0x1e1b}, {0x1e1d, 0x1e1d}, {0x1e1f, 0x1e1f}, {0x1e21, 0x1e21}, {0x1e23, 0x1e23},
  {0x1e25, 0x1e25}, {0x1e27, 0x1e27}, {0x1e29, 0x1e29}, {0x1e2b, 0x1e2b}, {0x1e2d, 0x1e2d}, {0x1e2f, 0x1e2f}, {0x1e31, 0x1e31}, {0x1e33, 0x1e33},
  {0x1e35, 0x1e35}, {0x1e37, 0x1e37}, {0x1e39, 0x1e39}, {0x1e3b, 0x1e3b}, {0x1e3d, 0x1e3d}, {0x1e3f, 0x1e3f}, {0x1e41, 0x1e41}, {0x1e43, 0x1e43},
  {0x1e45, 0x1e45}, {0x1e47, 0x1e47}, {0x1e49, 0x1e49}, {0x1e4b, 0x1e4b}, {0x1e4d, 0x1e4d}, {0x1e4f, 0x1e4f}, {0x1e51, 0x1e51}, {0x1e53, 0x1e53},
  {0x1e55, 0x1e55}, {0x1e57, 0x1e57}, {0x1e59, 0x1e59}, {0x1e5b, 0x1e5b}, {0x1e5d, 0x1e5d}, {0x1e5f, 0x1e5f}, {0x1e61, 0x1e61}, {0x1e63, 0x1e63},
  {0x1e65, 0x1e65}, {0x1e67, 0x1e67}, {0x1e69, 0x1e69}, {0x1e6b, 0x1e6b}, {0x1e6d, 0x1e6d}, {0x1e6f, 0x1e6f}, {0x1e71, 0x1e71}, {0x1e73, 0x1e73},
  {0x1e75, 0x1e75}, {0x1e77, 0x1e77}, {0x1e79, 0x1e79}, {0x1e7b, 0x1e7b}, {0x1e7d, 0x1e7d}, {0x1e7f, 0x1e7f}, {0x1e81, 0x1e81}, {0x1e83, 0x1e83},
  {0x1e85, 0x1e85}, {0x1e87, 0x1e87}, {0x1e89, 0x1e89}, {0x1e8b, 0x1e8b}, {0x1e8d, 0x1e8d}, {0x1e8f, 0x1e8f}, {0x1e91, 0x1e91}, {0x1e93, 0x1e93},
  {0x1e95, 0x1e9d}, {0x1e9f, 0x1e9f}, {0x1ea1, 0x1ea1}, {0x1ea3, 0x1ea3}, {0x1ea5, 0x1ea5}, {0x1ea7, 0x1ea7}, {0x1ea9, 0x1ea9}, {0x1eab, 0x1eab},
  {0x1ead, 0x1ead}, {0x1eaf, 0x1eaf}, {0x1eb1, 0x1eb1}, {0x1eb3, 0x1eb3}, {0x1eb5, 0x1eb5}, {0x1eb7, 0x1eb7}, {0x1eb9, 0x1eb9}, {0x1ebb, 0x1ebb},
  {0x1ebd, 0x1ebd}, {0x1ebf, 0x1ebf}, {0x1ec1, 0x1ec1}, {0x1ec3, 0x1ec3}, {0x1ec5, 0x1ec5}, {0x1ec7, 0x1ec7}, {0x1ec9, 0x1ec9}, {0x1ecb, 0x1ecb},
  {0x1ecd, 0x1ecd}, {0x1ecf, 0x1ecf}, {0x1ed1, 0x1ed1}, {0x1ed3, 0x1ed3}, {0x1ed5, 0x1ed5}, {0x1ed7, 0x1ed7}, {0x1ed9, 0x1ed9}, {0x1edb, 0x1edb},
  {0x1edd, 0x1edd}, {0x1edf, 0x1edf}, {0x1ee1, 0x1ee1}, {0x1ee3, 0x1ee3}, {0x1ee5, 0x1ee5}, {0x1ee7, 0x1ee7}, {0x1ee9, 0x1ee9}, {0x1eeb, 0x1eeb},
  {0x1eed, 0x1eed}, {0x1eef, 0x1eef}, {0x1ef1, 0x1ef1}, {0x1ef3, 0x1ef3}, {0x1ef5, 0x1ef5}, {0x1ef7, 0x1ef7}, {0x1ef9, 0x1ef9}, {0x1efb, 0x1efb},
  {0x1efd, 0x1efd}, {0x1eff, 0x1f07}, {0x1f10, 0x1f15}, {0x1f20, 0x1f27}, {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, {0x1f50, 0x1f57}, {0x1f60, 0x1f67},
  {0x1f70, 0x1f7d}, {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fb7}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4},
  {0x1fc6, 0x1fc7}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fd7}, {0x1fe0, 0x1fe7}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ff7}, {0x210a, 0x210a}, {0x210e, 0x210f},
  {0x2113, 0x2113}, {0x212f, 0x212f}, {0x2134, 0x2134}, {0x2139, 0x2139}, {0x213c, 0x213d}, {0x2146, 0x2149}, {0x214e, 0x214e}, {0x2184, 0x2184},
  {0x2c30, 0x2c5f}, {0x2c61, 0x2c61}, {0x2c65, 0x2c66}, {0x2c68, 0x2c68}, {0x2c6a, 0x2c6a}, {0x2c6c, 0x2c6c}, {0x2c71, 0x2c71}, {0x2c73, 0x2c74},
  {0x2c76, 0x2c7b}, {0x2c81, 0x2c81}, {0x2c83, 0x2c83}, {0x2c85, 0x2c85}, {0x2c87, 0x2c87}, {0x2c89, 0x2c89}, {0x2c8b, 0x2c8b}, {0x2c8d, 0x2c8d},
  {0x2c8f, 0x2c8f}, {0x2c91, 0x2c91}, {0x2c93, 0x2c93}, {0x2c95, 0x2c95}, {0x2c97, 0x2c97}, {0x2c99, 0x2c99}, {0x2c9b, 0x2c9b}, {0x2c9d, 0x2c9d},
  {0x2c9f, 0x2c9f}, {0x2ca1, 0x2ca1}, {0x2ca3, 0x2ca3}, {0x2ca5, 0x2ca5}, {0x2ca7, 0x2ca7}, {0x2ca9, 0x2ca9}, {0x2cab, 0x2cab}, {0x2cad, 0x2cad},
  {0x2caf, 0x2caf}, {0x2cb1, 0x2cb1}, {0x2cb3, 0x2cb3}, {0x2cb5, 0x2cb5}, {0x2cb7, 0x2cb7}, {0x2cb9, 0x2cb9}, {0x2cbb, 0x2cbb}, {0x2cbd, 0x2cbd},
  {0x2cbf, 0x2cbf}, {0x2cc1, 0x2cc1}, {0x2cc3, 0x2cc3}, {0x2cc5, 0x2cc5}, {0x2cc7, 0x2cc7}, {0x2cc9, 0x2cc9}, {0x2ccb, 0x2ccb}, {0x2ccd, 0x2ccd},
  {0x2ccf, 0x2ccf}, {0x2cd1, 0x2cd1}, {0x2cd3, 0x2cd3}, {0x2cd5, 0x2cd5}, {0x2cd7, 0x2cd7}, {0x2cd9, 0x2cd9}, {0x2cdb, 0x2cdb}, {0x2cdd, 0x2cdd},
  {0x2cdf, 0x2cdf}, {0x2ce1, 0x2ce1}, {0x2ce3, 0x2ce4}, {0x2cec, 0x2cec}, {0x2cee, 0x2cee}, {0x2cf3, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27},
  {0x2d2d, 0x2d2d}, {0xa641, 0xa641}, {0xa643, 0xa643}, {0xa645, 0xa645}, {0xa647, 0xa647}, {0xa649, 0xa649}, {0xa64b, 0xa64b}, {0xa64d, 0xa64d},
  {0xa64f, 0xa64f}, {0xa651, 0xa651}, {0xa653, 0xa653}, {0xa655, 0xa655}, {0xa657, 0xa657}, {0xa659, 0xa659}, {0xa65b, 0xa65b}, {0xa65d, 0xa65d},
  {0xa65f, 0xa65f}, {0xa661, 0xa661}, {0xa663, 0xa663}, {0xa665, 0xa665}, {0xa667, 0xa667}, {0xa669, 0xa669}, {0xa66b, 0xa66b}, {0xa66d, 0xa66d},
  {0xa681, 0xa681}, {0xa683, 0xa683}, {0xa685, 0xa685}, {0xa687, 0xa687}, {0xa689, 0xa689}, {0xa68b, 0xa68b}, {0xa68d, 0xa68d}, {0xa68f, 0xa68f},
  {0xa691, 0xa691}, {0xa693, 0xa693}, {0xa695, 0xa695}, {0xa697, 0xa697}, {0xa699, 0xa699}, {0xa69b, 0xa69b}, {0xa723, 0xa723}, {0xa725, 0xa725},
  {0xa727, 0xa727}, {0xa729, 0xa729}, {0xa72b, 0xa72b}, {0xa72d, 0xa72d}, {0xa72f, 0xa731}, {0xa733, 0xa733}, {0xa735, 0xa735}, {0xa737, 0xa737},
  {0xa739, 0xa739}, {0xa73b, 0xa73b}, {0xa73d, 0xa73d}, {0xa73f, 0xa73f}, {0xa741, 0xa741}, {0xa743, 0xa743}, {0xa745, 0xa745}, {0xa747, 0xa747},
  {0xa749, 0xa749}, {0xa74b, 0xa74b}, {0xa74d, 0xa74d}, {0xa74f, 0xa74f}, {0xa751, 0xa751}, {0xa753, 0xa753}, {0xa755, 0xa755}, {0xa757, 0xa757},
  {0xa759, 0xa759}, {0xa75b, 0xa75b}, {0xa75d, 0xa75d}, {0xa75f, 0xa75f}, {0xa761, 0xa761}, {0xa763, 0xa763}, {0xa765, 0xa765}, {0xa767, 0xa767},
  {0xa769, 0xa769}, {0xa76b, 0xa76b}, {0xa76d, 0xa76d}, {0xa76f, 0xa76f}, {0xa771, 0xa778}, {0xa77a, 0xa77a}, {0xa77c, 0xa77c}, {0xa77f, 0xa77f},
  {0xa781, 0xa781}, {0xa783, 0xa783}, {0xa785, 0xa785}, {0xa787, 0xa787}, {0xa78c, 0xa78c}, {0xa78e, 0xa78e}, {0xa791, 0xa791}, {0xa793, 0xa795},
  {0xa797, 0xa797}, {0xa799, 0xa799}, {0xa79b, 0xa79b}, {0xa79d, 0xa79d}, {0xa79f, 0xa79f}, {0xa7a1, 0xa7a1}, {0xa7a3, 0xa7a3}, {0xa7a5, 0xa7a5},
  {0xa7a7, 0xa7a7}, {0xa7a9, 0xa7a9}, {0xa7af, 0xa7af}, {0xa7b5, 0xa7b5}, {0xa7b7, 0xa7b7}, {0xa7b9, 0xa7b9}, {0xa7bb, 0xa7bb}, {0xa7bd, 0xa7bd},
  {0xa7bf, 0xa7bf}, {0xa7c1, 0xa7c1}, {0xa7c3, 0xa7c3}, {0xa7c8, 0xa7c8}, {0xa7ca, 0xa7ca}, {0xa7cd, 0xa7cd}, {0xa7d1, 0xa7d1}, {0xa7d3, 0xa7d3},
  {0xa7d5, 0xa7d5}, {0xa7d7, 0xa7d7}, {0xa7d9, 0xa7d9}, {0xa7db, 0xa7db}, {0xa7f6, 0xa7f6}, {0xa7fa, 0xa7fa}, {0xab30, 0xab5a}, {0xab60, 0xab68},
  {0xab70, 0xabbf}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41, 0xff5a}, {0x10428, 0x1044f}, {0x104d8, 0x104fb}, {0x10597, 0x105a1}, {0x105a3, 0x105b1},
  {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10cc0, 0x10cf2}, {0x10d70, 0x10d85}, {0x118c0, 0x118df}, {0x16e60, 0x16e7f}, {0x1d41a, 0x1d433}, {0x1d44e, 0x1d454},
  {0x1d456, 0x1d467}, {0x1d482, 0x1d49b}, {0x1d4b6, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d4cf}, {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537},
  {0x1d552, 0x1d56b}, {0x1d586, 0x1d59f}, {0x1d5ba, 0x1d5d3}, {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b}, {0x1d656, 0x1d66f}, {0x1d68a, 0x1d6a5}, {0x1d6c2, 0x1d6da},
  {0x1d6dc, 0x1d6e1}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d755}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d78f}, {0x1d7aa, 0x1d7c2},
  {0x1d7c4, 0x1d7c9}, {0x1d7cb, 0x1d7cb}, {0x1df00, 0x1df09}, {0x1df0b, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e922, 0x1e943},
};

static const TSCharacterRange sym_upper_case_identifier_character_set_1[] = {
  {'A', 'Z'}, {0xc0, 0xd6}, {0xd8, 0xde}, {0x100, 0x100}, {0x102, 0x102}, {0x104, 0x104}, {0x106, 0x106}, {0x108, 0x108},
  {0x10a, 0x10a}, {0x10c, 0x10c}, {0x10e, 0x10e}, {0x110, 0x110}, {0x112, 0x112}, {0x114, 0x114}, {0x116, 0x116}, {0x118, 0x118},
  {0x11a, 0x11a}, {0x11c, 0x11c}, {0x11e, 0x11e}, {0x120, 0x120}, {0x122, 0x122}, {0x124, 0x124}, {0x126, 0x126}, {0x128, 0x128},
  {0x12a, 0x12a}, {0x12c, 0x12c}, {0x12e, 0x12e}, {0x130, 0x130}, {0x132, 0x132}, {0x134, 0x134}, {0x136, 0x136}, {0x139, 0x139},
  {0x13b, 0x13b}, {0x13d, 0x13d}, {0x13f, 0x13f}, {0x141, 0x141}, {0x143, 0x143}, {0x145, 0x145}, {0x147, 0x147}, {0x14a, 0x14a},
  {0x14c, 0x14c}, {0x14e, 0x14e}, {0x150, 0x150}, {0x152, 0x152}, {0x154, 0x154}, {0x156, 0x156}, {0x158, 0x158}, {0x15a, 0x15a},
  {0x15c, 0x15c}, {0x15e, 0x15e}, {0x160, 0x160}, {0x162, 0x162}, {0x164, 0x164}, {0x166, 0x166}, {0x168, 0x168}, {0x16a, 0x16a},
  {0x16c, 0x16c}, {0x16e, 0x16e}, {0x170, 0x170}, {0x172, 0x172}, {0x174, 0x174}, {0x176, 0x176}, {0x178, 0x179}, {0x17b, 0x17b},
  {0x17d, 0x17d}, {0x181, 0x182}, {0x184, 0x184}, {0x186, 0x187}, {0x189, 0x18b}, {0x18e, 0x191}, {0x193, 0x194}, {0x196, 0x198},
  {0x19c, 0x19d}, {0x19f, 0x1a0}, {0x1a2, 0x1a2}, {0x1a4, 0x1a4}, {0x1a6, 0x1a7}, {0x1a9, 0x1a9}, {0x1ac, 0x1ac}, {0x1ae, 0x1af},
  {0x1b1, 0x1b3}, {0x1b5, 0x1b5}, {0x1b7, 0x1b8}, {0x1bc, 0x1bc}, {0x1c4, 0x1c4}, {0x1c7, 0x1c7}, {0x1ca, 0x1ca}, {0x1cd, 0x1cd},
  {0x1cf, 0x1cf}, {0x1d1, 0x1d1}, {0x1d3, 0x1d3}, {0x1d5, 0x1d5}, {0x1d7, 0x1d7}, {0x1d9, 0x1d9}, {0x1db, 0x1db}, {0x1de, 0x1de},
  {0x1e0, 0x1e0}, {0x1e2, 0x1e2}, {0x1e4, 0x1e4}, {0x1e6, 0x1e6}, {0x1e8, 0x1e8}, {0x1ea, 0x1ea}, {0x1ec, 0x1ec}, {0x1ee, 0x1ee},
  {0x1f1, 0x1f1}, {0x1f4, 0x1f4}, {0x1f6, 0x1f8}, {0x1fa, 0x1fa}, {0x1fc, 0x1fc}, {0x1fe, 0x1fe}, {0x200, 0x200}, {0x202, 0x202},
  {0x204, 0x204}, {0x206, 0x206}, {0x208, 0x208}, {0x20a, 0x20a}, {0x20c, 0x20c}, {0x20e, 0x20e}, {0x210, 0x210}, {0x212, 0x212},
  {0x214, 0x214}, {0x216, 0x216}, {0x218, 0x218}, {0x21a, 0x21a}, {0x21c, 0x21c}, {0x21e, 0x21e}, {0x220, 0x220}, {0x222, 0x222},
  {0x224, 0x224}, {0x226, 0x226}, {0x228, 0x228}, {0x22a, 0x22a}, {0x22c, 0x22c}, {0x22e, 0x22e}, {0x230, 0x230}, {0x232, 0x232},
  {0x23a, 0x23b}, {0x23d, 0x23e}, {0x241, 0x241}, {0x243, 0x246}, {0x248, 0x248}, {0x24a, 0x24a}, {0x24c, 0x24c}, {0x24e, 0x24e},
  {0x370, 0x370}, {0x372, 0x372}, {0x376, 0x376}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x38f},
  {0x391, 0x3a1}, {0x3a3, 0x3ab}, {0x3cf, 0x3cf}, {0x3d2, 0x3d4}, {0x3d8, 0x3d8}, {0x3da, 0x3da}, {0x3dc, 0x3dc}, {0x3de, 0x3de},
  {0x3e0, 0x3e0}, {0x3e2, 0x3e2}, {0x3e4, 0x3e4}, {0x3e6, 0x3e6}, {0x3e8, 0x3e8}, {0x3ea, 0x3ea}, {0x3ec, 0x3ec}, {0x3ee, 0x3ee},
  {0x3f4, 0x3f4}, {0x3f7, 0x3f7}, {0x3f9, 0x3fa}, {0x3fd, 0x42f}, {0x460, 0x460}, {0x462, 0x462}, {0x464, 0x464}, {0x466, 0x466},
  {0x468, 0x468}, {0x46a, 0x46a}, {0x46c, 0x46c}, {0x46e, 0x46e}, {0x470, 0x470}, {0x472, 0x472}, {0x474, 0x474}, {0x476, 0x476},
  {0x478, 0x478}, {0x47a, 0x47a}, {0x47c, 0x47c}, {0x47e, 0x47e}, {0x480, 0x480}, {0x48a, 0x48a}, {0x48c, 0x48c}, {0x48e, 0x48e},
  {0x490, 0x490}, {0x492, 0x492}, {0x494, 0x494}, {0x496, 0x496}, {0x498, 0x498}, {0x49a, 0x49a}, {0x49c, 0x49c}, {0x49e, 0x49e},
  {0x4a0, 0x4a0}, {0x4a2, 0x4a2}, {0x4a4, 0x4a4}, {0x4a6, 0x4a6}, {0x4a8, 0x4a8}, {0x4aa, 0x4aa}, {0x4ac, 0x4ac}, {0x4ae, 0x4ae},
  {0x4b0, 0x4b0}, {0x4b2, 0x4b2}, {0x4b4, 0x4b4}, {0x4b6, 0x4b6}, {0x4b8, 0x4b8}, {0x4ba, 0x4ba}, {0x4bc, 0x4bc}, {0x4be, 0x4be},
  {0x4c0, 0x4c1}, {0x4c3, 0x4c3}, {0x4c5, 0x4c5}, {0x4c7, 0x4c7}, {0x4c9, 0x4c9}, {0x4cb, 0x4cb}, {0x4cd, 0x4cd}, {0x4d0, 0x4d0},
  {0x4d2, 0x4d2}, {0x4d4, 0x4d4}, {0x4d6, 0x4d6}, {0x4d8, 0x4d8}, {0x4da, 0x4da}, {0x4dc, 0x4dc}, {0x4de, 0x4de}, {0x4e0, 0x4e0},
  {0x4e2, 0x4e2}, {0x4e4, 0x4e4}, {0x4e6, 0x4e6}, {0x4e8, 0x4e8}, {0x4ea, 0x4ea}, {0x4ec, 0x4ec}, {0x4ee, 0x4ee}, {0x4f0, 0x4f0},
  {0x4f2, 0x4f2}, {0x4f4, 0x4f4}, {0x4f6, 0x4f6}, {0x4f8, 0x4f8}, {0x4fa, 0x4fa}, {0x4fc, 0x4fc}, {0x4fe, 0x4fe}, {0x500, 0x500},
  {0x502, 0x502}, {0x504, 0x504}, {0x506, 0x506}, {0x508, 0x508}, {0x50a, 0x50a}, {0x50c, 0x50c}, {0x50e, 0x50e}, {0x510, 0x510},
  {0x512, 0x512}, {0x514, 0x514}, {0x516, 0x516}, {0x518, 0x518}, {0x51a, 0x51a}, {0x51c, 0x51c}, {0x51e, 0x51e}, {0x520, 0x520},
  {0x522, 0x522}, {0x524, 0x524}, {0x526, 0x526}, {0x528, 0x528}, {0x52a, 0x52a}, {0x52c, 0x52c}, {0x52e, 0x52e}, {0x531, 0x556},
  {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x13a0, 0x13f5}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1e00, 0x1e00}, {0x1e02, 0x1e02},
  {0x1e04, 0x1e04}, {0x1e06, 0x1e06}, {0x1e08, 0x1e08}, {0x1e0a, 0x1e0a}, {0x1e0c, 0x1e0c}, {0x1e0e, 0x1e0e}, {0x1e10, 0x1e10}, {0x1e12, 0x1e12},
  {0x1e14, 0x1e14}, {0x1e16, 0x1e16}, {0x1e18, 0x1e18}, {0x1e1a, 0x1e1a}, {0x1e1c, 0x1e1c}, {0x1e1e, 0x1e1e}, {0x1e20, 0x1e20}, {0x1e22, 0x1e22},
  {0x1e24, 0x1e24}, {0x1e26, 0x1e26}, {0x1e28, 0x1e28}, {0x1e2a, 0x1e2a}, {0x1e2c, 0x1e2c}, {0x1e2e, 0x1e2e}, {0x1e30, 0x1e30}, {0x1e32, 0x1e32},
  {0x1e34, 0x1e34}, {0x1e36, 0x1e36}, {0x1e38, 0x1e38}, {0x1e3a, 0x1e3a}, {0x1e3c, 0x1e3c}, {0x1e3e, 0x1e3e}, {0x1e40, 0x1e40}, {0x1e42, 0x1e42},
  {0x1e44, 0x1e44}, {0x1e46, 0x1e46}, {0x1e48, 0x1e48}, {0x1e4a, 0x1e4a}, {0x1e4c, 0x1e4c}, {0x1e4e, 0x1e4e}, {0x1e50, 0x1e50}, {0x1e52, 0x1e52},
  {0x1e54, 0x1e54}, {0x1e56, 0x1e56}, {0x1e58, 0x1e58}, {0x1e5a, 0x1e5a}, {0x1e5c, 0x1e5c}, {0x1e5e, 0x1e5e}, {0x1e60, 0x1e60}, {0x1e62, 0x1e62},
  {0x1e64, 0x1e64}, {0x1e66, 0x1e66}, {0x1e68, 0x1e68}, {0x1e6a, 0x1e6a}, {0x1e6c, 0x1e6c}, {0x1e6e, 0x1e6e}, {0x1e70, 0x1e70}, {0x1e72, 0x1e72},
  {0x1e74, 0x1e74}, {0x1e76, 0x1e76}, {0x1e78, 0x1e78}, {0x1e7a, 0x1e7a}, {0x1e7c, 0x1e7c}, {0x1e7e, 0x1e7e}, {0x1e80, 0x1e80}, {0x1e82, 0x1e82},
  {0x1e84, 0x1e84}, {0x1e86, 0x1e86}, {0x1e88, 0x1e88}, {0x1e8a, 0x1e8a}, {0x1e8c, 0x1e8c}, {0x1e8e, 0x1e8e}, {0x1e90, 0x1e90}, {0x1e92, 0x1e92},
  {0x1e94, 0x1e94}, {0x1e9e, 0x1e9e}, {0x1ea0, 0x1ea0}, {0x1ea2, 0x1ea2}, {0x1ea4, 0x1ea4}, {0x1ea6, 0x1ea6}, {0x1ea8, 0x1ea8}, {0x1eaa, 0x1eaa},
  {0x1eac, 0x1eac}, {0x1eae, 0x1eae}, {0x1eb0, 0x1eb0}, {0x1eb2, 0x1eb2}, {0x1eb4, 0x1eb4}, {0x1eb6, 0x1eb6}, {0x1eb8, 0x1eb8}, {0x1eba, 0x1eba},
  {0x1ebc, 0x1ebc}, {0x1ebe, 0x1ebe}, {0x1ec0, 0x1ec0}, {0x1ec2, 0x1ec2}, {0x1ec4, 0x1ec4}, {0x1ec6, 0x1ec6}, {0x1ec8, 0x1ec8}, {0x1eca, 0x1eca},
  {0x1ecc, 0x1ecc}, {0x1ece, 0x1ece}, {0x1ed0, 0x1ed0}, {0x1ed2, 0x1ed2}, {0x1ed4, 0x1ed4}, {0x1ed6, 0x1ed6}, {0x1ed8, 0x1ed8}, {0x1eda, 0x1eda},
  {0x1edc, 0x1edc}, {0x1ede, 0x1ede}, {0x1ee0, 0x1ee0}, {0x1ee2, 0x1ee2}, {0x1ee4, 0x1ee4}, {0x1ee6, 0x1ee6}, {0x1ee8, 0x1ee8}, {0x1eea, 0x1eea},
  {0x1eec, 0x1eec}, {0x1eee, 0x1eee}, {0x1ef0, 0x1ef0}, {0x1ef2, 0x1ef2}, {0x1ef4, 0x1ef4}, {0x1ef6, 0x1ef6}, {0x1ef8, 0x1ef8}, {0x1efa, 0x1efa},
  {0x1efc, 0x1efc}, {0x1efe, 0x1efe}, {0x1f08, 0x1f0f}, {0x1f18, 0x1f1d}, {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d}, {0x1f59, 0x1f59},
  {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f5f}, {0x1f68, 0x1f6f}, {0x1fb8, 0x1fbb}, {0x1fc8, 0x1fcb}, {0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec},
  {0x1ff8, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210b, 0x210d}, {0x2110, 0x2112}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124},
  {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x2130, 0x2133}, {0x213e, 0x213f}, {0x2145, 0x2145}, {0x2183, 0x2183}, {0x2c00, 0x2c2e},
  {0x2c60, 0x2c60}, {0x2c62, 0x2c64}, {0x2c67, 0x2c67}, {0x2c69, 0x2c69}, {0x2c6b, 0x2c6b}, {0x2c6d, 0x2c70}, {0x2c72, 0x2c72}, {0x2c75, 0x2c75},
  {0x2c7e, 0x2c80}, {0x2c82, 0x2c82}, {0x2c84, 0x2c84}, {0x2c86, 0x2c86}, {0x2c88, 0x2c88}, {0x2c8a, 0x2c8a}, {0x2c8c, 0x2c8c}, {0x2c8e, 0x2c8e},
  {0x2c90, 0x2c90}, {0x2c92, 0x2c92}, {0x2c94, 0x2c94}, {0x2c96, 0x2c96}, {0x2c98, 0x2c98}, {0x2c9a, 0x2c9a}, {0x2c9c, 0x2c9c}, {0x2c9e, 0x2c9e},
  {0x2ca0, 0x2ca0}, {0x2ca2, 0x2ca2}, {0x2ca4, 0x2ca4}, {0x2ca6, 0x2ca6}, {0x2ca8, 0x2ca8}, {0x2caa, 0x2caa}, {0x2cac, 0x2cac}, {0x2cae, 0x2cae},
  {0x2cb0, 0x2cb0}, {0x2cb2, 0x2cb2}, {0x2cb4, 0x2cb4}, {0x2cb6, 0x2cb6}, {0x2cb8, 0x2cb8}, {0x2cba, 0x2cba}, {0x2cbc, 0x2cbc}, {0x2cbe, 0x2cbe},
  {0x2cc0, 0x2cc0}, {0x2cc2, 0x2cc2}, {0x2cc4, 0x2cc4}, {0x2cc6, 0x2cc6}, {0x2cc8, 0x2cc8}, {0x2cca, 0x2cca}, {0x2ccc, 0x2ccc}, {0x2cce, 0x2cce},
  {0x2cd0, 0x2cd0}, {0x2cd2, 0x2cd2}, {0x2cd4, 0x2cd4}, {0x2cd6, 0x2cd6}, {0x2cd8, 0x2cd8}, {0x2cda, 0x2cda}, {0x2cdc, 0x2cdc}, {0x2cde, 0x2cde},
  {0x2ce0, 0x2ce0}, {0x2ce2, 0x2ce2}, {0x2ceb, 0x2ceb}, {0x2ced, 0x2ced}, {0x2cf2, 0x2cf2}, {0xa640, 0xa640}, {0xa642, 0xa642}, {0xa644, 0xa644},
  {0xa646, 0xa646}, {0xa648, 0xa648}, {0xa64a, 0xa64a}, {0xa64c, 0xa64c}, {0xa64e, 0xa64e}, {0xa650, 0xa650}, {0xa652, 0xa652}, {0xa654, 0xa654},
  {0xa656, 0xa656}, {0xa658, 0xa658}, {0xa65a, 0xa65a}, {0xa65c, 0xa65c}, {0xa65e, 0xa65e}, {0xa660, 0xa660}, {0xa662, 0xa662}, {0xa664, 0xa664},
  {0xa666, 0xa666}, {0xa668, 0xa668}, {0xa66a, 0xa66a}, {0xa66c, 0xa66c}, {0xa680, 0xa680}, {0xa682, 0xa682}, {0xa684, 0xa684}, {0xa686, 0xa686},
  {0xa688, 0xa688}, {0xa68a, 0xa68a}, {0xa68c, 0xa68c}, {0xa68e, 0xa68e}, {0xa690, 0xa690}, {0xa692, 0xa692}, {0xa694, 0xa694}, {0xa696, 0xa696},
  {0xa698, 0xa698}, {0xa69a, 0xa69a}, {0xa722, 0xa722}, {0xa724, 0xa724}, {0xa726, 0xa726}, {0xa728, 0xa728}, {0xa72a, 0xa72a}, {0xa72c, 0xa72c},
  {0xa72e, 0xa72e}, {0xa732, 0xa732}, {0xa734, 0xa734}, {0xa736, 0xa736}, {0xa738, 0xa738}, {0xa73a, 0xa73a}, {0xa73c, 0xa73c}, {0xa73e, 0xa73e},
  {0xa740, 0xa740}, {0xa742, 0xa742}, {0xa744, 0xa744}, {0xa746, 0xa746}, {0xa748, 0xa748}, {0xa74a, 0xa74a}, {0xa74c, 0xa74c}, {0xa74e, 0xa74e},
  {0xa750, 0xa750}, {0xa752, 0xa752}, {0xa754, 0xa754}, {0xa756, 0xa756}, {0xa758, 0xa758}, {0xa75a, 0xa75a}, {0xa75c, 0xa75c}, {0xa75e, 0xa75e},
  {0xa760, 0xa760}, {0xa762, 0xa762}, {0xa764, 0xa764}, {0xa766, 0xa766}, {0xa768, 0xa768}, {0xa76a, 0xa76a}, {0xa76c, 0xa76c}, {0xa76e, 0xa76e},
  {0xa779, 0xa779}, {0xa77b, 0xa77b}, {0xa77d, 0xa77e}, {0xa780, 0xa780}, {0xa782, 0xa782}, {0xa784, 0xa784}, {0xa786, 0xa786}, {0xa78b, 0xa78b},
  {0xa78d, 0xa78d}, {0xa790, 0xa790}, {0xa792, 0xa792}, {0xa796, 0xa796}, {0xa798, 0xa798}, {0xa79a, 0xa79a}, {0xa79c, 0xa79c}, {0xa79e, 0xa79e},
  {0xa7a0, 0xa7a0}, {0xa7a2, 0xa7a2}, {0xa7a4, 0xa7a4}, {0xa7a6, 0xa7a6}, {0xa7a8, 0xa7a8}, {0xa7aa, 0xa7ae}, {0xa7b0, 0xa7b4}, {0xa7b6, 0xa7b6},
  {0xa7b8, 0xa7b8}, {0xa7ba, 0xa7ba}, {0xa7bc, 0xa7bc}, {0xa7be, 0xa7be}, {0xa7c2, 0xa7c2}, {0xa7c4, 0xa7c6}, {0xff21, 0xff3a}, {0x10400, 0x10427},
  {0x104b0, 0x104d3}, {0x10c80, 0x10cb2}, {0x118a0, 0x118bf}, {0x16e40, 0x16e5f}, {0x1d400, 0x1d419}, {0x1d434, 0x1d44d}, {0x1d468, 0x1d481}, {0x1d49c, 0x1d49c},
  {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9}, {0x1d504, 0x1d505}, {0x1d507, 0x1d50a},
  {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d538, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d56c, 0x1d585},
  {0x1d5a0, 0x1d5b9}, {0x1d5d4, 0x1d5ed}, {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689}, {0x1d6a8, 0x1d6c0}, {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734},
  {0x1d756, 0x1d76e}, {0x1d790, 0x1d7a8}, {0x1d7ca, 0x1d7ca}, {0x1e900, 0x1e921},
};

static const TSCharacterRange sym_upper_case_identifier_character_set_2[] = {
  {'0', '9'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6},
  {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374}, {0x376, 0x377},
  {0x37a, 0x37d}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481},
  {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a}, {0x66e, 0x66f},
  {0x671, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f},
  {0x74d, 0x7a5}, {0x7b1, 0x7b1}, {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a}, {0x824, 0x824},
  {0x828, 0x828}, {0x840, 0x858}, {0x860, 0x86a}, {0x8a0, 0x8b4}, {0x8b6, 0x8bd}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950},
  {0x958, 0x961}, {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9},
  {0x9bd, 0x9bd}, {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0x9fc, 0x9fc}, {0xa05, 0xa0a}, {0xa0f, 0xa10},
  {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74},
  {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0},
  {0xae0, 0xae1}, {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39},
  {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95},
  {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbd0, 0xbd0}, {0xc05, 0xc0c},
  {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, {0xc60, 0xc61}, {0xc80, 0xc80}, {0xc85, 0xc8c},
  {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcde, 0xcde}, {0xce0, 0xce1}, {0xcf1, 0xcf2},
  {0xd05, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e}, {0xd54, 0xd56}, {0xd5f, 0xd61}, {0xd7a, 0xd7f},
  {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe46},
  {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xeb0}, {0xeb2, 0xeb3}, {0xebd, 0xebd},
  {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c}, {0x1000, 0x102a},
  {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, {0x1065, 0x1066}, {0x106e, 0x1070}, {0x1075, 0x1081}, {0x108e, 0x108e},
  {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258},
  {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5},
  {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c},
  {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16f1, 0x16f8}, {0x1700, 0x170c}, {0x170e, 0x1711}, {0x1720, 0x1731}, {0x1740, 0x1751},
  {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1878}, {0x1880, 0x1884}, {0x1887, 0x18a8},
  {0x18aa, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x1a00, 0x1a16},
  {0x1a20, 0x1a54}, {0x1aa7, 0x1aa7}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4b}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, {0x1bba, 0x1be5}, {0x1c00, 0x1c23},
  {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, {0x1cee, 0x1cf3}, {0x1cf5, 0x1cf6},
  {0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59},
  {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc},
  {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c},
  {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128},
  {0x212a, 0x212d}, {0x212f, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2183, 0x2184}, {0x2c00, 0x2c2e}, {0x2c30, 0x2c5e},
  {0x2c60, 0x2ce4}, {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f},
  {0x2d80, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6},
  {0x2dd8, 0x2dde}, {0x2e2f, 0x2e2f}, {0x3005, 0x3006}, {0x3031, 0x3035}, {0x303b, 0x303c}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa},
  {0x30fc, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31ba}, {0x31f0, 0x31ff}, {0x3400, 0x4db5}, {0x4e00, 0x9fef}, {0xa000, 0xa48c},
  {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa61f}, {0xa62a, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d}, {0xa6a0, 0xa6e5}, {0xa717, 0xa71f},
  {0xa722, 0xa788}, {0xa78b, 0xa7bf}, {0xa7c2, 0xa7c6}, {0xa7f7, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa840, 0xa873},
  {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa8fe}, {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2},
  {0xa9cf, 0xa9cf}, {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa60, 0xaa76},
  {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1}, {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, {0xaadb, 0xaadd},
  {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a},
  {0xab5c, 0xab67}, {0xab70, 0xabe2}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06},
  {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44},
  {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff21, 0xff3a},
  {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026},
  {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x10300, 0x1031f},
  {0x1032d, 0x10340}, {0x10342, 0x10349}, {0x10350, 0x10375}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x10400, 0x1049d}, {0x104b0, 0x104d3},
  {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10800, 0x10805}, {0x10808, 0x10808},
  {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5},
  {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109b7}, {0x109be, 0x109bf}, {0x10a00, 0x10a00}, {0x10a10, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35},
  {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91},
  {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d23}, {0x10f00, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f45}, {0x10fe0, 0x10ff6},
  {0x11003, 0x11037}, {0x11083, 0x110af}, {0x110d0, 0x110e8}, {0x11103, 0x11126}, {0x11144, 0x11144}, {0x11150, 0x11172}, {0x11176, 0x11176}, {0x11183, 0x111b2},
  {0x111c1, 0x111c4}, {0x111da, 0x111da}, {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d},
  {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, {0x112b0, 0x112de}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333},
  {0x11335, 0x11339}, {0x1133d, 0x1133d}, {0x11350, 0x11350}, {0x1135d, 0x11361}, {0x11400, 0x11434}, {0x11447, 0x1144a}, {0x1145f, 0x1145f}, {0x11480, 0x114af},
  {0x114c4, 0x114c5}, {0x114c7, 0x114c7}, {0x11580, 0x115ae}, {0x115d8, 0x115db}, {0x11600, 0x1162f}, {0x11644, 0x11644}, {0x11680, 0x116aa}, {0x116b8, 0x116b8},
  {0x11700, 0x1171a}, {0x11800, 0x1182b}, {0x118a0, 0x118df}, {0x118ff, 0x118ff}, {0x119a0, 0x119a7}, {0x119aa, 0x119d0}, {0x119e1, 0x119e1}, {0x119e3, 0x119e3},
  {0x11a00, 0x11a00}, {0x11a0b, 0x11a32}, {0x11a3a, 0x11a3a}, {0x11a50, 0x11a50}, {0x11a5c, 0x11a89}, {0x11a9d, 0x11a9d}, {0x11ac0, 0x11af8}, {0x11c00, 0x11c08},
  {0x11c0a, 0x11c2e}, {0x11c40, 0x11c40}, {0x11c72, 0x11c8f}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d30}, {0x11d46, 0x11d46}, {0x11d60, 0x11d65},
  {0x11d67, 0x11d68}, {0x11d6a, 0x11d89}, {0x11d98, 0x11d98}, {0x11ee0, 0x11ef2}, {0x12000, 0x12399}, {0x12480, 0x12543}, {0x13000, 0x1342e}, {0x14400, 0x14646},
  {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f}, {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16e40, 0x16e7f},
  {0x16f00, 0x16f4a}, {0x16f50, 0x16f50}, {0x16f93, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe3}, {0x17000, 0x187f7}, {0x18800, 0x18af2}, {0x1b000, 0x1b11e},
  {0x1b150, 0x1b152}, {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454},
  {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3},
  {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546},
  {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e},
  {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1e100, 0x1e12c}, {0x1e137, 0x1e13d}, {0x1e14e, 0x1e14e},
  {0x1e2c0, 0x1e2eb}, {0x1e800, 0x1e8c4}, {0x1e900, 0x1e943}, {0x1e94b, 0x1e94b}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24},
  {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49},
  {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d},
  {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e},
  {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x20000, 0x2a6d6}, {0x2a700, 0x2b734}, {0x2b740, 0x2b81d},
  {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0}, {0x2f800, 0x2fa1d},
};

static const TSCharacterRange sym_lower_case_identifier_character_set_1[] = {
  {'a', 'z'}, {0xb5, 0xb5}, {0xdf, 0xf6}, {0xf8, 0xff}, {0x101, 0x101}, {0x103, 0x103}, {0x105, 0x105}, {0x107, 0x107},
  {0x109, 0x109}, {0x10b, 0x10b}, {0x10d, 0x10d}, {0x10f, 0x10f}, {0x111, 0x111}, {0x113, 0x113}, {0x115, 0x115}, {0x117, 0x117},
  {0x119, 0x119}, {0x11b, 0x11b}, {0x11d, 0x11d}, {0x11f, 0x11f}, {0x121, 0x121}, {0x123, 0x123}, {0x125, 0x125}, {0x127, 0x127},
  {0x129, 0x129}, {0x12b, 0x12b}, {0x12d, 0x12d}, {0x12f, 0x12f}, {0x131, 0x131}, {0x133, 0x133}, {0x135, 0x135}, {0x137, 0x138},
  {0x13a, 0x13a}, {0x13c, 0x13c}, {0x13e, 0x13e}, {0x140, 0x140}, {0x142, 0x142}, {0x144, 0x144}, {0x146, 0x146}, {0x148, 0x149},
  {0x14b, 0x14b}, {0x14d, 0x14d}, {0x14f, 0x14f}, {0x151, 0x151}, {0x153, 0x153}, {0x155, 0x155}, {0x157, 0x157}, {0x159, 0x159},
  {0x15b, 0x15b}, {0x15d, 0x15d}, {0x15f, 0x15f}, {0x161, 0x161}, {0x163, 0x163}, {0x165, 0x165}, {0x167, 0x167}, {0x169, 0x169},
  {0x16b, 0x16b}, {0x16d, 0x16d}, {0x16f, 0x16f}, {0x171, 0x171}, {0x173, 0x173}, {0x175, 0x175}, {0x177, 0x177}, {0x17a, 0x17a},
  {0x17c, 0x17c}, {0x17e, 0x180}, {0x183, 0x183}, {0x185, 0x185}, {0x188, 0x188}, {0x18c, 0x18d}, {0x192, 0x192}, {0x195, 0x195},
  {0x199, 0x19b}, {0x19e, 0x19e}, {0x1a1, 0x1a1}, {0x1a3, 0x1a3}, {0x1a5, 0x1a5}, {0x1a8, 0x1a8}, {0x1aa, 0x1ab}, {0x1ad, 0x1ad},
  {0x1b0, 0x1b0}, {0x1b4, 0x1b4}, {0x1b6, 0x1b6}, {0x1b9, 0x1ba}, {0x1bd, 0x1bf}, {0x1c6, 0x1c6}, {0x1c9, 0x1c9}, {0x1cc, 0x1cc},
  {0x1ce, 0x1ce}, {0x1d0, 0x1d0}, {0x1d2, 0x1d2}, {0x1d4, 0x1d4}, {0x1d6, 0x1d6}, {0x1d8, 0x1d8}, {0x1da, 0x1da}, {0x1dc, 0x1dd},
  {0x1df, 0x1df}, {0x1e1, 0x1e1}, {0x1e3, 0x1e3}, {0x1e5, 0x1e5}, {0x1e7, 0x1e7}, {0x1e9, 0x1e9}, {0x1eb, 0x1eb}, {0x1ed, 0x1ed},
  {0x1ef, 0x1f0}, {0x1f3, 0x1f3}, {0x1f5, 0x1f5}, {0x1f9, 0x1f9}, {0x1fb, 0x1fb}, {0x1fd, 0x1fd}, {0x1ff, 0x1ff}, {0x201, 0x201},
  {0x203, 0x203}, {0x205, 0x205}, {0x207, 0x207}, {0x209, 0x209}, {0x20b, 0x20b}, {0x20d, 0x20d}, {0x20f, 0x20f}, {0x211, 0x211},
  {0x213, 0x213}, {0x215, 0x215}, {0x217, 0x217}, {0x219, 0x219}, {0x21b, 0x21b}, {0x21d, 0x21d}, {0x21f, 0x21f}, {0x221, 0x221},
  {0x223, 0x223}, {0x225, 0x225}, {0x227, 0x227}, {0x229, 0x229}, {0x22b, 0x22b}, {0x22d, 0x22d}, {0x22f, 0x22f}, {0x231, 0x231},
  {0x233, 0x239}, {0x23c, 0x23c}, {0x23f, 0x240}, {0x242, 0x242}, {0x247, 0x247}, {0x249, 0x249}, {0x24b, 0x24b}, {0x24d, 0x24d},
  {0x24f, 0x293}, {0x295, 0x2af}, {0x371, 0x371}, {0x373, 0x373}, {0x377, 0x377}, {0x37b, 0x37d}, {0x390, 0x390}, {0x3ac, 0x3ce},
  {0x3d0, 0x3d1}, {0x3d5, 0x3d7}, {0x3d9, 0x3d9}, {0x3db, 0x3db}, {0x3dd, 0x3dd}, {0x3df, 0x3df}, {0x3e1, 0x3e1}, {0x3e3, 0x3e3},
  {0x3e5, 0x3e5}, {0x3e7, 0x3e7}, {0x3e9, 0x3e9}, {0x3eb, 0x3eb}, {0x3ed, 0x3ed}, {0x3ef, 0x3f3}, {0x3f5, 0x3f5}, {0x3f8, 0x3f8},
  {0x3fb, 0x3fc}, {0x430, 0x45f}, {0x461, 0x461}, {0x463, 0x463}, {0x465, 0x465}, {0x467, 0x467}, {0x469, 0x469}, {0x46b, 0x46b},
  {0x46d, 0x46d}, {0x46f, 0x46f}, {0x471, 0x471}, {0x473, 0x473}, {0x475, 0x475}, {0x477, 0x477}, {0x479, 0x479}, {0x47b, 0x47b},
  {0x47d, 0x47d}, {0x47f, 0x47f}, {0x481, 0x481}, {0x48b, 0x48b}, {0x48d, 0x48d}, {0x48f, 0x48f}, {0x491, 0x491}, {0x493, 0x493},
  {0x495, 0x495}, {0x497, 0x497}, {0x499, 0x499}, {0x49b, 0x49b}, {0x49d, 0x49d}, {0x49f, 0x49f}, {0x4a1, 0x4a1}, {0x4a3, 0x4a3},
  {0x4a5, 0x4a5}, {0x4a7, 0x4a7}, {0x4a9, 0x4a9}, {0x4ab, 0x4ab}, {0x4ad, 0x4ad}, {0x4af, 0x4af}, {0x4b1, 0x4b1}, {0x4b3, 0x4b3},
  {0x4b5, 0x4b5}, {0x4b7, 0x4b7}, {0x4b9, 0x4b9}, {0x4bb, 0x4bb}, {0x4bd, 0x4bd}, {0x4bf, 0x4bf}, {0x4c2, 0x4c2}, {0x4c4, 0x4c4},
  {0x4c6, 0x4c6}, {0x4c8, 0x4c8}, {0x4ca, 0x4ca}, {0x4cc, 0x4cc}, {0x4ce, 0x4cf}, {0x4d1, 0x4d1}, {0x4d3, 0x4d3}, {0x4d5, 0x4d5},
  {0x4d7, 0x4d7}, {0x4d9, 0x4d9}, {0x4db, 0x4db}, {0x4dd, 0x4dd}, {0x4df, 0x4df}, {0x4e1, 0x4e1}, {0x4e3, 0x4e3}, {0x4e5, 0x4e5},
  {0x4e7, 0x4e7}, {0x4e9, 0x4e9}, {0x4eb, 0x4eb}, {0x4ed, 0x4ed}, {0x4ef, 0x4ef}, {0x4f1, 0x4f1}, {0x4f3, 0x4f3}, {0x4f5, 0x4f5},
  {0x4f7, 0x4f7}, {0x4f9, 0x4f9}, {0x4fb, 0x4fb}, {0x4fd, 0x4fd}, {0x4ff, 0x4ff}, {0x501, 0x501}, {0x503, 0x503}, {0x505, 0x505},
  {0x507, 0x507}, {0x509, 0x509}, {0x50b, 0x50b}, {0x50d, 0x50d}, {0x50f, 0x50f}, {0x511, 0x511}, {0x513, 0x513}, {0x515, 0x515},
  {0x517, 0x517}, {0x519, 0x519}, {0x51b, 0x51b}, {0x51d, 0x51d}, {0x51f, 0x51f}, {0x521, 0x521}, {0x523, 0x523}, {0x525, 0x525},
  {0x527, 0x527}, {0x529, 0x529}, {0x52b, 0x52b}, {0x52d, 0x52d}, {0x52f, 0x52f}, {0x560, 0x588}, {0x10d0, 0x10fa}, {0x10fd, 0x10ff},
  {0x13f8, 0x13fd}, {0x1c80, 0x1c88}, {0x1d00, 0x1d2b}, {0x1d6b, 0x1d77}, {0x1d79, 0x1d9a}, {0x1e01, 0x1e01}, {0x1e03, 0x1e03}, {0x1e05, 0x1e05},
  {0x1e07, 0x1e07}, {0x1e09, 0x1e09}, {0x1e0b, 0x1e0b}, {0x1e0d, 0x1e0d}, {0x1e0f, 0x1e0f}, {0x1e11, 0x1e11}, {0x1e13, 0x1e13}, {0x1e15, 0x1e15},
  {0x1e17, 0x1e17}, {0x1e19, 0x1e19}, {0x1e1b, 0x1e1b}, {0x1e1d, 0x1e1d}, {0x1e1f, 0x1e1f}, {0x1e21, 0x1e21}, {0x1e23, 0x1e23}, {0x1e25, 0x1e25},
  {0x1e27, 0x1e27}, {0x1e29, 0x1e29}, {0x1e2b, 0x1e2b}, {0x1e2d, 0x1e2d}, {0x1e2f, 0x1e2f}, {0x1e31, 0x1e31}, {0x1e33, 0x1e33}, {0x1e35, 0x1e35},
  {0x1e37, 0x1e37}, {0x1e39, 0x1e39}, {0x1e3b, 0x1e3b}, {0x1e3d, 0x1e3d}, {0x1e3f, 0x1e3f}, {0x1e41, 0x1e41}, {0x1e43, 0x1e43}, {0x1e45, 0x1e45},
  {0x1e47, 0x1e47}, {0x1e49, 0x1e49}, {0x1e4b, 0x1e4b}, {0x1e4d, 0x1e4d}, {0x1e4f, 0x1e4f}, {0x1e51, 0x1e51}, {0x1e53, 0x1e53}, {0x1e55, 0x1e55},
  {0x1e57, 0x1e57}, {0x1e59, 0x1e59}, {0x1e5b, 0x1e5b}, {0x1e5d, 0x1e5d}, {0x1e5f, 0x1e5f}, {0x1e61, 0x1e61}, {0x1e63, 0x1e63}, {0x1e65, 0x1e65},
  {0x1e67, 0x1e67}, {0x1e69, 0x1e69}, {0x1e6b, 0x1e6b}, {0x1e6d, 0x1e6d}, {0x1e6f, 0x1e6f}, {0x1e71, 0x1e71}, {0x1e73, 0x1e73}, {0x1e75, 0x1e75},
  {0x1e77, 0x1e77}, {0x1e79, 0x1e79}, {0x1e7b, 0x1e7b}, {0x1e7d, 0x1e7d}, {0x1e7f, 0x1e7f}, {0x1e81, 0x1e81}, {0x1e83, 0x1e83}, {0x1e85, 0x1e85},
  {0x1e87, 0x1e87}, {0x1e89, 0x1e89}, {0x1e8b, 0x1e8b}, {0x1e8d, 0x1e8d}, {0x1e8f, 0x1e8f}, {0x1e91, 0x1e91}, {0x1e93, 0x1e93}, {0x1e95, 0x1e9d},
  {0x1e9f, 0x1e9f}, {0x1ea1, 0x1ea1}, {0x1ea3, 0x1ea3}, {0x1ea5, 0x1ea5}, {0x1ea7, 0x1ea7}, {0x1ea9, 0x1ea9}, {0x1eab, 0x1eab}, {0x1ead, 0x1ead},
  {0x1eaf, 0x1eaf}, {0x1eb1, 0x1eb1}, {0x1eb3, 0x1eb3}, {0x1eb5, 0x1eb5}, {0x1eb7, 0x1eb7}, {0x1eb9, 0x1eb9}, {0x1ebb, 0x1ebb}, {0x1ebd, 0x1ebd},
  {0x1ebf, 0x1ebf}, {0x1ec1, 0x1ec1}, {0x1ec3, 0x1ec3}, {0x1ec5, 0x1ec5}, {0x1ec7, 0x1ec7}, {0x1ec9, 0x1ec9}, {0x1ecb, 0x1ecb}, {0x1ecd, 0x1ecd},
  {0x1ecf, 0x1ecf}, {0x1ed1, 0x1ed1}, {0x1ed3, 0x1ed3}, {0x1ed5, 0x1ed5}, {0x1ed7, 0x1ed7}, {0x1ed9, 0x1ed9}, {0x1edb, 0x1edb}, {0x1edd, 0x1edd},
  {0x1edf, 0x1edf}, {0x1ee1, 0x1ee1}, {0x1ee3, 0x1ee3}, {0x1ee5, 0x1ee5}, {0x1ee7, 0x1ee7}, {0x1ee9, 0x1ee9}, {0x1eeb, 0x1eeb}, {0x1eed, 0x1eed},
  {0x1eef, 0x1eef}, {0x1ef1, 0x1ef1}, {0x1ef3, 0x1ef3}, {0x1ef5, 0x1ef5}, {0x1ef7, 0x1ef7}, {0x1ef9, 0x1ef9}, {0x1efb, 0x1efb}, {0x1efd, 0x1efd},
  {0x1eff, 0x1f07}, {0x1f10, 0x1f15}, {0x1f20, 0x1f27}, {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, {0x1f50, 0x1f57}, {0x1f60, 0x1f67}, {0x1f70, 0x1f7d},
  {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fb7}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fc7},
  {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fd7}, {0x1fe0, 0x1fe7}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ff7}, {0x210a, 0x210a}, {0x210e, 0x210f}, {0x2113, 0x2113},
  {0x212f, 0x212f}, {0x2134, 0x2134}, {0x2139, 0x2139}, {0x213c, 0x213d}, {0x2146, 0x2149}, {0x214e, 0x214e}, {0x2184, 0x2184}, {0x2c30, 0x2c5e},
  {0x2c61, 0x2c61}, {0x2c65, 0x2c66}, {0x2c68, 0x2c68}, {0x2c6a, 0x2c6a}, {0x2c6c, 0x2c6c}, {0x2c71, 0x2c71}, {0x2c73, 0x2c74}, {0x2c76, 0x2c7b},
  {0x2c81, 0x2c81}, {0x2c83, 0x2c83}, {0x2c85, 0x2c85}, {0x2c87, 0x2c87}, {0x2c89, 0x2c89}, {0x2c8b, 0x2c8b}, {0x2c8d, 0x2c8d}, {0x2c8f, 0x2c8f},
  {0x2c91, 0x2c91}, {0x2c93, 0x2c93}, {0x2c95, 0x2c95}, {0x2c97, 0x2c97}, {0x2c99, 0x2c99}, {0x2c9b, 0x2c9b}, {0x2c9d, 0x2c9d}, {0x2c9f, 0x2c9f},
  {0x2ca1, 0x2ca1}, {0x2ca3, 0x2ca3}, {0x2ca5, 0x2ca5}, {0x2ca7, 0x2ca7}, {0x2ca9, 0x2ca9}, {0x2cab, 0x2cab}, {0x2cad, 0x2cad}, {0x2caf, 0x2caf},
  {0x2cb1, 0x2cb1}, {0x2cb3, 0x2cb3}, {0x2cb5, 0x2cb5}, {0x2cb7, 0x2cb7}, {0x2cb9, 0x2cb9}, {0x2cbb, 0x2cbb}, {0x2cbd, 0x2cbd}, {0x2cbf, 0x2cbf},
  {0x2cc1, 0x2cc1}, {0x2cc3, 0x2cc3}, {0x2cc5, 0x2cc5}, {0x2cc7, 0x2cc7}, {0x2cc9, 0x2cc9}, {0x2ccb, 0x2ccb}, {0x2ccd, 0x2ccd}, {0x2ccf, 0x2ccf},
  {0x2cd1, 0x2cd1}, {0x2cd3, 0x2cd3}, {0x2cd5, 0x2cd5}, {0x2cd7, 0x2cd7}, {0x2cd9, 0x2cd9}, {0x2cdb, 0x2cdb}, {0x2cdd, 0x2cdd}, {0x2cdf, 0x2cdf},
  {0x2ce1, 0x2ce1}, {0x2ce3, 0x2ce4}, {0x2cec, 0x2cec}, {0x2cee, 0x2cee}, {0x2cf3, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d},
  {0xa641, 0xa641}, {0xa643, 0xa643}, {0xa645, 0xa645}, {0xa647, 0xa647}, {0xa649, 0xa649}, {0xa64b, 0xa64b}, {0xa64d, 0xa64d}, {0xa64f, 0xa64f},
  {0xa651, 0xa651}, {0xa653, 0xa653}, {0xa655, 0xa655}, {0xa657, 0xa657}, {0xa659, 0xa659}, {0xa65b, 0xa65b}, {0xa65d, 0xa65d}, {0xa65f, 0xa65f},
  {0xa661, 0xa661}, {0xa663, 0xa663}, {0xa665, 0xa665}, {0xa667, 0xa667}, {0xa669, 0xa669}, {0xa66b, 0xa66b}, {0xa66d, 0xa66d}, {0xa681, 0xa681},
  {0xa683, 0xa683}, {0xa685, 0xa685}, {0xa687, 0xa687}, {0xa689, 0xa689}, {0xa68b, 0xa68b}, {0xa68d, 0xa68d}, {0xa68f, 0xa68f}, {0xa691, 0xa691},
  {0xa693, 0xa693}, {0xa695, 0xa695}, {0xa697, 0xa697}, {0xa699, 0xa699}, {0xa69b, 0xa69b}, {0xa723, 0xa723}, {0xa725, 0xa725}, {0xa727, 0xa727},
  {0xa729, 0xa729}, {0xa72b, 0xa72b}, {0xa72d, 0xa72d}, {0xa72f, 0xa731}, {0xa733, 0xa733}, {0xa735, 0xa735}, {0xa737, 0xa737}, {0xa739, 0xa739},
  {0xa73b, 0xa73b}, {0xa73d, 0xa73d}, {0xa73f, 0xa73f}, {0xa741, 0xa741}, {0xa743, 0xa743}, {0xa745, 0xa745}, {0xa747, 0xa747}, {0xa749, 0xa749},
  {0xa74b, 0xa74b}, {0xa74d, 0xa74d}, {0xa74f, 0xa74f}, {0xa751, 0xa751}, {0xa753, 0xa753}, {0xa755, 0xa755}, {0xa757, 0xa757}, {0xa759, 0xa759},
  {0xa75b, 0xa75b}, {0xa75d, 0xa75d}, {0xa75f, 0xa75f}, {0xa761, 0xa761}, {0xa763, 0xa763}, {0xa765, 0xa765}, {0xa767, 0xa767}, {0xa769, 0xa769},
  {0xa76b, 0xa76b}, {0xa76d, 0xa76d}, {0xa76f, 0xa76f}, {0xa771, 0xa778}, {0xa77a, 0xa77a}, {0xa77c, 0xa77c}, {0xa77f, 0xa77f}, {0xa781, 0xa781},
  {0xa783, 0xa783}, {0xa785, 0xa785}, {0xa787, 0xa787}, {0xa78c, 0xa78c}, {0xa78e, 0xa78e}, {0xa791, 0xa791}, {0xa793, 0xa795}, {0xa797, 0xa797},
  {0xa799, 0xa799}, {0xa79b, 0xa79b}, {0xa79d, 0xa79d}, {0xa79f, 0xa79f}, {0xa7a1, 0xa7a1}, {0xa7a3, 0xa7a3}, {0xa7a5, 0xa7a5}, {0xa7a7, 0xa7a7},
  {0xa7a9, 0xa7a9}, {0xa7af, 0xa7af}, {0xa7b5, 0xa7b5}, {0xa7b7, 0xa7b7}, {0xa7b9, 0xa7b9}, {0xa7bb, 0xa7bb}, {0xa7bd, 0xa7bd}, {0xa7bf, 0xa7bf},
  {0xa7c3, 0xa7c3}, {0xa7fa, 0xa7fa}, {0xab30, 0xab5a}, {0xab60, 0xab67}, {0xab70, 0xabbf}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41, 0xff5a},
  {0x10428, 0x1044f}, {0x104d8, 0x104fb}, {0x10cc0, 0x10cf2}, {0x118c0, 0x118df}, {0x16e60, 0x16e7f}, {0x1d41a, 0x1d433}, {0x1d44e, 0x1d454}, {0x1d456, 0x1d467},
  {0x1d482, 0x1d49b}, {0x1d4b6, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d4cf}, {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537}, {0x1d552, 0x1d56b},
  {0x1d586, 0x1d59f}, {0x1d5ba, 0x1d5d3}, {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b}, {0x1d656, 0x1d66f}, {0x1d68a, 0x1d6a5}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6e1},
  {0x1d6fc, 0x1d714}, {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d755}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d78f}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9},
  {0x1d7cb, 0x1d7cb}, {0x1e922, 0x1e943},
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(72);
      ADVANCE_MAP(
        '"', 102,
        '&', 29,
        '\'', 90,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 136,
        '.', 85,
        '/', 139,
        '0', 114,
        ':', 128,
        '<', 144,
        '=', 126,
        '>', 145,
        '[', 107,
        '\\', 2,
        ']', 108,
        '^', 141,
        '_', 130,
        '{', 88,
        '|', 87,
        '}', 89,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(69);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (lookahead == 0x1c89 ||
          lookahead == 0x2c2f ||
          lookahead == 0xa7c0 ||
          lookahead == 0xa7c7 ||
          lookahead == 0xa7c9 ||
          lookahead == 0xa7cb ||
          lookahead == 0xa7cc ||
          lookahead == 0xa7d0 ||
          lookahead == 0xa7d6 ||
          lookahead == 0xa7d8 ||
          lookahead == 0xa7da ||
          lookahead == 0xa7dc ||
          lookahead == 0xa7f5 ||
          (0x10570 <= lookahead && lookahead <= 0x1057a) ||
          (0x1057c <= lookahead && lookahead <= 0x1058a) ||
          (0x1058c <= lookahead && lookahead <= 0x10592) ||
          lookahead == 0x10594 ||
          lookahead == 0x10595 ||
          (0x10d50 <= lookahead && lookahead <= 0x10d65)) ADVANCE(82);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(81);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 1:
      if (lookahead == '\n') SKIP(15);
      END_STATE();
    case 2:
      if (lookahead == '\n') SKIP(15);
      if (lookahead == '\r') SKIP(1);
      if (lookahead == 'u') ADVANCE(46);
      if (lookahead == '"' ||
          lookahead == '\'' ||
          lookahead == '\\' ||
          lookahead == 'n' ||
          lookahead == 'r' ||
          lookahead == 't') ADVANCE(119);
      END_STATE();
    case 3:
      if (lookahead == '\n') SKIP(26);
      END_STATE();
    case 4:
      if (lookahead == '\n') SKIP(26);
      if (lookahead == '\r') SKIP(3);
      END_STATE();
    case 5:
      if (lookahead == '\n') SKIP(28);
      END_STATE();
    case 6:
      if (lookahead == '\n') SKIP(28);
      if (lookahead == '\r') SKIP(5);
      END_STATE();
    case 7:
      if (lookahead == '\n') SKIP(24);
      END_STATE();
    case 8:
      if (lookahead == '\n') SKIP(24);
      if (lookahead == '\r') SKIP(7);
      END_STATE();
    case 9:
      ADVANCE_MAP(
        '\n', 122,
        '\r', 120,
        'u', 123,
        '"', 119,
        '\'', 119,
        '\\', 119,
        'n', 119,
        'r', 119,
        't', 119,
      );
      if (lookahead != 0) ADVANCE(120);
      END_STATE();
    case 10:
      if (lookahead == '\n') SKIP(22);
      if (lookahead == '"') ADVANCE(101);
      if (lookahead == '-') ADVANCE(104);
      if (lookahead == '\\') ADVANCE(9);
      if (lookahead == '{') ADVANCE(104);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(103);
      if (lookahead != 0) ADVANCE(105);
      END_STATE();
    case 11:
      if (lookahead == '\n') SKIP(34);
      END_STATE();
    case 12:
      if (lookahead == '\n') SKIP(34);
      if (lookahead == '\r') SKIP(11);
      END_STATE();
    case 13:
      if (lookahead == '\n') SKIP(13);
      if (lookahead == '-') ADVANCE(92);
      if (lookahead == '\\') ADVANCE(14);
      if (lookahead == '{') ADVANCE(93);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(94);
      if (lookahead != 0 &&
          lookahead != '\'') ADVANCE(91);
      END_STATE();
    case 14:
      ADVANCE_MAP(
        '\n', 121,
        '\r', 120,
        'u', 123,
        '"', 119,
        '\'', 119,
        '\\', 119,
        'n', 119,
        'r', 119,
        't', 119,
      );
      if (lookahead != 0) ADVANCE(120);
      END_STATE();
    case 15:
      ADVANCE_MAP(
        '"', 102,
        '&', 29,
        '\'', 90,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 136,
        '.', 132,
        '/', 139,
        '0', 114,
        ':', 128,
        '<', 144,
        '=', 126,
        '>', 145,
        '[', 107,
        '\\', 2,
        ']', 108,
        '^', 141,
        '_', 130,
        '{', 88,
        '|', 87,
        '}', 89,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(15);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 16:
      ADVANCE_MAP(
        '"', 102,
        '&', 29,
        '\'', 90,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 137,
        '.', 84,
        '/', 139,
        '0', 114,
        ':', 39,
        '<', 144,
        '=', 40,
        '>', 145,
        '[', 107,
        '\\', 129,
        ']', 108,
        '^', 141,
        '{', 88,
        '|', 38,
        '}', 89,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(17);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 17:
      ADVANCE_MAP(
        '"', 102,
        '&', 29,
        '\'', 90,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 137,
        '.', 131,
        '/', 139,
        '0', 114,
        ':', 39,
        '<', 144,
        '=', 40,
        '>', 145,
        '[', 107,
        '\\', 129,
        ']', 108,
        '^', 141,
        '{', 88,
        '|', 38,
        '}', 89,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(17);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 18:
      if (lookahead == '"') ADVANCE(95);
      END_STATE();
    case 19:
      if (lookahead == '"') ADVANCE(95);
      if (lookahead != 0) ADVANCE(100);
      END_STATE();
    case 20:
      if (lookahead == '"') ADVANCE(23);
      if (lookahead == '-') ADVANCE(99);
      if (lookahead == '\\') ADVANCE(9);
      if (lookahead == '{') ADVANCE(98);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(97);
      if (lookahead != 0) ADVANCE(100);
      END_STATE();
    case 21:
      if (lookahead == '"') ADVANCE(66);
      if (lookahead != 0) ADVANCE(100);
      END_STATE();
    case 22:
      if (lookahead == '"') ADVANCE(101);
      if (lookahead == '-') ADVANCE(30);
      if (lookahead == '\\') ADVANCE(9);
      if (lookahead == '{') ADVANCE(32);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(22);
      END_STATE();
    case 23:
      if (lookahead == '"') ADVANCE(19);
      if (lookahead != 0) ADVANCE(100);
      END_STATE();
    case 24:
      ADVANCE_MAP(
        '&', 29,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 134,
        '.', 36,
        '/', 139,
        ':', 39,
        '<', 144,
        '=', 126,
        '>', 145,
      );
      if (lookahead == '\\') SKIP(8);
      if (lookahead == ']') ADVANCE(108);
      if (lookahead == '^') ADVANCE(141);
      if (lookahead == '{') ADVANCE(32);
      if (lookahead == '|') ADVANCE(38);
      if (lookahead == '}') ADVANCE(89);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(24);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 25:
      ADVANCE_MAP(
        '&', 29,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        '-', 135,
        '.', 84,
        '/', 139,
        ':', 39,
        '<', 144,
        '=', 40,
        '>', 145,
      );
      if (lookahead == '\\') SKIP(4);
      if (lookahead == '^') ADVANCE(141);
      if (lookahead == '{') ADVANCE(88);
      if (lookahead == '|') ADVANCE(37);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(26);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 26:
      ADVANCE_MAP(
        '&', 29,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        '-', 135,
        '/', 139,
        ':', 39,
        '<', 144,
        '=', 40,
        '>', 145,
      );
      if (lookahead == '\\') SKIP(4);
      if (lookahead == '^') ADVANCE(141);
      if (lookahead == '{') ADVANCE(88);
      if (lookahead == '|') ADVANCE(37);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(26);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 27:
      ADVANCE_MAP(
        '&', 29,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 134,
        '.', 84,
        '/', 139,
        ':', 39,
        '<', 144,
        '=', 40,
        '>', 145,
      );
      if (lookahead == '\\') SKIP(6);
      if (lookahead == ']') ADVANCE(108);
      if (lookahead == '^') ADVANCE(141);
      if (lookahead == '{') ADVANCE(32);
      if (lookahead == '|') ADVANCE(38);
      if (lookahead == '}') ADVANCE(89);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(28);
      if (set_contains(sym__upper_case_identifier_without_leading_whitespace_character_set_1, 651, lookahead)) ADVANCE(82);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 28:
      ADVANCE_MAP(
        '&', 29,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 134,
        '/', 139,
        ':', 39,
        '<', 144,
        '=', 40,
        '>', 145,
      );
      if (lookahead == '\\') SKIP(6);
      if (lookahead == ']') ADVANCE(108);
      if (lookahead == '^') ADVANCE(141);
      if (lookahead == '{') ADVANCE(32);
      if (lookahead == '|') ADVANCE(38);
      if (lookahead == '}') ADVANCE(89);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(28);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 29:
      if (lookahead == '&') ADVANCE(148);
      END_STATE();
    case 30:
      if (lookahead == '-') ADVANCE(77);
      END_STATE();
    case 31:
      if (lookahead == '-') ADVANCE(77);
      if (lookahead == '>') ADVANCE(127);
      if (lookahead == '}') ADVANCE(74);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
      END_STATE();
    case 32:
      if (lookahead == '-') ADVANCE(73);
      END_STATE();
    case 33:
      if (lookahead == '-') ADVANCE(60);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(117);
      END_STATE();
    case 34:
      if (lookahead == '-') ADVANCE(30);
      if (lookahead == '\\') SKIP(12);
      if (lookahead == '{') ADVANCE(32);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(34);
      END_STATE();
    case 35:
      if (lookahead == '-') ADVANCE(30);
      if (lookahead == '\\') SKIP(12);
      if (lookahead == '{') ADVANCE(32);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(34);
      if (set_contains(sym__upper_case_identifier_without_leading_whitespace_character_set_1, 651, lookahead)) ADVANCE(82);
      if (set_contains(sym__lower_case_identifier_without_leading_whitespace_character_set_1, 662, lookahead)) ADVANCE(83);
      END_STATE();
    case 36:
      if (lookahead == '.') ADVANCE(124);
      END_STATE();
    case 37:
      if (lookahead == '.') ADVANCE(157);
      if (lookahead == '=') ADVANCE(158);
      if (lookahead == '>') ADVANCE(152);
      if (lookahead == ']') ADVANCE(111);
      if (lookahead == '|') ADVANCE(149);
      END_STATE();
    case 38:
      if (lookahead == '.') ADVANCE(157);
      if (lookahead == '=') ADVANCE(158);
      if (lookahead == '>') ADVANCE(152);
      if (lookahead == '|') ADVANCE(149);
      END_STATE();
    case 39:
      if (lookahead == ':') ADVANCE(109);
      END_STATE();
    case 40:
      if (lookahead == '=') ADVANCE(142);
      END_STATE();
    case 41:
      if (lookahead == '>') ADVANCE(155);
      END_STATE();
    case 42:
      if (lookahead == '>') ADVANCE(156);
      END_STATE();
    case 43:
      if (lookahead == 'l') ADVANCE(45);
      END_STATE();
    case 44:
      if (lookahead == 'l') ADVANCE(47);
      END_STATE();
    case 45:
      if (lookahead == 's') ADVANCE(44);
      END_STATE();
    case 46:
      if (lookahead == '{') ADVANCE(65);
      END_STATE();
    case 47:
      if (lookahead == '|') ADVANCE(110);
      END_STATE();
    case 48:
      if (lookahead == '}') ADVANCE(119);
      END_STATE();
    case 49:
      if (lookahead == '}') ADVANCE(119);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
      END_STATE();
    case 50:
      if (lookahead == '}') ADVANCE(119);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(49);
      END_STATE();
    case 51:
      if (lookahead == '}') ADVANCE(119);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(53);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 52:
      if (lookahead == '}') ADVANCE(119);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(51);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 53:
      if (lookahead == '}') ADVANCE(119);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 54:
      if (lookahead == '}') ADVANCE(120);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(52);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 55:
      if (lookahead == '}') ADVANCE(120);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(54);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 56:
      if (lookahead == '}') ADVANCE(120);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(55);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 57:
      if (lookahead == '}') ADVANCE(120);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(56);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 58:
      if (lookahead == '}') ADVANCE(120);
      if (lookahead != 0) ADVANCE(58);
      END_STATE();
    case 59:
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(116);
      END_STATE();
    case 60:
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(117);
      END_STATE();
    case 61:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(118);
      END_STATE();
    case 62:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(50);
      END_STATE();
    case 63:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(62);
      END_STATE();
    case 64:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(63);
      END_STATE();
    case 65:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(64);
      END_STATE();
    case 66:
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(100);
      END_STATE();
    case 67:
      if (eof) ADVANCE(72);
      if (lookahead == '\n') SKIP(71);
      END_STATE();
    case 68:
      if (eof) ADVANCE(72);
      if (lookahead == '\n') SKIP(71);
      if (lookahead == '\r') SKIP(67);
      END_STATE();
    case 69:
      if (eof) ADVANCE(72);
      ADVANCE_MAP(
        '"', 102,
        '&', 29,
        '\'', 90,
        '(', 78,
        ')', 80,
        '*', 138,
        '+', 133,
        ',', 79,
        '-', 136,
        '.', 132,
        '/', 139,
        '0', 114,
        ':', 128,
        '<', 144,
        '=', 126,
        '>', 145,
        '[', 107,
        '\\', 2,
        ']', 108,
        '^', 141,
        '_', 130,
        '{', 88,
        '|', 87,
        '}', 89,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(69);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 70:
      if (eof) ADVANCE(72);
      ADVANCE_MAP(
        '"', 102,
        '\'', 90,
        '(', 78,
        ')', 80,
        ',', 79,
        '-', 31,
        '.', 84,
        '0', 114,
        ':', 128,
        '=', 125,
        '[', 106,
      );
      if (lookahead == '\\') SKIP(68);
      if (lookahead == ']') ADVANCE(108);
      if (lookahead == '_') ADVANCE(130);
      if (lookahead == '{') ADVANCE(88);
      if (lookahead == '|') ADVANCE(86);
      if (lookahead == '}') ADVANCE(89);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(71);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 71:
      if (eof) ADVANCE(72);
      ADVANCE_MAP(
        '"', 102,
        '\'', 90,
        '(', 78,
        ')', 80,
        ',', 79,
        '-', 31,
        '0', 114,
        ':', 128,
        '=', 125,
        '[', 106,
      );
      if (lookahead == '\\') SKIP(68);
      if (lookahead == ']') ADVANCE(108);
      if (lookahead == '_') ADVANCE(130);
      if (lookahead == '{') ADVANCE(88);
      if (lookahead == '|') ADVANCE(86);
      if (lookahead == '}') ADVANCE(89);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(71);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(115);
      if (set_contains(sym_upper_case_identifier_character_set_1, 636, lookahead)) ADVANCE(112);
      if (set_contains(sym_lower_case_identifier_character_set_1, 642, lookahead)) ADVANCE(113);
      END_STATE();
    case 72:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 73:
      ACCEPT_TOKEN(anon_sym_LBRACE_DASH);
      END_STATE();
    case 74:
      ACCEPT_TOKEN(anon_sym_DASH_RBRACE);
      END_STATE();
    case 75:
      ACCEPT_TOKEN(sym_line_comment);
      if (lookahead == '\n') ADVANCE(100);
      if (lookahead == '"') ADVANCE(77);
      if (lookahead != 0) ADVANCE(96);
      END_STATE();
    case 76:
      ACCEPT_TOKEN(sym_line_comment);
      if (lookahead == '\n') ADVANCE(100);
      if (lookahead == '"') ADVANCE(75);
      if (lookahead != 0) ADVANCE(96);
      END_STATE();
    case 77:
      ACCEPT_TOKEN(sym_line_comment);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(77);
      END_STATE();
    case 78:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 79:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 80:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 81:
      ACCEPT_TOKEN(sym__upper_case_identifier_without_leading_whitespace);
      if ((0x870 <= lookahead && lookahead <= 0x887) ||
          (0x889 <= lookahead && lookahead <= 0x88e) ||
          lookahead == 0x8b5 ||
          (0x8be <= lookahead && lookahead <= 0x8c9) ||
          lookahead == 0xc5d ||
          lookahead == 0xcdd ||
          lookahead == 0xd04 ||
          lookahead == 0x170d ||
          lookahead == 0x171f ||
          lookahead == 0x1b4c ||
          lookahead == 0x1c89 ||
          lookahead == 0x1c8a ||
          lookahead == 0x2c2f ||
          lookahead == 0x2c5f ||
          (0x31bb <= lookahead && lookahead <= 0x31bf) ||
          (0x4db6 <= lookahead && lookahead <= 0x4dbf) ||
          (0x9ff0 <= lookahead && lookahead <= 0x9fff) ||
          lookahead == 0xa7c0 ||
          lookahead == 0xa7c1 ||
          (0xa7c7 <= lookahead && lookahead <= 0xa7cd) ||
          lookahead == 0xa7d0 ||
          lookahead == 0xa7d1 ||
          lookahead == 0xa7d3 ||
          (0xa7d5 <= lookahead && lookahead <= 0xa7dc) ||
          (0xa7f2 <= lookahead && lookahead <= 0xa7f6) ||
          lookahead == 0xab68 ||
          lookahead == 0xab69 ||
          (0x10570 <= lookahead && lookahead <= 0x1057a) ||
          (0x1057c <= lookahead && lookahead <= 0x1058a) ||
          (0x1058c <= lookahead && lookahead <= 0x10592) ||
          lookahead == 0x10594 ||
          lookahead == 0x10595 ||
          (0x10597 <= lookahead && lookahead <= 0x105a1) ||
          (0x105a3 <= lookahead && lookahead <= 0x105b1) ||
          (0x105b3 <= lookahead && lookahead <= 0x105b9) ||
          lookahead == 0x105bb ||
          lookahead == 0x105bc ||
          (0x105c0 <= lookahead && lookahead <= 0x105f3) ||
          (0x10780 <= lookahead && lookahead <= 0x10785) ||
          (0x10787 <= lookahead && lookahead <= 0x107b0) ||
          (0x107b2 <= lookahead && lookahead <= 0x107ba) ||
          (0x10d4a <= lookahead && lookahead <= 0x10d65) ||
          (0x10d6f <= lookahead && lookahead <= 0x10d85) ||
          (0x10e80 <= lookahead && lookahead <= 0x10ea9) ||
          lookahead == 0x10eb0 ||
          lookahead == 0x10eb1 ||
          (0x10ec2 <= lookahead && lookahead <= 0x10ec4) ||
          (0x10f70 <= lookahead && lookahead <= 0x10f81) ||
          (0x10fb0 <= lookahead && lookahead <= 0x10fc4) ||
          lookahead == 0x11071 ||
          lookahead == 0x11072 ||
          lookahead == 0x11075 ||
          lookahead == 0x11147 ||
          lookahead == 0x1123f ||
          lookahead == 0x11240 ||
          (0x11380 <= lookahead && lookahead <= 0x11389) ||
          lookahead == 0x1138b ||
          lookahead == 0x1138e ||
          (0x11390 <= lookahead && lookahead <= 0x113b5) ||
          lookahead == 0x113b7 ||
          lookahead == 0x113d1 ||
          lookahead == 0x113d3 ||
          lookahead == 0x11460 ||
          lookahead == 0x11461 ||
          (0x11740 <= lookahead && lookahead <= 0x11746) ||
          (0x11900 <= lookahead && lookahead <= 0x11906) ||
          lookahead == 0x11909 ||
          (0x1190c <= lookahead && lookahead <= 0x11913) ||
          lookahead == 0x11915 ||
          lookahead == 0x11916 ||
          (0x11918 <= lookahead && lookahead <= 0x1192f) ||
          lookahead == 0x1193f ||
          lookahead == 0x11941 ||
          (0x11ab0 <= lookahead && lookahead <= 0x11abf) ||
          (0x11bc0 <= lookahead && lookahead <= 0x11be0) ||
          lookahead == 0x11f02 ||
          (0x11f04 <= lookahead && lookahead <= 0x11f10) ||
          (0x11f12 <= lookahead && lookahead <= 0x11f33) ||
          lookahead == 0x11fb0 ||
          (0x12f90 <= lookahead && lookahead <= 0x12ff0) ||
          lookahead == 0x1342f ||
          (0x13441 <= lookahead && lookahead <= 0x13446) ||
          (0x13460 <= lookahead && lookahead <= 0x143fa) ||
          (0x16100 <= lookahead && lookahead <= 0x1611d) ||
          (0x16a70 <= lookahead && lookahead <= 0x16abe) ||
          (0x16d40 <= lookahead && lookahead <= 0x16d6c) ||
          (0x18af3 <= lookahead && lookahead <= 0x18cd5) ||
          (0x18cff <= lookahead && lookahead <= 0x18d08) ||
          (0x1aff0 <= lookahead && lookahead <= 0x1aff3) ||
          (0x1aff5 <= lookahead && lookahead <= 0x1affb) ||
          lookahead == 0x1affd ||
          lookahead == 0x1affe ||
          (0x1b11f <= lookahead && lookahead <= 0x1b122) ||
          lookahead == 0x1b132 ||
          lookahead == 0x1b155 ||
          (0x1df00 <= lookahead && lookahead <= 0x1df1e) ||
          (0x1df25 <= lookahead && lookahead <= 0x1df2a) ||
          (0x1e030 <= lookahead && lookahead <= 0x1e06d) ||
          (0x1e290 <= lookahead && lookahead <= 0x1e2ad) ||
          (0x1e4d0 <= lookahead && lookahead <= 0x1e4eb) ||
          (0x1e5d0 <= lookahead && lookahead <= 0x1e5ed) ||
          lookahead == 0x1e5f0 ||
          (0x1e7e0 <= lookahead && lookahead <= 0x1e7e6) ||
          (0x1e7e8 <= lookahead && lookahead <= 0x1e7eb) ||
          lookahead == 0x1e7ed ||
          lookahead == 0x1e7ee ||
          (0x1e7f0 <= lookahead && lookahead <= 0x1e7fe) ||
          (0x2a6d7 <= lookahead && lookahead <= 0x2a6df) ||
          (0x2b735 <= lookahead && lookahead <= 0x2b739) ||
          (0x2ebf0 <= lookahead && lookahead <= 0x2ee5d) ||
          (0x30000 <= lookahead && lookahead <= 0x3134a) ||
          (0x31350 <= lookahead && lookahead <= 0x323af)) ADVANCE(82);
      if (set_contains(sym_upper_case_identifier_character_set_2, 611, lookahead)) ADVANCE(81);
      END_STATE();
    case 82:
      ACCEPT_TOKEN(sym__upper_case_identifier_without_leading_whitespace);
      if (set_contains(sym__upper_case_identifier_without_leading_whitespace_character_set_2, 679, lookahead)) ADVANCE(82);
      END_STATE();
    case 83:
      ACCEPT_TOKEN(sym__lower_case_identifier_without_leading_whitespace);
      if (set_contains(sym__upper_case_identifier_without_leading_whitespace_character_set_2, 679, lookahead)) ADVANCE(83);
      END_STATE();
    case 84:
      ACCEPT_TOKEN(anon_sym_DOT);
      END_STATE();
    case 85:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(124);
      END_STATE();
    case 86:
      ACCEPT_TOKEN(anon_sym_PIPE);
      END_STATE();
    case 87:
      ACCEPT_TOKEN(anon_sym_PIPE);
      if (lookahead == '.') ADVANCE(157);
      if (lookahead == '=') ADVANCE(158);
      if (lookahead == '>') ADVANCE(152);
      if (lookahead == ']') ADVANCE(111);
      if (lookahead == '|') ADVANCE(149);
      END_STATE();
    case 88:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      if (lookahead == '-') ADVANCE(73);
      END_STATE();
    case 89:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 90:
      ACCEPT_TOKEN(anon_sym_SQUOTE);
      END_STATE();
    case 91:
      ACCEPT_TOKEN(aux_sym_char_constant_expr_token1);
      END_STATE();
    case 92:
      ACCEPT_TOKEN(aux_sym_char_constant_expr_token1);
      if (lookahead == '-') ADVANCE(77);
      END_STATE();
    case 93:
      ACCEPT_TOKEN(aux_sym_char_constant_expr_token1);
      if (lookahead == '-') ADVANCE(73);
      END_STATE();
    case 94:
      ACCEPT_TOKEN(aux_sym_char_constant_expr_token1);
      if (lookahead == '-') ADVANCE(92);
      if (lookahead == '\\') ADVANCE(14);
      if (lookahead == '{') ADVANCE(93);
      if (lookahead == '\t' ||
          (0x0b <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(94);
      if (lookahead != 0 &&
          (lookahead < '\t' || '\r' < lookahead) &&
          lookahead != '\'') ADVANCE(91);
      END_STATE();
    case 95:
      ACCEPT_TOKEN(anon_sym_DQUOTE_DQUOTE_DQUOTE);
      END_STATE();
    case 96:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token1);
      if (lookahead == '\n') ADVANCE(100);
      if (lookahead == '"') ADVANCE(76);
      if (lookahead != 0 &&
          lookahead != '\\') ADVANCE(96);
      END_STATE();
    case 97:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token1);
      if (lookahead == '"') ADVANCE(23);
      if (lookahead == '-') ADVANCE(99);
      if (lookahead == '{') ADVANCE(98);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(97);
      if (lookahead != 0 &&
          lookahead != '\\') ADVANCE(100);
      END_STATE();
    case 98:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token1);
      if (lookahead == '"') ADVANCE(21);
      if (lookahead == '-') ADVANCE(100);
      if (lookahead != 0 &&
          lookahead != '\\') ADVANCE(100);
      END_STATE();
    case 99:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token1);
      if (lookahead == '"') ADVANCE(21);
      if (lookahead == '-') ADVANCE(96);
      if (lookahead != 0 &&
          lookahead != '\\') ADVANCE(100);
      END_STATE();
    case 100:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token1);
      if (lookahead == '"') ADVANCE(21);
      if (lookahead != 0 &&
          lookahead != '\\') ADVANCE(100);
      END_STATE();
    case 101:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      END_STATE();
    case 102:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      if (lookahead == '"') ADVANCE(18);
      END_STATE();
    case 103:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token2);
      if (lookahead == '-') ADVANCE(104);
      if (lookahead == '{') ADVANCE(104);
      if (lookahead == '\t' ||
          (0x0b <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(103);
      if (lookahead != 0 &&
          (lookahead < '\t' || '\r' < lookahead) &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(105);
      END_STATE();
    case 104:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token2);
      if (lookahead == '-') ADVANCE(105);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(105);
      END_STATE();
    case 105:
      ACCEPT_TOKEN(aux_sym_string_constant_expr_token2);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(105);
      END_STATE();
    case 106:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 107:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      if (lookahead == 'g') ADVANCE(43);
      END_STATE();
    case 108:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 109:
      ACCEPT_TOKEN(anon_sym_COLON_COLON);
      END_STATE();
    case 110:
      ACCEPT_TOKEN(anon_sym_LBRACKglsl_PIPE);
      END_STATE();
    case 111:
      ACCEPT_TOKEN(anon_sym_PIPE_RBRACK);
      END_STATE();
    case 112:
      ACCEPT_TOKEN(sym_upper_case_identifier);
      if (set_contains(sym_upper_case_identifier_character_set_2, 611, lookahead)) ADVANCE(112);
      END_STATE();
    case 113:
      ACCEPT_TOKEN(sym_lower_case_identifier);
      if (set_contains(sym_upper_case_identifier_character_set_2, 611, lookahead)) ADVANCE(113);
      END_STATE();
    case 114:
      ACCEPT_TOKEN(sym_number_literal);
      if (lookahead == '.') ADVANCE(59);
      if (lookahead == 'e') ADVANCE(33);
      if (lookahead == 'x') ADVANCE(61);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
      END_STATE();
    case 115:
      ACCEPT_TOKEN(sym_number_literal);
      if (lookahead == '.') ADVANCE(59);
      if (lookahead == 'e') ADVANCE(33);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
      END_STATE();
    case 116:
      ACCEPT_TOKEN(sym_number_literal);
      if (lookahead == 'e') ADVANCE(33);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(116);
      END_STATE();
    case 117:
      ACCEPT_TOKEN(sym_number_literal);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(117);
      END_STATE();
    case 118:
      ACCEPT_TOKEN(sym_number_literal);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(118);
      END_STATE();
    case 119:
      ACCEPT_TOKEN(sym_string_escape);
      END_STATE();
    case 120:
      ACCEPT_TOKEN(sym_invalid_string_escape);
      END_STATE();
    case 121:
      ACCEPT_TOKEN(sym_invalid_string_escape);
      if (lookahead == '-') ADVANCE(92);
      if (lookahead == '\\') ADVANCE(14);
      if (lookahead == '\t' ||
          (0x0b <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) ADVANCE(94);
      END_STATE();
    case 122:
      ACCEPT_TOKEN(sym_invalid_string_escape);
      if (lookahead == '-') ADVANCE(30);
      if (lookahead == '\\') ADVANCE(9);
      END_STATE();
    case 123:
      ACCEPT_TOKEN(sym_invalid_string_escape);
      if (lookahead == '{') ADVANCE(57);
      END_STATE();
    case 124:
      ACCEPT_TOKEN(sym_double_dot);
      END_STATE();
    case 125:
      ACCEPT_TOKEN(sym_eq);
      END_STATE();
    case 126:
      ACCEPT_TOKEN(sym_eq);
      if (lookahead == '=') ADVANCE(142);
      END_STATE();
    case 127:
      ACCEPT_TOKEN(sym_arrow);
      END_STATE();
    case 128:
      ACCEPT_TOKEN(sym_colon);
      if (lookahead == ':') ADVANCE(109);
      END_STATE();
    case 129:
      ACCEPT_TOKEN(sym_backslash);
      END_STATE();
    case 130:
      ACCEPT_TOKEN(sym_underscore);
      END_STATE();
    case 131:
      ACCEPT_TOKEN(sym_dot);
      END_STATE();
    case 132:
      ACCEPT_TOKEN(sym_dot);
      if (lookahead == '.') ADVANCE(124);
      END_STATE();
    case 133:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if (lookahead == '+') ADVANCE(150);
      END_STATE();
    case 134:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(77);
      END_STATE();
    case 135:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(77);
      if (lookahead == '>') ADVANCE(127);
      END_STATE();
    case 136:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(77);
      if (lookahead == '>') ADVANCE(127);
      if (lookahead == '}') ADVANCE(74);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
      END_STATE();
    case 137:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(77);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
      END_STATE();
    case 138:
      ACCEPT_TOKEN(anon_sym_STAR);
      END_STATE();
    case 139:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if (lookahead == '/') ADVANCE(140);
      if (lookahead == '=') ADVANCE(143);
      END_STATE();
    case 140:
      ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
      END_STATE();
    case 141:
      ACCEPT_TOKEN(anon_sym_CARET);
      END_STATE();
    case 142:
      ACCEPT_TOKEN(anon_sym_EQ_EQ);
      END_STATE();
    case 143:
      ACCEPT_TOKEN(anon_sym_SLASH_EQ);
      END_STATE();
    case 144:
      ACCEPT_TOKEN(anon_sym_LT);
      if (lookahead == '/') ADVANCE(41);
      if (lookahead == '<') ADVANCE(153);
      if (lookahead == '=') ADVANCE(146);
      if (lookahead == '?') ADVANCE(42);
      if (lookahead == '|') ADVANCE(151);
      END_STATE();
    case 145:
      ACCEPT_TOKEN(anon_sym_GT);
      if (lookahead == '=') ADVANCE(147);
      if (lookahead == '>') ADVANCE(154);
      END_STATE();
    case 146:
      ACCEPT_TOKEN(anon_sym_LT_EQ);
      END_STATE();
    case 147:
      ACCEPT_TOKEN(anon_sym_GT_EQ);
      END_STATE();
    case 148:
      ACCEPT_TOKEN(anon_sym_AMP_AMP);
      END_STATE();
    case 149:
      ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
      END_STATE();
    case 150:
      ACCEPT_TOKEN(anon_sym_PLUS_PLUS);
      END_STATE();
    case 151:
      ACCEPT_TOKEN(anon_sym_LT_PIPE);
      END_STATE();
    case 152:
      ACCEPT_TOKEN(anon_sym_PIPE_GT);
      END_STATE();
    case 153:
      ACCEPT_TOKEN(anon_sym_LT_LT);
      END_STATE();
    case 154:
      ACCEPT_TOKEN(anon_sym_GT_GT);
      END_STATE();
    case 155:
      ACCEPT_TOKEN(anon_sym_LT_SLASH_GT);
      END_STATE();
    case 156:
      ACCEPT_TOKEN(anon_sym_LT_QMARK_GT);
      END_STATE();
    case 157:
      ACCEPT_TOKEN(anon_sym_PIPE_DOT);
      END_STATE();
    case 158:
      ACCEPT_TOKEN(anon_sym_PIPE_EQ);
      END_STATE();
    default:
      return false;
  }
}

static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (lookahead == '\\') SKIP(1);
      if (lookahead == 'a') ADVANCE(2);
      if (lookahead == 'c') ADVANCE(3);
      if (lookahead == 'e') ADVANCE(4);
      if (lookahead == 'i') ADVANCE(5);
      if (lookahead == 'l') ADVANCE(6);
      if (lookahead == 'm') ADVANCE(7);
      if (lookahead == 'n') ADVANCE(8);
      if (lookahead == 'o') ADVANCE(9);
      if (lookahead == 'p') ADVANCE(10);
      if (lookahead == 'r') ADVANCE(11);
      if (lookahead == 't') ADVANCE(12);
      if (lookahead == 'w') ADVANCE(13);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          lookahead == 0x200b ||
          lookahead == 0x2060 ||
          lookahead == 0xfeff) SKIP(0);
      END_STATE();
    case 1:
      if (lookahead == '\n') SKIP(0);
      if (lookahead == '\r') SKIP(14);
      END_STATE();
    case 2:
      if (lookahead == 'l') ADVANCE(15);
      if (lookahead == 's') ADVANCE(16);
      END_STATE();
    case 3:
      if (lookahead == 'a') ADVANCE(17);
      END_STATE();
    case 4:
      if (lookahead == 'f') ADVANCE(18);
      if (lookahead == 'l') ADVANCE(19);
      if (lookahead == 'x') ADVANCE(20);
      END_STATE();
    case 5:
      if (lookahead == 'f') ADVANCE(21);
      if (lookahead == 'm') ADVANCE(22);
      if (lookahead == 'n') ADVANCE(23);
      END_STATE();
    case 6:
      if (lookahead == 'e') ADVANCE(24);
      END_STATE();
    case 7:
      if (lookahead == 'o') ADVANCE(25);
      END_STATE();
    case 8:
      if (lookahead == 'o') ADVANCE(26);
      END_STATE();
    case 9:
      if (lookahead == 'f') ADVANCE(27);
      END_STATE();
    case 10:
      if (lookahead == 'o') ADVANCE(28);
      END_STATE();
    case 11:
      if (lookahead == 'i') ADVANCE(29);
      END_STATE();
    case 12:
      if (lookahead == 'h') ADVANCE(30);
      if (lookahead == 'y') ADVANCE(31);
      END_STATE();
    case 13:
      if (lookahead == 'h') ADVANCE(32);
      END_STATE();
    case 14:
      if (lookahead == '\n') SKIP(0);
      END_STATE();
    case 15:
      if (lookahead == 'i') ADVANCE(33);
      END_STATE();
    case 16:
      ACCEPT_TOKEN(sym_as);
      END_STATE();
    case 17:
      if (lookahead == 's') ADVANCE(34);
      END_STATE();
    case 18:
      if (lookahead == 'f') ADVANCE(35);
      END_STATE();
    case 19:
      if (lookahead == 's') ADVANCE(36);
      END_STATE();
    case 20:
      if (lookahead == 'p') ADVANCE(37);
      END_STATE();
    case 21:
      ACCEPT_TOKEN(anon_sym_if);
      END_STATE();
    case 22:
      if (lookahead == 'p') ADVANCE(38);
      END_STATE();
    case 23:
      ACCEPT_TOKEN(anon_sym_in);
      if (lookahead == 'f') ADVANCE(39);
      END_STATE();
    case 24:
      if (lookahead == 'f') ADVANCE(40);
      if (lookahead == 't') ADVANCE(41);
      END_STATE();
    case 25:
      if (lookahead == 'd') ADVANCE(42);
      END_STATE();
    case 26:
      if (lookahead == 'n') ADVANCE(43);
      END_STATE();
    case 27:
      ACCEPT_TOKEN(sym_of);
      END_STATE();
    case 28:
      if (lookahead == 'r') ADVANCE(44);
      END_STATE();
    case 29:
      if (lookahead == 'g') ADVANCE(45);
      END_STATE();
    case 30:
      if (lookahead == 'e') ADVANCE(46);
      END_STATE();
    case 31:
      if (lookahead == 'p') ADVANCE(47);
      END_STATE();
    case 32:
      if (lookahead == 'e') ADVANCE(48);
      END_STATE();
    case 33:
      if (lookahead == 'a') ADVANCE(49);
      END_STATE();
    case 34:
      if (lookahead == 'e') ADVANCE(50);
      END_STATE();
    case 35:
      if (lookahead == 'e') ADVANCE(51);
      END_STATE();
    case 36:
      if (lookahead == 'e') ADVANCE(52);
      END_STATE();
    case 37:
      if (lookahead == 'o') ADVANCE(53);
      END_STATE();
    case 38:
      if (lookahead == 'o') ADVANCE(54);
      END_STATE();
    case 39:
      if (lookahead == 'i') ADVANCE(55);
      END_STATE();
    case 40:
      if (lookahead == 't') ADVANCE(56);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_let);
      END_STATE();
    case 42:
      if (lookahead == 'u') ADVANCE(57);
      END_STATE();
    case 43:
      ACCEPT_TOKEN(anon_sym_non);
      END_STATE();
    case 44:
      if (lookahead == 't') ADVANCE(58);
      END_STATE();
    case 45:
      if (lookahead == 'h') ADVANCE(59);
      END_STATE();
    case 46:
      if (lookahead == 'n') ADVANCE(60);
      END_STATE();
    case 47:
      if (lookahead == 'e') ADVANCE(61);
      END_STATE();
    case 48:
      if (lookahead == 'r') ADVANCE(62);
      END_STATE();
    case 49:
      if (lookahead == 's') ADVANCE(63);
      END_STATE();
    case 50:
      ACCEPT_TOKEN(sym_case);
      END_STATE();
    case 51:
      if (lookahead == 'c') ADVANCE(64);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(anon_sym_else);
      END_STATE();
    case 53:
      if (lookahead == 's') ADVANCE(65);
      END_STATE();
    case 54:
      if (lookahead == 'r') ADVANCE(66);
      END_STATE();
    case 55:
      if (lookahead == 'x') ADVANCE(67);
      END_STATE();
    case 56:
      ACCEPT_TOKEN(anon_sym_left);
      END_STATE();
    case 57:
      if (lookahead == 'l') ADVANCE(68);
      END_STATE();
    case 58:
      ACCEPT_TOKEN(sym_port);
      END_STATE();
    case 59:
      if (lookahead == 't') ADVANCE(69);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(anon_sym_then);
      END_STATE();
    case 61:
      ACCEPT_TOKEN(sym_type);
      END_STATE();
    case 62:
      if (lookahead == 'e') ADVANCE(70);
      END_STATE();
    case 63:
      ACCEPT_TOKEN(sym_alias);
      END_STATE();
    case 64:
      if (lookahead == 't') ADVANCE(71);
      END_STATE();
    case 65:
      if (lookahead == 'i') ADVANCE(72);
      END_STATE();
    case 66:
      if (lookahead == 't') ADVANCE(73);
      END_STATE();
    case 67:
      ACCEPT_TOKEN(sym_infix);
      END_STATE();
    case 68:
      if (lookahead == 'e') ADVANCE(74);
      END_STATE();
    case 69:
      ACCEPT_TOKEN(anon_sym_right);
      END_STATE();
    case 70:
      ACCEPT_TOKEN(sym_where);
      END_STATE();
    case 71:
      ACCEPT_TOKEN(sym_effect);
      END_STATE();
    case 72:
      if (lookahead == 'n') ADVANCE(75);
      END_STATE();
    case 73:
      ACCEPT_TOKEN(sym_import);
      END_STATE();
    case 74:
      ACCEPT_TOKEN(sym_module);
      END_STATE();
    case 75:
      if (lookahead == 'g') ADVANCE(76);
      END_STATE();
    case 76:
      ACCEPT_TOKEN(sym_exposing);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexerMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0, .external_lex_state = 1},
  [1] = {.lex_state = 70},
  [2] = {.lex_state = 17, .external_lex_state = 2},
  [3] = {.lex_state = 17, .external_lex_state = 2},
  [4] = {.lex_state = 17, .external_lex_state = 2},
  [5] = {.lex_state = 17, .external_lex_state = 2},
  [6] = {.lex_state = 17, .external_lex_state = 2},
  [7] = {.lex_state = 17, .external_lex_state = 2},
  [8] = {.lex_state = 17, .external_lex_state = 2},
  [9] = {.lex_state = 17, .external_lex_state = 2},
  [10] = {.lex_state = 17, .external_lex_state = 2},
  [11] = {.lex_state = 17, .external_lex_state = 2},
  [12] = {.lex_state = 17, .external_lex_state = 2},
  [13] = {.lex_state = 17, .external_lex_state = 2},
  [14] = {.lex_state = 17, .external_lex_state = 3},
  [15] = {.lex_state = 17, .external_lex_state = 3},
  [16] = {.lex_state = 17, .external_lex_state = 3},
  [17] = {.lex_state = 17, .external_lex_state = 4},
  [18] = {.lex_state = 17, .external_lex_state = 4},
  [19] = {.lex_state = 17, .external_lex_state = 4},
  [20] = {.lex_state = 16, .external_lex_state = 2},
  [21] = {.lex_state = 16, .external_lex_state = 2},
  [22] = {.lex_state = 16, .external_lex_state = 2},
  [23] = {.lex_state = 16, .external_lex_state = 2},
  [24] = {.lex_state = 16, .external_lex_state = 2},
  [25] = {.lex_state = 17, .external_lex_state = 2},
  [26] = {.lex_state = 17, .external_lex_state = 2},
  [27] = {.lex_state = 17, .external_lex_state = 2},
  [28] = {.lex_state = 16, .external_lex_state = 2},
  [29] = {.lex_state = 17, .external_lex_state = 2},
  [30] = {.lex_state = 16, .external_lex_state = 2},
  [31] = {.lex_state = 16, .external_lex_state = 2},
  [32] = {.lex_state = 16, .external_lex_state = 2},
  [33] = {.lex_state = 16, .external_lex_state = 2},
  [34] = {.lex_state = 16, .external_lex_state = 2},
  [35] = {.lex_state = 16, .external_lex_state = 2},
  [36] = {.lex_state = 17, .external_lex_state = 2},
  [37] = {.lex_state = 16, .external_lex_state = 2},
  [38] = {.lex_state = 17, .external_lex_state = 2},
  [39] = {.lex_state = 17, .external_lex_state = 2},
  [40] = {.lex_state = 17, .external_lex_state = 2},
  [41] = {.lex_state = 16, .external_lex_state = 2},
  [42] = {.lex_state = 16, .external_lex_state = 2},
  [43] = {.lex_state = 16, .external_lex_state = 2},
  [44] = {.lex_state = 17, .external_lex_state = 2},
  [45] = {.lex_state = 16, .external_lex_state = 2},
  [46] = {.lex_state = 16, .external_lex_state = 2},
  [47] = {.lex_state = 16, .external_lex_state = 2},
  [48] = {.lex_state = 17, .external_lex_state = 2},
  [49] = {.lex_state = 17, .external_lex_state = 2},
  [50] = {.lex_state = 17, .external_lex_state = 2},
  [51] = {.lex_state = 17, .external_lex_state = 2},
  [52] = {.lex_state = 17, .external_lex_state = 2},
  [53] = {.lex_state = 17, .external_lex_state = 2},
  [54] = {.lex_state = 17, .external_lex_state = 2},
  [55] = {.lex_state = 17, .external_lex_state = 2},
  [56] = {.lex_state = 17, .external_lex_state = 2},
  [57] = {.lex_state = 17, .external_lex_state = 2},
  [58] = {.lex_state = 17, .external_lex_state = 2},
  [59] = {.lex_state = 17, .external_lex_state = 2},
  [60] = {.lex_state = 17, .external_lex_state = 2},
  [61] = {.lex_state = 17, .external_lex_state = 2},
  [62] = {.lex_state = 17, .external_lex_state = 2},
  [63] = {.lex_state = 17, .external_lex_state = 2},
  [64] = {.lex_state = 17, .external_lex_state = 2},
  [65] = {.lex_state = 17, .external_lex_state = 2},
  [66] = {.lex_state = 17, .external_lex_state = 2},
  [67] = {.lex_state = 17, .external_lex_state = 2},
  [68] = {.lex_state = 17, .external_lex_state = 2},
  [69] = {.lex_state = 17, .external_lex_state = 2},
  [70] = {.lex_state = 17, .external_lex_state = 2},
  [71] = {.lex_state = 17, .external_lex_state = 2},
  [72] = {.lex_state = 17, .external_lex_state = 2},
  [73] = {.lex_state = 17, .external_lex_state = 2},
  [74] = {.lex_state = 17, .external_lex_state = 2},
  [75] = {.lex_state = 17, .external_lex_state = 2},
  [76] = {.lex_state = 17, .external_lex_state = 2},
  [77] = {.lex_state = 17, .external_lex_state = 2},
  [78] = {.lex_state = 17, .external_lex_state = 2},
  [79] = {.lex_state = 17, .external_lex_state = 2},
  [80] = {.lex_state = 17, .external_lex_state = 2},
  [81] = {.lex_state = 17, .external_lex_state = 2},
  [82] = {.lex_state = 17, .external_lex_state = 2},
  [83] = {.lex_state = 17, .external_lex_state = 2},
  [84] = {.lex_state = 17, .external_lex_state = 2},
  [85] = {.lex_state = 17, .external_lex_state = 2},
  [86] = {.lex_state = 17, .external_lex_state = 2},
  [87] = {.lex_state = 17, .external_lex_state = 2},
  [88] = {.lex_state = 17, .external_lex_state = 2},
  [89] = {.lex_state = 17, .external_lex_state = 2},
  [90] = {.lex_state = 17, .external_lex_state = 2},
  [91] = {.lex_state = 17, .external_lex_state = 2},
  [92] = {.lex_state = 17, .external_lex_state = 2},
  [93] = {.lex_state = 17, .external_lex_state = 2},
  [94] = {.lex_state = 16, .external_lex_state = 3},
  [95] = {.lex_state = 17, .external_lex_state = 2},
  [96] = {.lex_state = 16, .external_lex_state = 3},
  [97] = {.lex_state = 17, .external_lex_state = 2},
  [98] = {.lex_state = 17, .external_lex_state = 2},
  [99] = {.lex_state = 17, .external_lex_state = 2},
  [100] = {.lex_state = 17, .external_lex_state = 2},
  [101] = {.lex_state = 17, .external_lex_state = 2},
  [102] = {.lex_state = 17, .external_lex_state = 2},
  [103] = {.lex_state = 17, .external_lex_state = 2},
  [104] = {.lex_state = 17, .external_lex_state = 2},
  [105] = {.lex_state = 17, .external_lex_state = 2},
  [106] = {.lex_state = 17, .external_lex_state = 2},
  [107] = {.lex_state = 17, .external_lex_state = 2},
  [108] = {.lex_state = 17, .external_lex_state = 2},
  [109] = {.lex_state = 17, .external_lex_state = 2},
  [110] = {.lex_state = 17, .external_lex_state = 2},
  [111] = {.lex_state = 17, .external_lex_state = 2},
  [112] = {.lex_state = 17, .external_lex_state = 2},
  [113] = {.lex_state = 17, .external_lex_state = 2},
  [114] = {.lex_state = 17, .external_lex_state = 2},
  [115] = {.lex_state = 17, .external_lex_state = 2},
  [116] = {.lex_state = 17, .external_lex_state = 2},
  [117] = {.lex_state = 17, .external_lex_state = 2},
  [118] = {.lex_state = 17, .external_lex_state = 2},
  [119] = {.lex_state = 17, .external_lex_state = 2},
  [120] = {.lex_state = 17, .external_lex_state = 2},
  [121] = {.lex_state = 17, .external_lex_state = 2},
  [122] = {.lex_state = 17, .external_lex_state = 2},
  [123] = {.lex_state = 17, .external_lex_state = 2},
  [124] = {.lex_state = 17, .external_lex_state = 2},
  [125] = {.lex_state = 17, .external_lex_state = 2},
  [126] = {.lex_state = 17, .external_lex_state = 2},
  [127] = {.lex_state = 17, .external_lex_state = 2},
  [128] = {.lex_state = 17, .external_lex_state = 2},
  [129] = {.lex_state = 17, .external_lex_state = 2},
  [130] = {.lex_state = 17, .external_lex_state = 2},
  [131] = {.lex_state = 17, .external_lex_state = 3},
  [132] = {.lex_state = 17, .external_lex_state = 3},
  [133] = {.lex_state = 17, .external_lex_state = 3},
  [134] = {.lex_state = 16, .external_lex_state = 3},
  [135] = {.lex_state = 16, .external_lex_state = 3},
  [136] = {.lex_state = 16, .external_lex_state = 3},
  [137] = {.lex_state = 16, .external_lex_state = 4},
  [138] = {.lex_state = 17, .external_lex_state = 2},
  [139] = {.lex_state = 17, .external_lex_state = 2},
  [140] = {.lex_state = 17, .external_lex_state = 2},
  [141] = {.lex_state = 17, .external_lex_state = 2},
  [142] = {.lex_state = 17, .external_lex_state = 2},
  [143] = {.lex_state = 16, .external_lex_state = 3},
  [144] = {.lex_state = 17, .external_lex_state = 2},
  [145] = {.lex_state = 16, .external_lex_state = 4},
  [146] = {.lex_state = 16, .external_lex_state = 3},
  [147] = {.lex_state = 16, .external_lex_state = 3},
  [148] = {.lex_state = 16, .external_lex_state = 3},
  [149] = {.lex_state = 16, .external_lex_state = 3},
  [150] = {.lex_state = 16, .external_lex_state = 4},
  [151] = {.lex_state = 16, .external_lex_state = 4},
  [152] = {.lex_state = 17, .external_lex_state = 4},
  [153] = {.lex_state = 17, .external_lex_state = 4},
  [154] = {.lex_state = 16, .external_lex_state = 3},
  [155] = {.lex_state = 16, .external_lex_state = 3},
  [156] = {.lex_state = 16, .external_lex_state = 3},
  [157] = {.lex_state = 16, .external_lex_state = 4},
  [158] = {.lex_state = 16, .external_lex_state = 3},
  [159] = {.lex_state = 16, .external_lex_state = 3},
  [160] = {.lex_state = 16, .external_lex_state = 3},
  [161] = {.lex_state = 17, .external_lex_state = 4},
  [162] = {.lex_state = 16, .external_lex_state = 3},
  [163] = {.lex_state = 16, .external_lex_state = 3},
  [164] = {.lex_state = 16, .external_lex_state = 3},
  [165] = {.lex_state = 17, .external_lex_state = 3},
  [166] = {.lex_state = 17, .external_lex_state = 2},
  [167] = {.lex_state = 17, .external_lex_state = 2},
  [168] = {.lex_state = 17, .external_lex_state = 3},
  [169] = {.lex_state = 17, .external_lex_state = 3},
  [170] = {.lex_state = 17, .external_lex_state = 3},
  [171] = {.lex_state = 17, .external_lex_state = 3},
  [172] = {.lex_state = 17, .external_lex_state = 3},
  [173] = {.lex_state = 17, .external_lex_state = 2},
  [174] = {.lex_state = 17, .external_lex_state = 3},
  [175] = {.lex_state = 17, .external_lex_state = 3},
  [176] = {.lex_state = 17, .external_lex_state = 3},
  [177] = {.lex_state = 17, .external_lex_state = 3},
  [178] = {.lex_state = 17, .external_lex_state = 3},
  [179] = {.lex_state = 17, .external_lex_state = 2},
  [180] = {.lex_state = 17, .external_lex_state = 3},
  [181] = {.lex_state = 17, .external_lex_state = 3},
  [182] = {.lex_state = 17, .external_lex_state = 3},
  [183] = {.lex_state = 17, .external_lex_state = 3},
  [184] = {.lex_state = 17, .external_lex_state = 3},
  [185] = {.lex_state = 17, .external_lex_state = 3},
  [186] = {.lex_state = 17, .external_lex_state = 3},
  [187] = {.lex_state = 17, .external_lex_state = 2},
  [188] = {.lex_state = 17, .external_lex_state = 3},
  [189] = {.lex_state = 17, .external_lex_state = 3},
  [190] = {.lex_state = 17, .external_lex_state = 3},
  [191] = {.lex_state = 17, .external_lex_state = 3},
  [192] = {.lex_state = 17, .external_lex_state = 3},
  [193] = {.lex_state = 16, .external_lex_state = 4},
  [194] = {.lex_state = 17, .external_lex_state = 3},
  [195] = {.lex_state = 17, .external_lex_state = 3},
  [196] = {.lex_state = 17, .external_lex_state = 3},
  [197] = {.lex_state = 17, .external_lex_state = 3},
  [198] = {.lex_state = 17, .external_lex_state = 3},
  [199] = {.lex_state = 17, .external_lex_state = 3},
  [200] = {.lex_state = 17, .external_lex_state = 3},
  [201] = {.lex_state = 17, .external_lex_state = 3},
  [202] = {.lex_state = 17, .external_lex_state = 3},
  [203] = {.lex_state = 17, .external_lex_state = 3},
  [204] = {.lex_state = 17, .external_lex_state = 3},
  [205] = {.lex_state = 17, .external_lex_state = 3},
  [206] = {.lex_state = 17, .external_lex_state = 2},
  [207] = {.lex_state = 16, .external_lex_state = 4},
  [208] = {.lex_state = 16, .external_lex_state = 4},
  [209] = {.lex_state = 16, .external_lex_state = 4},
  [210] = {.lex_state = 70},
  [211] = {.lex_state = 70},
  [212] = {.lex_state = 16, .external_lex_state = 4},
  [213] = {.lex_state = 16, .external_lex_state = 4},
  [214] = {.lex_state = 16, .external_lex_state = 4},
  [215] = {.lex_state = 17, .external_lex_state = 2},
  [216] = {.lex_state = 70},
  [217] = {.lex_state = 16, .external_lex_state = 4},
  [218] = {.lex_state = 16, .external_lex_state = 4},
  [219] = {.lex_state = 16, .external_lex_state = 4},
  [220] = {.lex_state = 17, .external_lex_state = 2},
  [221] = {.lex_state = 16, .external_lex_state = 4},
  [222] = {.lex_state = 16, .external_lex_state = 4},
  [223] = {.lex_state = 16, .external_lex_state = 4},
  [224] = {.lex_state = 17, .external_lex_state = 2},
  [225] = {.lex_state = 16, .external_lex_state = 4},
  [226] = {.lex_state = 17, .external_lex_state = 2},
  [227] = {.lex_state = 17, .external_lex_state = 2},
  [228] = {.lex_state = 17, .external_lex_state = 2},
  [229] = {.lex_state = 17, .external_lex_state = 4},
  [230] = {.lex_state = 17, .external_lex_state = 4},
  [231] = {.lex_state = 17, .external_lex_state = 4},
  [232] = {.lex_state = 17, .external_lex_state = 4},
  [233] = {.lex_state = 17, .external_lex_state = 4},
  [234] = {.lex_state = 17, .external_lex_state = 4},
  [235] = {.lex_state = 17, .external_lex_state = 4},
  [236] = {.lex_state = 17, .external_lex_state = 4},
  [237] = {.lex_state = 17, .external_lex_state = 4},
  [238] = {.lex_state = 17, .external_lex_state = 4},
  [239] = {.lex_state = 17, .external_lex_state = 4},
  [240] = {.lex_state = 17, .external_lex_state = 4},
  [241] = {.lex_state = 17, .external_lex_state = 4},
  [242] = {.lex_state = 17, .external_lex_state = 4},
  [243] = {.lex_state = 17, .external_lex_state = 4},
  [244] = {.lex_state = 17, .external_lex_state = 4},
  [245] = {.lex_state = 17, .external_lex_state = 4},
  [246] = {.lex_state = 17, .external_lex_state = 4},
  [247] = {.lex_state = 17, .external_lex_state = 4},
  [248] = {.lex_state = 17, .external_lex_state = 4},
  [249] = {.lex_state = 17, .external_lex_state = 4},
  [250] = {.lex_state = 17, .external_lex_state = 4},
  [251] = {.lex_state = 17, .external_lex_state = 4},
  [252] = {.lex_state = 17, .external_lex_state = 4},
  [253] = {.lex_state = 17, .external_lex_state = 4},
  [254] = {.lex_state = 17, .external_lex_state = 4},
  [255] = {.lex_state = 17, .external_lex_state = 4},
  [256] = {.lex_state = 17, .external_lex_state = 4},
  [257] = {.lex_state = 17, .external_lex_state = 4},
  [258] = {.lex_state = 17, .external_lex_state = 4},
  [259] = {.lex_state = 17, .external_lex_state = 4},
  [260] = {.lex_state = 17, .external_lex_state = 4},
  [261] = {.lex_state = 17, .external_lex_state = 4},
  [262] = {.lex_state = 17, .external_lex_state = 4},
  [263] = {.lex_state = 17, .external_lex_state = 4},
  [264] = {.lex_state = 70},
  [265] = {.lex_state = 70},
  [266] = {.lex_state = 70},
  [267] = {.lex_state = 70},
  [268] = {.lex_state = 70},
  [269] = {.lex_state = 25, .external_lex_state = 5},
  [270] = {.lex_state = 27},
  [271] = {.lex_state = 25, .external_lex_state = 6},
  [272] = {.lex_state = 25, .external_lex_state = 5},
  [273] = {.lex_state = 25, .external_lex_state = 6},
  [274] = {.lex_state = 27},
  [275] = {.lex_state = 27},
  [276] = {.lex_state = 27},
  [277] = {.lex_state = 27},
  [278] = {.lex_state = 27},
  [279] = {.lex_state = 27},
  [280] = {.lex_state = 27},
  [281] = {.lex_state = 27},
  [282] = {.lex_state = 25, .external_lex_state = 6},
  [283] = {.lex_state = 27},
  [284] = {.lex_state = 27},
  [285] = {.lex_state = 25, .external_lex_state = 5},
  [286] = {.lex_state = 27},
  [287] = {.lex_state = 25, .external_lex_state = 6},
  [288] = {.lex_state = 27},
  [289] = {.lex_state = 27},
  [290] = {.lex_state = 70},
  [291] = {.lex_state = 70},
  [292] = {.lex_state = 27},
  [293] = {.lex_state = 27},
  [294] = {.lex_state = 70},
  [295] = {.lex_state = 24},
  [296] = {.lex_state = 27},
  [297] = {.lex_state = 27},
  [298] = {.lex_state = 27},
  [299] = {.lex_state = 27},
  [300] = {.lex_state = 27},
  [301] = {.lex_state = 27, .external_lex_state = 6},
  [302] = {.lex_state = 27},
  [303] = {.lex_state = 27},
  [304] = {.lex_state = 27},
  [305] = {.lex_state = 27},
  [306] = {.lex_state = 27},
  [307] = {.lex_state = 27},
  [308] = {.lex_state = 70},
  [309] = {.lex_state = 27},
  [310] = {.lex_state = 27},
  [311] = {.lex_state = 27},
  [312] = {.lex_state = 27},
  [313] = {.lex_state = 27},
  [314] = {.lex_state = 27},
  [315] = {.lex_state = 27},
  [316] = {.lex_state = 27},
  [317] = {.lex_state = 27},
  [318] = {.lex_state = 27},
  [319] = {.lex_state = 27},
  [320] = {.lex_state = 27},
  [321] = {.lex_state = 27},
  [322] = {.lex_state = 27},
  [323] = {.lex_state = 27},
  [324] = {.lex_state = 70},
  [325] = {.lex_state = 70},
  [326] = {.lex_state = 70},
  [327] = {.lex_state = 70},
  [328] = {.lex_state = 70},
  [329] = {.lex_state = 27},
  [330] = {.lex_state = 27},
  [331] = {.lex_state = 27},
  [332] = {.lex_state = 27},
  [333] = {.lex_state = 27},
  [334] = {.lex_state = 27},
  [335] = {.lex_state = 27},
  [336] = {.lex_state = 70},
  [337] = {.lex_state = 27, .external_lex_state = 6},
  [338] = {.lex_state = 27},
  [339] = {.lex_state = 27},
  [340] = {.lex_state = 27, .external_lex_state = 6},
  [341] = {.lex_state = 27, .external_lex_state = 6},
  [342] = {.lex_state = 27, .external_lex_state = 6},
  [343] = {.lex_state = 27, .external_lex_state = 6},
  [344] = {.lex_state = 25, .external_lex_state = 5},
  [345] = {.lex_state = 27, .external_lex_state = 6},
  [346] = {.lex_state = 70},
  [347] = {.lex_state = 70},
  [348] = {.lex_state = 70},
  [349] = {.lex_state = 70},
  [350] = {.lex_state = 27, .external_lex_state = 5},
  [351] = {.lex_state = 70},
  [352] = {.lex_state = 70},
  [353] = {.lex_state = 70},
  [354] = {.lex_state = 27, .external_lex_state = 5},
  [355] = {.lex_state = 70},
  [356] = {.lex_state = 70},
  [357] = {.lex_state = 70},
  [358] = {.lex_state = 70},
  [359] = {.lex_state = 27, .external_lex_state = 5},
  [360] = {.lex_state = 70},
  [361] = {.lex_state = 70},
  [362] = {.lex_state = 27, .external_lex_state = 5},
  [363] = {.lex_state = 27, .external_lex_state = 5},
  [364] = {.lex_state = 27, .external_lex_state = 6},
  [365] = {.lex_state = 27, .external_lex_state = 6},
  [366] = {.lex_state = 27, .external_lex_state = 6},
  [367] = {.lex_state = 27, .external_lex_state = 6},
  [368] = {.lex_state = 27, .external_lex_state = 6},
  [369] = {.lex_state = 27, .external_lex_state = 6},
  [370] = {.lex_state = 27, .external_lex_state = 6},
  [371] = {.lex_state = 27, .external_lex_state = 6},
  [372] = {.lex_state = 27, .external_lex_state = 6},
  [373] = {.lex_state = 27, .external_lex_state = 6},
  [374] = {.lex_state = 27, .external_lex_state = 5},
  [375] = {.lex_state = 70},
  [376] = {.lex_state = 70},
  [377] = {.lex_state = 70},
  [378] = {.lex_state = 70},
  [379] = {.lex_state = 70},
  [380] = {.lex_state = 70},
  [381] = {.lex_state = 70},
  [382] = {.lex_state = 70},
  [383] = {.lex_state = 70},
  [384] = {.lex_state = 70},
  [385] = {.lex_state = 70},
  [386] = {.lex_state = 70},
  [387] = {.lex_state = 70},
  [388] = {.lex_state = 70},
  [389] = {.lex_state = 70},
  [390] = {.lex_state = 70},
  [391] = {.lex_state = 70},
  [392] = {.lex_state = 70},
  [393] = {.lex_state = 27, .external_lex_state = 6},
  [394] = {.lex_state = 27, .external_lex_state = 6},
  [395] = {.lex_state = 27, .external_lex_state = 6},
  [396] = {.lex_state = 27, .external_lex_state = 6},
  [397] = {.lex_state = 27, .external_lex_state = 6},
  [398] = {.lex_state = 27, .external_lex_state = 6},
  [399] = {.lex_state = 27, .external_lex_state = 6},
  [400] = {.lex_state = 27, .external_lex_state = 6},
  [401] = {.lex_state = 27, .external_lex_state = 6},
  [402] = {.lex_state = 27, .external_lex_state = 6},
  [403] = {.lex_state = 27, .external_lex_state = 6},
  [404] = {.lex_state = 27, .external_lex_state = 6},
  [405] = {.lex_state = 27, .external_lex_state = 6},
  [406] = {.lex_state = 27, .external_lex_state = 6},
  [407] = {.lex_state = 27, .external_lex_state = 6},
  [408] = {.lex_state = 70},
  [409] = {.lex_state = 27, .external_lex_state = 6},
  [410] = {.lex_state = 27, .external_lex_state = 6},
  [411] = {.lex_state = 27, .external_lex_state = 6},
  [412] = {.lex_state = 27, .external_lex_state = 6},
  [413] = {.lex_state = 27, .external_lex_state = 6},
  [414] = {.lex_state = 27, .external_lex_state = 6},
  [415] = {.lex_state = 27, .external_lex_state = 6},
  [416] = {.lex_state = 27, .external_lex_state = 6},
  [417] = {.lex_state = 27, .external_lex_state = 6},
  [418] = {.lex_state = 27, .external_lex_state = 6},
  [419] = {.lex_state = 70},
  [420] = {.lex_state = 27, .external_lex_state = 6},
  [421] = {.lex_state = 27, .external_lex_state = 5},
  [422] = {.lex_state = 27, .external_lex_state = 6},
  [423] = {.lex_state = 27, .external_lex_state = 6},
  [424] = {.lex_state = 70},
  [425] = {.lex_state = 27, .external_lex_state = 6},
  [426] = {.lex_state = 27, .external_lex_state = 6},
  [427] = {.lex_state = 27, .external_lex_state = 6},
  [428] = {.lex_state = 27},
  [429] = {.lex_state = 27, .external_lex_state = 5},
  [430] = {.lex_state = 27},
  [431] = {.lex_state = 27},
  [432] = {.lex_state = 27},
  [433] = {.lex_state = 27},
  [434] = {.lex_state = 27, .external_lex_state = 5},
  [435] = {.lex_state = 27, .external_lex_state = 5},
  [436] = {.lex_state = 27, .external_lex_state = 5},
  [437] = {.lex_state = 27, .external_lex_state = 5},
  [438] = {.lex_state = 27, .external_lex_state = 5},
  [439] = {.lex_state = 27, .external_lex_state = 5},
  [440] = {.lex_state = 27, .external_lex_state = 5},
  [441] = {.lex_state = 27},
  [442] = {.lex_state = 27},
  [443] = {.lex_state = 27, .external_lex_state = 5},
  [444] = {.lex_state = 27},
  [445] = {.lex_state = 27, .external_lex_state = 5},
  [446] = {.lex_state = 27},
  [447] = {.lex_state = 27},
  [448] = {.lex_state = 27},
  [449] = {.lex_state = 27},
  [450] = {.lex_state = 27, .external_lex_state = 5},
  [451] = {.lex_state = 27, .external_lex_state = 5},
  [452] = {.lex_state = 27, .external_lex_state = 5},
  [453] = {.lex_state = 27, .external_lex_state = 5},
  [454] = {.lex_state = 27, .external_lex_state = 5},
  [455] = {.lex_state = 27, .external_lex_state = 5},
  [456] = {.lex_state = 27, .external_lex_state = 5},
  [457] = {.lex_state = 27},
  [458] = {.lex_state = 27, .external_lex_state = 5},
  [459] = {.lex_state = 27, .external_lex_state = 5},
  [460] = {.lex_state = 27, .external_lex_state = 5},
  [461] = {.lex_state = 27, .external_lex_state = 5},
  [462] = {.lex_state = 27, .external_lex_state = 5},
  [463] = {.lex_state = 27, .external_lex_state = 5},
  [464] = {.lex_state = 27, .external_lex_state = 5},
  [465] = {.lex_state = 27, .external_lex_state = 5},
  [466] = {.lex_state = 27, .external_lex_state = 5},
  [467] = {.lex_state = 70},
  [468] = {.lex_state = 27, .external_lex_state = 5},
  [469] = {.lex_state = 27, .external_lex_state = 5},
  [470] = {.lex_state = 27, .external_lex_state = 5},
  [471] = {.lex_state = 27, .external_lex_state = 5},
  [472] = {.lex_state = 27, .external_lex_state = 5},
  [473] = {.lex_state = 27, .external_lex_state = 5},
  [474] = {.lex_state = 27, .external_lex_state = 5},
  [475] = {.lex_state = 70},
  [476] = {.lex_state = 27, .external_lex_state = 5},
  [477] = {.lex_state = 27, .external_lex_state = 5},
  [478] = {.lex_state = 27, .external_lex_state = 5},
  [479] = {.lex_state = 27, .external_lex_state = 5},
  [480] = {.lex_state = 27, .external_lex_state = 5},
  [481] = {.lex_state = 27, .external_lex_state = 5},
  [482] = {.lex_state = 70},
  [483] = {.lex_state = 27, .external_lex_state = 5},
  [484] = {.lex_state = 27, .external_lex_state = 5},
  [485] = {.lex_state = 70},
  [486] = {.lex_state = 70},
  [487] = {.lex_state = 70},
  [488] = {.lex_state = 70},
  [489] = {.lex_state = 70},
  [490] = {.lex_state = 70},
  [491] = {.lex_state = 70},
  [492] = {.lex_state = 70},
  [493] = {.lex_state = 70},
  [494] = {.lex_state = 70},
  [495] = {.lex_state = 70},
  [496] = {.lex_state = 70},
  [497] = {.lex_state = 70},
  [498] = {.lex_state = 70},
  [499] = {.lex_state = 70},
  [500] = {.lex_state = 70},
  [501] = {.lex_state = 70},
  [502] = {.lex_state = 70},
  [503] = {.lex_state = 70},
  [504] = {.lex_state = 70},
  [505] = {.lex_state = 70},
  [506] = {.lex_state = 70},
  [507] = {.lex_state = 70},
  [508] = {.lex_state = 70},
  [509] = {.lex_state = 70},
  [510] = {.lex_state = 70},
  [511] = {.lex_state = 70},
  [512] = {.lex_state = 70},
  [513] = {.lex_state = 70},
  [514] = {.lex_state = 70},
  [515] = {.lex_state = 70},
  [516] = {.lex_state = 17, .external_lex_state = 2},
  [517] = {.lex_state = 70},
  [518] = {.lex_state = 70},
  [519] = {.lex_state = 70},
  [520] = {.lex_state = 70},
  [521] = {.lex_state = 17, .external_lex_state = 2},
  [522] = {.lex_state = 70},
  [523] = {.lex_state = 70},
  [524] = {.lex_state = 70, .external_lex_state = 6},
  [525] = {.lex_state = 70, .external_lex_state = 6},
  [526] = {.lex_state = 70},
  [527] = {.lex_state = 70},
  [528] = {.lex_state = 70, .external_lex_state = 6},
  [529] = {.lex_state = 70},
  [530] = {.lex_state = 70},
  [531] = {.lex_state = 70},
  [532] = {.lex_state = 70},
  [533] = {.lex_state = 70},
  [534] = {.lex_state = 70},
  [535] = {.lex_state = 70},
  [536] = {.lex_state = 70, .external_lex_state = 5},
  [537] = {.lex_state = 70, .external_lex_state = 5},
  [538] = {.lex_state = 70, .external_lex_state = 5},
  [539] = {.lex_state = 70},
  [540] = {.lex_state = 70},
  [541] = {.lex_state = 70},
  [542] = {.lex_state = 70, .external_lex_state = 5},
  [543] = {.lex_state = 70},
  [544] = {.lex_state = 70, .external_lex_state = 5},
  [545] = {.lex_state = 70, .external_lex_state = 5},
  [546] = {.lex_state = 70},
  [547] = {.lex_state = 70},
  [548] = {.lex_state = 70},
  [549] = {.lex_state = 70},
  [550] = {.lex_state = 70},
  [551] = {.lex_state = 70, .external_lex_state = 5},
  [552] = {.lex_state = 70},
  [553] = {.lex_state = 70, .external_lex_state = 6},
  [554] = {.lex_state = 70},
  [555] = {.lex_state = 70, .external_lex_state = 5},
  [556] = {.lex_state = 70, .external_lex_state = 5},
  [557] = {.lex_state = 70, .external_lex_state = 5},
  [558] = {.lex_state = 70},
  [559] = {.lex_state = 70},
  [560] = {.lex_state = 70},
  [561] = {.lex_state = 24},
  [562] = {.lex_state = 70},
  [563] = {.lex_state = 70},
  [564] = {.lex_state = 70},
  [565] = {.lex_state = 70},
  [566] = {.lex_state = 70},
  [567] = {.lex_state = 70},
  [568] = {.lex_state = 70},
  [569] = {.lex_state = 70},
  [570] = {.lex_state = 70},
  [571] = {.lex_state = 70, .external_lex_state = 6},
  [572] = {.lex_state = 70, .external_lex_state = 6},
  [573] = {.lex_state = 70, .external_lex_state = 6},
  [574] = {.lex_state = 70, .external_lex_state = 6},
  [575] = {.lex_state = 70, .external_lex_state = 6},
  [576] = {.lex_state = 70, .external_lex_state = 6},
  [577] = {.lex_state = 70, .external_lex_state = 6},
  [578] = {.lex_state = 70, .external_lex_state = 6},
  [579] = {.lex_state = 70, .external_lex_state = 6},
  [580] = {.lex_state = 70},
  [581] = {.lex_state = 70},
  [582] = {.lex_state = 70, .external_lex_state = 6},
  [583] = {.lex_state = 70, .external_lex_state = 6},
  [584] = {.lex_state = 70, .external_lex_state = 6},
  [585] = {.lex_state = 70, .external_lex_state = 5},
  [586] = {.lex_state = 0},
  [587] = {.lex_state = 70, .external_lex_state = 5},
  [588] = {.lex_state = 70, .external_lex_state = 5},
  [589] = {.lex_state = 70, .external_lex_state = 5},
  [590] = {.lex_state = 0},
  [591] = {.lex_state = 70, .external_lex_state = 5},
  [592] = {.lex_state = 70, .external_lex_state = 5},
  [593] = {.lex_state = 70, .external_lex_state = 5},
  [594] = {.lex_state = 0},
  [595] = {.lex_state = 0},
  [596] = {.lex_state = 70, .external_lex_state = 5},
  [597] = {.lex_state = 70, .external_lex_state = 5},
  [598] = {.lex_state = 70, .external_lex_state = 5},
  [599] = {.lex_state = 70, .external_lex_state = 5},
  [600] = {.lex_state = 70, .external_lex_state = 5},
  [601] = {.lex_state = 70, .external_lex_state = 5},
  [602] = {.lex_state = 70, .external_lex_state = 5},
  [603] = {.lex_state = 0},
  [604] = {.lex_state = 70, .external_lex_state = 5},
  [605] = {.lex_state = 70, .external_lex_state = 5},
  [606] = {.lex_state = 0},
  [607] = {.lex_state = 70, .external_lex_state = 5},
  [608] = {.lex_state = 70, .external_lex_state = 5},
  [609] = {.lex_state = 70, .external_lex_state = 5},
  [610] = {.lex_state = 70, .external_lex_state = 5},
  [611] = {.lex_state = 70, .external_lex_state = 5},
  [612] = {.lex_state = 70, .external_lex_state = 5},
  [613] = {.lex_state = 70, .external_lex_state = 5},
  [614] = {.lex_state = 70, .external_lex_state = 5},
  [615] = {.lex_state = 70, .external_lex_state = 5},
  [616] = {.lex_state = 70, .external_lex_state = 5},
  [617] = {.lex_state = 70, .external_lex_state = 5},
  [618] = {.lex_state = 20},
  [619] = {.lex_state = 10},
  [620] = {.lex_state = 0, .external_lex_state = 6},
  [621] = {.lex_state = 10},
  [622] = {.lex_state = 70},
  [623] = {.lex_state = 10},
  [624] = {.lex_state = 10},
  [625] = {.lex_state = 20},
  [626] = {.lex_state = 0, .external_lex_state = 6},
  [627] = {.lex_state = 20},
  [628] = {.lex_state = 10},
  [629] = {.lex_state = 0, .external_lex_state = 5},
  [630] = {.lex_state = 10},
  [631] = {.lex_state = 10},
  [632] = {.lex_state = 20},
  [633] = {.lex_state = 10},
  [634] = {.lex_state = 0, .external_lex_state = 6},
  [635] = {.lex_state = 70},
  [636] = {.lex_state = 20},
  [637] = {.lex_state = 20},
  [638] = {.lex_state = 0},
  [639] = {.lex_state = 20},
  [640] = {.lex_state = 10},
  [641] = {.lex_state = 10},
  [642] = {.lex_state = 0, .external_lex_state = 6},
  [643] = {.lex_state = 0},
  [644] = {.lex_state = 0},
  [645] = {.lex_state = 20},
  [646] = {.lex_state = 10},
  [647] = {.lex_state = 20},
  [648] = {.lex_state = 10},
  [649] = {.lex_state = 20},
  [650] = {.lex_state = 70},
  [651] = {.lex_state = 20},
  [652] = {.lex_state = 0, .external_lex_state = 6},
  [653] = {.lex_state = 20},
  [654] = {.lex_state = 70},
  [655] = {.lex_state = 20},
  [656] = {.lex_state = 0},
  [657] = {.lex_state = 20},
  [658] = {.lex_state = 10},
  [659] = {.lex_state = 0, .external_lex_state = 6},
  [660] = {.lex_state = 20},
  [661] = {.lex_state = 10},
  [662] = {.lex_state = 10},
  [663] = {.lex_state = 70},
  [664] = {.lex_state = 0, .external_lex_state = 6},
  [665] = {.lex_state = 70},
  [666] = {.lex_state = 70, .external_lex_state = 5},
  [667] = {.lex_state = 70, .external_lex_state = 5},
  [668] = {.lex_state = 70, .external_lex_state = 5},
  [669] = {.lex_state = 70},
  [670] = {.lex_state = 70},
  [671] = {.lex_state = 70},
  [672] = {.lex_state = 70, .external_lex_state = 5},
  [673] = {.lex_state = 70, .external_lex_state = 5},
  [674] = {.lex_state = 10},
  [675] = {.lex_state = 70},
  [676] = {.lex_state = 70},
  [677] = {.lex_state = 0, .external_lex_state = 6},
  [678] = {.lex_state = 70},
  [679] = {.lex_state = 70},
  [680] = {.lex_state = 70},
  [681] = {.lex_state = 70, .external_lex_state = 6},
  [682] = {.lex_state = 0, .external_lex_state = 6},
  [683] = {.lex_state = 0, .external_lex_state = 6},
  [684] = {.lex_state = 20},
  [685] = {.lex_state = 70},
  [686] = {.lex_state = 0},
  [687] = {.lex_state = 70, .external_lex_state = 6},
  [688] = {.lex_state = 70},
  [689] = {.lex_state = 70},
  [690] = {.lex_state = 0, .external_lex_state = 6},
  [691] = {.lex_state = 0, .external_lex_state = 6},
  [692] = {.lex_state = 0, .external_lex_state = 6},
  [693] = {.lex_state = 70, .external_lex_state = 6},
  [694] = {.lex_state = 70},
  [695] = {.lex_state = 0, .external_lex_state = 6},
  [696] = {.lex_state = 0},
  [697] = {.lex_state = 0, .external_lex_state = 6},
  [698] = {.lex_state = 70, .external_lex_state = 5},
  [699] = {.lex_state = 35},
  [700] = {.lex_state = 0},
  [701] = {.lex_state = 70, .external_lex_state = 6},
  [702] = {.lex_state = 0},
  [703] = {.lex_state = 0},
  [704] = {.lex_state = 0},
  [705] = {.lex_state = 0},
  [706] = {.lex_state = 0},
  [707] = {.lex_state = 0},
  [708] = {.lex_state = 0},
  [709] = {.lex_state = 0},
  [710] = {.lex_state = 35},
  [711] = {.lex_state = 0},
  [712] = {.lex_state = 13},
  [713] = {.lex_state = 0},
  [714] = {.lex_state = 0},
  [715] = {.lex_state = 0},
  [716] = {.lex_state = 0},
  [717] = {.lex_state = 35},
  [718] = {.lex_state = 0},
  [719] = {.lex_state = 0},
  [720] = {.lex_state = 0},
  [721] = {.lex_state = 0},
  [722] = {.lex_state = 0},
  [723] = {.lex_state = 0},
  [724] = {.lex_state = 35},
  [725] = {.lex_state = 0},
  [726] = {.lex_state = 0},
  [727] = {.lex_state = 0},
  [728] = {.lex_state = 0},
  [729] = {.lex_state = 0, .external_lex_state = 5},
  [730] = {.lex_state = 0},
  [731] = {.lex_state = 0},
  [732] = {.lex_state = 0},
  [733] = {.lex_state = 0},
  [734] = {.lex_state = 0},
  [735] = {.lex_state = 0},
  [736] = {.lex_state = 0},
  [737] = {.lex_state = 35},
  [738] = {.lex_state = 0},
  [739] = {.lex_state = 0},
  [740] = {.lex_state = 0},
  [741] = {.lex_state = 0},
  [742] = {.lex_state = 0},
  [743] = {.lex_state = 0},
  [744] = {.lex_state = 0},
  [745] = {.lex_state = 35},
  [746] = {.lex_state = 0},
  [747] = {.lex_state = 0},
  [748] = {.lex_state = 0},
  [749] = {.lex_state = 0},
  [750] = {.lex_state = 70, .external_lex_state = 6},
  [751] = {.lex_state = 0},
  [752] = {.lex_state = 0},
  [753] = {.lex_state = 70, .external_lex_state = 6},
  [754] = {.lex_state = 0, .external_lex_state = 6},
  [755] = {.lex_state = 0},
  [756] = {.lex_state = 0, .external_lex_state = 6},
  [757] = {.lex_state = 0},
  [758] = {.lex_state = 0},
  [759] = {.lex_state = 0},
  [760] = {.lex_state = 0},
  [761] = {.lex_state = 0},
  [762] = {.lex_state = 35},
  [763] = {.lex_state = 0},
  [764] = {.lex_state = 0},
  [765] = {.lex_state = 0},
  [766] = {.lex_state = 0},
  [767] = {.lex_state = 0},
  [768] = {.lex_state = 0},
  [769] = {.lex_state = 35},
  [770] = {.lex_state = 0},
  [771] = {.lex_state = 0},
  [772] = {.lex_state = 0},
  [773] = {.lex_state = 35},
  [774] = {.lex_state = 0},
  [775] = {.lex_state = 0},
  [776] = {.lex_state = 70, .external_lex_state = 5},
  [777] = {.lex_state = 0},
  [778] = {.lex_state = 0},
  [779] = {.lex_state = 0},
  [780] = {.lex_state = 0},
  [781] = {.lex_state = 0},
  [782] = {.lex_state = 0},
  [783] = {.lex_state = 35},
  [784] = {.lex_state = 0},
  [785] = {.lex_state = 0},
  [786] = {.lex_state = 0},
  [787] = {.lex_state = 35},
  [788] = {.lex_state = 0},
  [789] = {.lex_state = 0},
  [790] = {.lex_state = 0},
  [791] = {.lex_state = 0},
  [792] = {.lex_state = 0},
  [793] = {.lex_state = 35},
  [794] = {.lex_state = 0},
  [795] = {.lex_state = 0},
  [796] = {.lex_state = 0},
  [797] = {.lex_state = 35},
  [798] = {.lex_state = 0},
  [799] = {.lex_state = 0},
  [800] = {.lex_state = 0},
  [801] = {.lex_state = 0},
  [802] = {.lex_state = 13},
  [803] = {.lex_state = 70, .external_lex_state = 5},
  [804] = {.lex_state = 0},
  [805] = {.lex_state = 0, .external_lex_state = 6},
  [806] = {.lex_state = 0, .external_lex_state = 6},
  [807] = {.lex_state = 0, .external_lex_state = 6},
  [808] = {.lex_state = 13},
  [809] = {.lex_state = 0, .external_lex_state = 6},
  [810] = {.lex_state = 0, .external_lex_state = 6},
  [811] = {.lex_state = 13},
  [812] = {.lex_state = 0, .external_lex_state = 6},
  [813] = {.lex_state = 0, .external_lex_state = 6},
  [814] = {.lex_state = 0},
  [815] = {.lex_state = 13},
  [816] = {.lex_state = 0, .external_lex_state = 6},
  [817] = {.lex_state = 0, .external_lex_state = 6},
  [818] = {.lex_state = 0},
  [819] = {.lex_state = 13},
  [820] = {.lex_state = 13},
  [821] = {.lex_state = 0, .external_lex_state = 6},
  [822] = {.lex_state = 0, .external_lex_state = 6},
  [823] = {.lex_state = 0, .external_lex_state = 6},
  [824] = {.lex_state = 0},
  [825] = {.lex_state = 0},
  [826] = {.lex_state = 0},
  [827] = {.lex_state = 0},
  [828] = {.lex_state = 0},
  [829] = {.lex_state = 70},
  [830] = {.lex_state = 35},
  [831] = {.lex_state = 0},
  [832] = {.lex_state = 25},
  [833] = {.lex_state = 0},
  [834] = {.lex_state = 0, .external_lex_state = 7},
  [835] = {.lex_state = 70},
  [836] = {.lex_state = 70},
  [837] = {.lex_state = 0, .external_lex_state = 6},
  [838] = {.lex_state = 0},
  [839] = {.lex_state = 0},
  [840] = {.lex_state = 70},
  [841] = {.lex_state = 0, .external_lex_state = 7},
  [842] = {.lex_state = 0},
  [843] = {.lex_state = 0, .external_lex_state = 6},
  [844] = {.lex_state = 70, .external_lex_state = 5},
  [845] = {.lex_state = 70},
  [846] = {.lex_state = 25},
  [847] = {.lex_state = 25},
  [848] = {.lex_state = 25},
  [849] = {.lex_state = 0},
  [850] = {.lex_state = 0},
  [851] = {.lex_state = 0},
  [852] = {.lex_state = 0},
  [853] = {.lex_state = 0, .external_lex_state = 7},
  [854] = {.lex_state = 0},
  [855] = {.lex_state = 0},
  [856] = {.lex_state = 0, .external_lex_state = 6},
  [857] = {.lex_state = 0},
  [858] = {.lex_state = 0, .external_lex_state = 6},
  [859] = {.lex_state = 0},
  [860] = {.lex_state = 0, .external_lex_state = 6},
  [861] = {.lex_state = 70, .external_lex_state = 5},
  [862] = {.lex_state = 70},
  [863] = {.lex_state = 70, .external_lex_state = 5},
  [864] = {.lex_state = 0, .external_lex_state = 7},
  [865] = {.lex_state = 0},
  [866] = {.lex_state = 0},
  [867] = {.lex_state = 0},
  [868] = {.lex_state = 0, .external_lex_state = 6},
  [869] = {.lex_state = 35},
  [870] = {.lex_state = 0},
  [871] = {.lex_state = 0},
  [872] = {.lex_state = 0},
  [873] = {.lex_state = 0},
  [874] = {.lex_state = 70},
  [875] = {.lex_state = 0, .external_lex_state = 7},
  [876] = {.lex_state = 70},
  [877] = {.lex_state = 0},
  [878] = {.lex_state = 0},
  [879] = {.lex_state = 0},
  [880] = {.lex_state = 0, .external_lex_state = 7},
  [881] = {.lex_state = 0},
  [882] = {.lex_state = 0, .external_lex_state = 5},
  [883] = {.lex_state = 0},
  [884] = {.lex_state = 0},
  [885] = {.lex_state = 0},
  [886] = {.lex_state = 70, .external_lex_state = 5},
  [887] = {.lex_state = 0},
  [888] = {.lex_state = 0},
  [889] = {.lex_state = 0},
  [890] = {.lex_state = 0},
  [891] = {.lex_state = 0},
  [892] = {.lex_state = 0},
  [893] = {.lex_state = 0},
  [894] = {.lex_state = 0},
  [895] = {.lex_state = 0},
  [896] = {.lex_state = 70},
  [897] = {.lex_state = 70},
  [898] = {.lex_state = 0},
  [899] = {.lex_state = 0},
  [900] = {.lex_state = 0},
  [901] = {.lex_state = 70},
  [902] = {.lex_state = 0},
  [903] = {.lex_state = 0},
  [904] = {.lex_state = 0},
  [905] = {.lex_state = 25},
  [906] = {.lex_state = 0},
  [907] = {.lex_state = 0},
  [908] = {.lex_state = 70},
  [909] = {.lex_state = 0},
  [910] = {.lex_state = 0},
  [911] = {.lex_state = 25},
  [912] = {.lex_state = 70, .external_lex_state = 5},
  [913] = {.lex_state = 0},
  [914] = {.lex_state = 0},
  [915] = {.lex_state = 70},
  [916] = {.lex_state = 0},
  [917] = {.lex_state = 0, .external_lex_state = 8},
  [918] = {.lex_state = 0},
  [919] = {.lex_state = 0},
  [920] = {.lex_state = 0},
  [921] = {.lex_state = 0, .external_lex_state = 7},
  [922] = {.lex_state = 0},
  [923] = {.lex_state = 70},
  [924] = {.lex_state = 70},
  [925] = {.lex_state = 27},
  [926] = {.lex_state = 0, .external_lex_state = 5},
  [927] = {.lex_state = 0, .external_lex_state = 5},
  [928] = {.lex_state = 35},
  [929] = {.lex_state = 0},
  [930] = {.lex_state = 35},
  [931] = {.lex_state = 0},
  [932] = {.lex_state = 0, .external_lex_state = 5},
  [933] = {.lex_state = 0},
  [934] = {.lex_state = 0},
  [935] = {.lex_state = 0, .external_lex_state = 5},
  [936] = {.lex_state = 27},
  [937] = {.lex_state = 35},
  [938] = {.lex_state = 0, .external_lex_state = 5},
  [939] = {.lex_state = 0},
  [940] = {.lex_state = 0, .external_lex_state = 5},
  [941] = {.lex_state = 0, .external_lex_state = 5},
  [942] = {.lex_state = 0},
  [943] = {.lex_state = 35},
  [944] = {.lex_state = 0, .external_lex_state = 8},
  [945] = {.lex_state = 0},
  [946] = {.lex_state = 0, .external_lex_state = 7},
  [947] = {.lex_state = 0, .external_lex_state = 8},
  [948] = {.lex_state = 70},
  [949] = {.lex_state = 0},
  [950] = {.lex_state = 0},
  [951] = {.lex_state = 0},
  [952] = {.lex_state = 0},
  [953] = {.lex_state = 0},
  [954] = {.lex_state = 35},
  [955] = {.lex_state = 27},
  [956] = {.lex_state = 70},
  [957] = {.lex_state = 27},
  [958] = {.lex_state = 35},
  [959] = {.lex_state = 27},
  [960] = {.lex_state = 0},
  [961] = {.lex_state = 70},
  [962] = {.lex_state = 70},
  [963] = {.lex_state = 0},
  [964] = {.lex_state = 70},
  [965] = {.lex_state = 0, .external_lex_state = 5},
  [966] = {.lex_state = 0},
  [967] = {.lex_state = 0, .external_lex_state = 9},
  [968] = {.lex_state = 0},
  [969] = {.lex_state = 0, .external_lex_state = 5},
  [970] = {.lex_state = 35},
  [971] = {.lex_state = 70},
  [972] = {.lex_state = 0},
  [973] = {.lex_state = 0},
  [974] = {.lex_state = 0},
  [975] = {.lex_state = 0},
  [976] = {.lex_state = 0, .external_lex_state = 5},
  [977] = {.lex_state = 0},
  [978] = {.lex_state = 0, .external_lex_state = 5},
  [979] = {.lex_state = 0},
  [980] = {.lex_state = 0, .external_lex_state = 7},
  [981] = {.lex_state = 0},
  [982] = {.lex_state = 0},
  [983] = {.lex_state = 0, .external_lex_state = 9},
  [984] = {.lex_state = 0},
  [985] = {.lex_state = 0},
  [986] = {.lex_state = 35},
  [987] = {.lex_state = 0, .external_lex_state = 5},
  [988] = {.lex_state = 0},
  [989] = {.lex_state = 0},
  [990] = {.lex_state = 70},
  [991] = {.lex_state = 0, .external_lex_state = 5},
  [992] = {.lex_state = 35},
  [993] = {.lex_state = 0, .external_lex_state = 9},
  [994] = {.lex_state = 27},
  [995] = {.lex_state = 0},
  [996] = {.lex_state = 0},
  [997] = {.lex_state = 0},
  [998] = {.lex_state = 0},
  [999] = {.lex_state = 27},
  [1000] = {.lex_state = 0},
  [1001] = {.lex_state = 0},
  [1002] = {.lex_state = 27},
  [1003] = {.lex_state = 0, .external_lex_state = 9},
  [1004] = {.lex_state = 35},
  [1005] = {.lex_state = 0, .external_lex_state = 5},
  [1006] = {.lex_state = 0, .external_lex_state = 5},
  [1007] = {.lex_state = 35},
  [1008] = {.lex_state = 0},
  [1009] = {.lex_state = 0},
  [1010] = {.lex_state = 0, .external_lex_state = 9},
  [1011] = {.lex_state = 0},
  [1012] = {.lex_state = 0},
  [1013] = {.lex_state = 0},
  [1014] = {.lex_state = 0},
  [1015] = {.lex_state = 70},
  [1016] = {.lex_state = 0},
  [1017] = {.lex_state = 35},
  [1018] = {.lex_state = 0, .external_lex_state = 8},
  [1019] = {.lex_state = 0, .external_lex_state = 8},
  [1020] = {.lex_state = 24},
  [1021] = {.lex_state = 0},
  [1022] = {.lex_state = 0, .external_lex_state = 8},
  [1023] = {.lex_state = 0, .external_lex_state = 8},
  [1024] = {.lex_state = 70},
  [1025] = {.lex_state = 0, .external_lex_state = 8},
  [1026] = {.lex_state = 0, .external_lex_state = 8},
  [1027] = {.lex_state = 0, .external_lex_state = 7},
  [1028] = {.lex_state = 0, .external_lex_state = 8},
  [1029] = {.lex_state = 0, .external_lex_state = 8},
  [1030] = {.lex_state = 0, .external_lex_state = 5},
  [1031] = {.lex_state = 0, .external_lex_state = 8},
  [1032] = {.lex_state = 0, .external_lex_state = 8},
  [1033] = {.lex_state = 0},
  [1034] = {.lex_state = 0},
  [1035] = {.lex_state = 0},
  [1036] = {.lex_state = 0, .external_lex_state = 8},
  [1037] = {.lex_state = 0},
  [1038] = {.lex_state = 0},
  [1039] = {.lex_state = 0, .external_lex_state = 8},
  [1040] = {.lex_state = 0},
  [1041] = {.lex_state = 0},
  [1042] = {.lex_state = 0, .external_lex_state = 8},
  [1043] = {.lex_state = 0},
  [1044] = {.lex_state = 0},
  [1045] = {.lex_state = 0},
  [1046] = {.lex_state = 0},
  [1047] = {.lex_state = 0, .external_lex_state = 8},
  [1048] = {.lex_state = 0},
  [1049] = {.lex_state = 0},
  [1050] = {.lex_state = 0, .external_lex_state = 9},
  [1051] = {.lex_state = 0, .external_lex_state = 5},
  [1052] = {.lex_state = 0, .external_lex_state = 5},
  [1053] = {.lex_state = 0, .external_lex_state = 8},
  [1054] = {.lex_state = 0, .external_lex_state = 7},
  [1055] = {.lex_state = 0, .external_lex_state = 10},
  [1056] = {.lex_state = 0, .external_lex_state = 7},
  [1057] = {.lex_state = 0},
  [1058] = {.lex_state = 0, .external_lex_state = 9},
  [1059] = {(TSStateId)(-1),},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [STATE(0)] = {
    [sym_block_comment] = STATE(0),
    [ts_builtin_sym_end] = ACTIONS(1),
    [sym_lower_case_identifier] = ACTIONS(1),
    [anon_sym_LBRACE_DASH] = ACTIONS(3),
    [anon_sym_DASH_RBRACE] = ACTIONS(1),
    [sym_line_comment] = ACTIONS(5),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [sym__upper_case_identifier_without_leading_whitespace] = ACTIONS(1),
    [anon_sym_DOT] = ACTIONS(1),
    [anon_sym_PIPE] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_SQUOTE] = ACTIONS(1),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(1),
    [anon_sym_DQUOTE] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_else] = ACTIONS(1),
    [anon_sym_if] = ACTIONS(1),
    [anon_sym_then] = ACTIONS(1),
    [anon_sym_let] = ACTIONS(1),
    [anon_sym_in] = ACTIONS(1),
    [anon_sym_COLON_COLON] = ACTIONS(1),
    [anon_sym_left] = ACTIONS(1),
    [anon_sym_right] = ACTIONS(1),
    [anon_sym_non] = ACTIONS(1),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(1),
    [anon_sym_PIPE_RBRACK] = ACTIONS(1),
    [sym_upper_case_identifier] = ACTIONS(1),
    [sym_number_literal] = ACTIONS(1),
    [sym_string_escape] = ACTIONS(1),
    [sym_module] = ACTIONS(1),
    [sym_effect] = ACTIONS(1),
    [sym_where] = ACTIONS(1),
    [sym_import] = ACTIONS(1),
    [sym_as] = ACTIONS(1),
    [sym_exposing] = ACTIONS(1),
    [sym_case] = ACTIONS(1),
    [sym_of] = ACTIONS(1),
    [sym_type] = ACTIONS(1),
    [sym_alias] = ACTIONS(1),
    [sym_port] = ACTIONS(1),
    [sym_infix] = ACTIONS(1),
    [sym_double_dot] = ACTIONS(1),
    [sym_eq] = ACTIONS(1),
    [sym_arrow] = ACTIONS(1),
    [sym_colon] = ACTIONS(1),
    [sym_underscore] = ACTIONS(1),
    [sym_dot] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [anon_sym_DASH] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_SLASH] = ACTIONS(1),
    [anon_sym_SLASH_SLASH] = ACTIONS(1),
    [anon_sym_CARET] = ACTIONS(1),
    [anon_sym_EQ_EQ] = ACTIONS(1),
    [anon_sym_SLASH_EQ] = ACTIONS(1),
    [anon_sym_LT] = ACTIONS(1),
    [anon_sym_GT] = ACTIONS(1),
    [anon_sym_LT_EQ] = ACTIONS(1),
    [anon_sym_GT_EQ] = ACTIONS(1),
    [anon_sym_AMP_AMP] = ACTIONS(1),
    [anon_sym_PIPE_PIPE] = ACTIONS(1),
    [anon_sym_PLUS_PLUS] = ACTIONS(1),
    [anon_sym_LT_PIPE] = ACTIONS(1),
    [anon_sym_PIPE_GT] = ACTIONS(1),
    [anon_sym_LT_LT] = ACTIONS(1),
    [anon_sym_GT_GT] = ACTIONS(1),
    [anon_sym_LT_SLASH_GT] = ACTIONS(1),
    [anon_sym_LT_QMARK_GT] = ACTIONS(1),
    [anon_sym_PIPE_DOT] = ACTIONS(1),
    [anon_sym_PIPE_EQ] = ACTIONS(1),
    [sym__virtual_end_decl] = ACTIONS(1),
    [sym__virtual_open_section] = ACTIONS(1),
    [sym__virtual_end_section] = ACTIONS(1),
    [sym_minus_without_trailing_whitespace] = ACTIONS(1),
    [sym_glsl_content] = ACTIONS(1),
    [sym__block_comment_content] = ACTIONS(1),
  },
  [STATE(1)] = {
    [sym_file] = STATE(996),
    [sym_block_comment] = STATE(1),
    [sym_module_declaration] = STATE(969),
    [aux_sym__import_list] = STATE(216),
    [aux_sym__top_decl_list] = STATE(265),
    [sym_upper_case_qid] = STATE(291),
    [sym_import_clause] = STATE(1051),
    [sym_value_declaration] = STATE(932),
    [sym_function_declaration_left] = STATE(956),
    [sym_type_declaration] = STATE(932),
    [sym_type_alias_declaration] = STATE(932),
    [sym_type_annotation] = STATE(932),
    [sym_port_annotation] = STATE(932),
    [sym__literal_expr_group] = STATE(496),
    [sym_char_constant_expr] = STATE(495),
    [sym_number_constant_expr] = STATE(495),
    [sym_string_constant_expr] = STATE(495),
    [sym_unit_expr] = STATE(496),
    [sym_pattern] = STATE(990),
    [sym_cons_pattern] = STATE(520),
    [sym__single_pattern_cons] = STATE(1057),
    [sym__single_pattern] = STATE(519),
    [sym_lower_pattern] = STATE(496),
    [sym_anything_pattern] = STATE(496),
    [sym_record_pattern] = STATE(496),
    [sym_list_pattern] = STATE(496),
    [sym_union_pattern] = STATE(496),
    [sym_tuple_pattern] = STATE(496),
    [sym__parenthesized_pattern] = STATE(501),
    [sym_infix_declaration] = STATE(932),
    [ts_builtin_sym_end] = ACTIONS(7),
    [sym_lower_case_identifier] = ACTIONS(9),
    [anon_sym_LBRACE_DASH] = ACTIONS(3),
    [sym_line_comment] = ACTIONS(5),
    [anon_sym_LPAREN] = ACTIONS(11),
    [anon_sym_LBRACE] = ACTIONS(13),
    [anon_sym_SQUOTE] = ACTIONS(15),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(17),
    [anon_sym_DQUOTE] = ACTIONS(19),
    [anon_sym_LBRACK] = ACTIONS(21),
    [sym_upper_case_identifier] = ACTIONS(23),
    [sym_number_literal] = ACTIONS(25),
    [sym_module] = ACTIONS(27),
    [sym_effect] = ACTIONS(29),
    [sym_import] = ACTIONS(31),
    [sym_type] = ACTIONS(33),
    [sym_port] = ACTIONS(35),
    [sym_infix] = ACTIONS(37),
    [sym_underscore] = ACTIONS(39),
  },
  [STATE(2)] = {
    [sym_block_comment] = STATE(2),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(68),
    [sym_operator_as_function_expr] = STATE(68),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__atom] = STATE(53),
    [sym_field_access_expr] = STATE(41),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(68),
    [sym_parenthesized_expr] = STATE(41),
    [sym__literal_expr_group] = STATE(68),
    [sym_char_constant_expr] = STATE(64),
    [sym_number_constant_expr] = STATE(64),
    [sym_string_constant_expr] = STATE(64),
    [sym_anonymous_function_expr] = STATE(68),
    [sym_value_expr] = STATE(41),
    [sym_tuple_expr] = STATE(68),
    [sym_unit_expr] = STATE(68),
    [sym_list_expr] = STATE(68),
    [sym_record_expr] = STATE(41),
    [sym_if_else_expr] = STATE(68),
    [sym__if] = STATE(884),
    [sym_case_of_expr] = STATE(68),
    [sym_let_in_expr] = STATE(68),
    [sym_glsl_code_expr] = STATE(68),
    [sym__glsl_begin] = STATE(1058),
    [aux_sym_function_call_expr_repeat1] = STATE(3),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(47),
    [anon_sym_COMMA] = ACTIONS(49),
    [anon_sym_RPAREN] = ACTIONS(49),
    [anon_sym_LBRACE] = ACTIONS(51),
    [anon_sym_RBRACE] = ACTIONS(49),
    [anon_sym_SQUOTE] = ACTIONS(53),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(55),
    [anon_sym_DQUOTE] = ACTIONS(57),
    [anon_sym_LBRACK] = ACTIONS(59),
    [anon_sym_RBRACK] = ACTIONS(49),
    [anon_sym_else] = ACTIONS(49),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_then] = ACTIONS(49),
    [anon_sym_let] = ACTIONS(63),
    [anon_sym_COLON_COLON] = ACTIONS(49),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(69),
    [sym_case] = ACTIONS(71),
    [sym_of] = ACTIONS(49),
    [sym_backslash] = ACTIONS(73),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(49),
    [anon_sym_DASH] = ACTIONS(49),
    [anon_sym_STAR] = ACTIONS(49),
    [anon_sym_SLASH] = ACTIONS(49),
    [anon_sym_SLASH_SLASH] = ACTIONS(49),
    [anon_sym_CARET] = ACTIONS(49),
    [anon_sym_EQ_EQ] = ACTIONS(49),
    [anon_sym_SLASH_EQ] = ACTIONS(49),
    [anon_sym_LT] = ACTIONS(49),
    [anon_sym_GT] = ACTIONS(49),
    [anon_sym_LT_EQ] = ACTIONS(49),
    [anon_sym_GT_EQ] = ACTIONS(49),
    [anon_sym_AMP_AMP] = ACTIONS(49),
    [anon_sym_PIPE_PIPE] = ACTIONS(49),
    [anon_sym_PLUS_PLUS] = ACTIONS(49),
    [anon_sym_LT_PIPE] = ACTIONS(49),
    [anon_sym_PIPE_GT] = ACTIONS(49),
    [anon_sym_LT_LT] = ACTIONS(49),
    [anon_sym_GT_GT] = ACTIONS(49),
    [anon_sym_LT_SLASH_GT] = ACTIONS(49),
    [anon_sym_LT_QMARK_GT] = ACTIONS(49),
    [anon_sym_PIPE_DOT] = ACTIONS(49),
    [anon_sym_PIPE_EQ] = ACTIONS(49),
    [sym_minus_without_trailing_whitespace] = ACTIONS(77),
  },
  [STATE(3)] = {
    [sym_block_comment] = STATE(3),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(68),
    [sym_operator_as_function_expr] = STATE(68),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__atom] = STATE(53),
    [sym_field_access_expr] = STATE(41),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(68),
    [sym_parenthesized_expr] = STATE(41),
    [sym__literal_expr_group] = STATE(68),
    [sym_char_constant_expr] = STATE(64),
    [sym_number_constant_expr] = STATE(64),
    [sym_string_constant_expr] = STATE(64),
    [sym_anonymous_function_expr] = STATE(68),
    [sym_value_expr] = STATE(41),
    [sym_tuple_expr] = STATE(68),
    [sym_unit_expr] = STATE(68),
    [sym_list_expr] = STATE(68),
    [sym_record_expr] = STATE(41),
    [sym_if_else_expr] = STATE(68),
    [sym__if] = STATE(884),
    [sym_case_of_expr] = STATE(68),
    [sym_let_in_expr] = STATE(68),
    [sym_glsl_code_expr] = STATE(68),
    [sym__glsl_begin] = STATE(1058),
    [aux_sym_function_call_expr_repeat1] = STATE(3),
    [sym_lower_case_identifier] = ACTIONS(79),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(82),
    [anon_sym_COMMA] = ACTIONS(85),
    [anon_sym_RPAREN] = ACTIONS(85),
    [anon_sym_LBRACE] = ACTIONS(87),
    [anon_sym_RBRACE] = ACTIONS(85),
    [anon_sym_SQUOTE] = ACTIONS(90),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(93),
    [anon_sym_DQUOTE] = ACTIONS(96),
    [anon_sym_LBRACK] = ACTIONS(99),
    [anon_sym_RBRACK] = ACTIONS(85),
    [anon_sym_else] = ACTIONS(85),
    [anon_sym_if] = ACTIONS(102),
    [anon_sym_then] = ACTIONS(85),
    [anon_sym_let] = ACTIONS(105),
    [anon_sym_COLON_COLON] = ACTIONS(85),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(108),
    [sym_upper_case_identifier] = ACTIONS(111),
    [sym_number_literal] = ACTIONS(114),
    [sym_case] = ACTIONS(117),
    [sym_of] = ACTIONS(85),
    [sym_backslash] = ACTIONS(120),
    [sym_dot] = ACTIONS(123),
    [anon_sym_PLUS] = ACTIONS(85),
    [anon_sym_DASH] = ACTIONS(85),
    [anon_sym_STAR] = ACTIONS(85),
    [anon_sym_SLASH] = ACTIONS(85),
    [anon_sym_SLASH_SLASH] = ACTIONS(85),
    [anon_sym_CARET] = ACTIONS(85),
    [anon_sym_EQ_EQ] = ACTIONS(85),
    [anon_sym_SLASH_EQ] = ACTIONS(85),
    [anon_sym_LT] = ACTIONS(85),
    [anon_sym_GT] = ACTIONS(85),
    [anon_sym_LT_EQ] = ACTIONS(85),
    [anon_sym_GT_EQ] = ACTIONS(85),
    [anon_sym_AMP_AMP] = ACTIONS(85),
    [anon_sym_PIPE_PIPE] = ACTIONS(85),
    [anon_sym_PLUS_PLUS] = ACTIONS(85),
    [anon_sym_LT_PIPE] = ACTIONS(85),
    [anon_sym_PIPE_GT] = ACTIONS(85),
    [anon_sym_LT_LT] = ACTIONS(85),
    [anon_sym_GT_GT] = ACTIONS(85),
    [anon_sym_LT_SLASH_GT] = ACTIONS(85),
    [anon_sym_LT_QMARK_GT] = ACTIONS(85),
    [anon_sym_PIPE_DOT] = ACTIONS(85),
    [anon_sym_PIPE_EQ] = ACTIONS(85),
    [sym_minus_without_trailing_whitespace] = ACTIONS(126),
  },
  [STATE(4)] = {
    [sym_block_comment] = STATE(4),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(68),
    [sym_operator_as_function_expr] = STATE(68),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__atom] = STATE(53),
    [sym_field_access_expr] = STATE(41),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(68),
    [sym_parenthesized_expr] = STATE(41),
    [sym__literal_expr_group] = STATE(68),
    [sym_char_constant_expr] = STATE(64),
    [sym_number_constant_expr] = STATE(64),
    [sym_string_constant_expr] = STATE(64),
    [sym_anonymous_function_expr] = STATE(68),
    [sym_value_expr] = STATE(41),
    [sym_tuple_expr] = STATE(68),
    [sym_unit_expr] = STATE(68),
    [sym_list_expr] = STATE(68),
    [sym_record_expr] = STATE(41),
    [sym_if_else_expr] = STATE(68),
    [sym__if] = STATE(884),
    [sym_case_of_expr] = STATE(68),
    [sym_let_in_expr] = STATE(68),
    [sym_glsl_code_expr] = STATE(68),
    [sym__glsl_begin] = STATE(1058),
    [aux_sym_function_call_expr_repeat1] = STATE(3),
    [sym_lower_case_identifier] = ACTIONS(129),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(132),
    [anon_sym_COMMA] = ACTIONS(49),
    [anon_sym_RPAREN] = ACTIONS(49),
    [anon_sym_LBRACE] = ACTIONS(135),
    [anon_sym_RBRACE] = ACTIONS(49),
    [anon_sym_SQUOTE] = ACTIONS(138),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(141),
    [anon_sym_DQUOTE] = ACTIONS(144),
    [anon_sym_LBRACK] = ACTIONS(147),
    [anon_sym_RBRACK] = ACTIONS(49),
    [anon_sym_else] = ACTIONS(49),
    [anon_sym_if] = ACTIONS(150),
    [anon_sym_then] = ACTIONS(49),
    [anon_sym_let] = ACTIONS(153),
    [anon_sym_COLON_COLON] = ACTIONS(49),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(156),
    [sym_upper_case_identifier] = ACTIONS(159),
    [sym_number_literal] = ACTIONS(162),
    [sym_case] = ACTIONS(165),
    [sym_of] = ACTIONS(49),
    [sym_backslash] = ACTIONS(168),
    [sym_dot] = ACTIONS(171),
    [anon_sym_PLUS] = ACTIONS(49),
    [anon_sym_DASH] = ACTIONS(49),
    [anon_sym_STAR] = ACTIONS(49),
    [anon_sym_SLASH] = ACTIONS(49),
    [anon_sym_SLASH_SLASH] = ACTIONS(49),
    [anon_sym_CARET] = ACTIONS(49),
    [anon_sym_EQ_EQ] = ACTIONS(49),
    [anon_sym_SLASH_EQ] = ACTIONS(49),
    [anon_sym_LT] = ACTIONS(49),
    [anon_sym_GT] = ACTIONS(49),
    [anon_sym_LT_EQ] = ACTIONS(49),
    [anon_sym_GT_EQ] = ACTIONS(49),
    [anon_sym_AMP_AMP] = ACTIONS(49),
    [anon_sym_PIPE_PIPE] = ACTIONS(49),
    [anon_sym_PLUS_PLUS] = ACTIONS(49),
    [anon_sym_LT_PIPE] = ACTIONS(49),
    [anon_sym_PIPE_GT] = ACTIONS(49),
    [anon_sym_LT_LT] = ACTIONS(49),
    [anon_sym_GT_GT] = ACTIONS(49),
    [anon_sym_LT_SLASH_GT] = ACTIONS(49),
    [anon_sym_LT_QMARK_GT] = ACTIONS(49),
    [anon_sym_PIPE_DOT] = ACTIONS(49),
    [anon_sym_PIPE_EQ] = ACTIONS(49),
    [sym_minus_without_trailing_whitespace] = ACTIONS(174),
  },
  [STATE(5)] = {
    [sym_block_comment] = STATE(5),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(700),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(995),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(179),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(197),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(6)] = {
    [sym_block_comment] = STATE(6),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(715),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(981),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(179),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(197),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(7)] = {
    [sym_block_comment] = STATE(7),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(791),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(1011),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(203),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(205),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(8)] = {
    [sym_block_comment] = STATE(8),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(735),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(950),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(207),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(209),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(9)] = {
    [sym_block_comment] = STATE(9),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(801),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(1011),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(211),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(213),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(10)] = {
    [sym_block_comment] = STATE(10),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(781),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(950),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(215),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(217),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(11)] = {
    [sym_block_comment] = STATE(11),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(804),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(995),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(219),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(221),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(12)] = {
    [sym_block_comment] = STATE(12),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(760),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(966),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(207),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(209),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(13)] = {
    [sym_block_comment] = STATE(13),
    [sym_upper_case_qid] = STATE(32),
    [sym_value_qid] = STATE(32),
    [sym_field_accessor_function_expr] = STATE(52),
    [sym__expression] = STATE(800),
    [sym_bin_op_expr] = STATE(303),
    [sym_operator_as_function_expr] = STATE(52),
    [sym__operator_as_function_inner] = STATE(60),
    [sym__call_or_atom] = STATE(277),
    [sym_function_call_expr] = STATE(323),
    [sym__function_call_target] = STATE(206),
    [sym__atom] = STATE(323),
    [sym_field_access_expr] = STATE(34),
    [sym__field_access_start] = STATE(689),
    [sym_negate_expr] = STATE(315),
    [sym_parenthesized_expr] = STATE(34),
    [sym__literal_expr_group] = STATE(315),
    [sym_char_constant_expr] = STATE(314),
    [sym_number_constant_expr] = STATE(314),
    [sym_string_constant_expr] = STATE(314),
    [sym_anonymous_function_expr] = STATE(315),
    [sym_value_expr] = STATE(34),
    [sym_tuple_expr] = STATE(315),
    [sym_unit_expr] = STATE(315),
    [sym_list_expr] = STATE(315),
    [sym_record_expr] = STATE(286),
    [sym_if_else_expr] = STATE(315),
    [sym__if] = STATE(865),
    [sym_case_of_expr] = STATE(315),
    [sym_let_in_expr] = STATE(315),
    [sym_glsl_code_expr] = STATE(315),
    [sym__glsl_begin] = STATE(967),
    [sym_operator_identifier] = STATE(933),
    [sym_lower_case_identifier] = ACTIONS(41),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(177),
    [anon_sym_RPAREN] = ACTIONS(203),
    [anon_sym_LBRACE] = ACTIONS(181),
    [anon_sym_SQUOTE] = ACTIONS(183),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(185),
    [anon_sym_DQUOTE] = ACTIONS(187),
    [anon_sym_LBRACK] = ACTIONS(189),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(191),
    [anon_sym_COLON_COLON] = ACTIONS(193),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(67),
    [sym_number_literal] = ACTIONS(195),
    [sym_case] = ACTIONS(205),
    [sym_backslash] = ACTIONS(199),
    [sym_dot] = ACTIONS(75),
    [anon_sym_PLUS] = ACTIONS(193),
    [anon_sym_DASH] = ACTIONS(193),
    [anon_sym_STAR] = ACTIONS(193),
    [anon_sym_SLASH] = ACTIONS(193),
    [anon_sym_SLASH_SLASH] = ACTIONS(193),
    [anon_sym_CARET] = ACTIONS(193),
    [anon_sym_EQ_EQ] = ACTIONS(193),
    [anon_sym_SLASH_EQ] = ACTIONS(193),
    [anon_sym_LT] = ACTIONS(193),
    [anon_sym_GT] = ACTIONS(193),
    [anon_sym_LT_EQ] = ACTIONS(193),
    [anon_sym_GT_EQ] = ACTIONS(193),
    [anon_sym_AMP_AMP] = ACTIONS(193),
    [anon_sym_PIPE_PIPE] = ACTIONS(193),
    [anon_sym_PLUS_PLUS] = ACTIONS(193),
    [anon_sym_LT_PIPE] = ACTIONS(193),
    [anon_sym_PIPE_GT] = ACTIONS(193),
    [anon_sym_LT_LT] = ACTIONS(193),
    [anon_sym_GT_GT] = ACTIONS(193),
    [anon_sym_LT_SLASH_GT] = ACTIONS(193),
    [anon_sym_LT_QMARK_GT] = ACTIONS(193),
    [anon_sym_PIPE_DOT] = ACTIONS(193),
    [anon_sym_PIPE_EQ] = ACTIONS(193),
    [sym_minus_without_trailing_whitespace] = ACTIONS(201),
  },
  [STATE(14)] = {
    [sym_block_comment] = STATE(14),
    [sym_upper_case_qid] = STATE(149),
    [sym_value_qid] = STATE(149),
    [sym_field_accessor_function_expr] = STATE(194),
    [sym_operator_as_function_expr] = STATE(194),
    [sym__operator_as_function_inner] = STATE(178),
    [sym__atom] = STATE(165),
    [sym_field_access_expr] = STATE(147),
    [sym__field_access_start] = STATE(676),
    [sym_negate_expr] = STATE(194),
    [sym_parenthesized_expr] = STATE(147),
    [sym__literal_expr_group] = STATE(194),
    [sym_char_constant_expr] = STATE(199),
    [sym_number_constant_expr] = STATE(199),
    [sym_string_constant_expr] = STATE(199),
    [sym_anonymous_function_expr] = STATE(194),
    [sym_value_expr] = STATE(147),
    [sym_tuple_expr] = STATE(194),
    [sym_unit_expr] = STATE(194),
    [sym_list_expr] = STATE(194),
    [sym_record_expr] = STATE(147),
    [sym_if_else_expr] = STATE(194),
    [sym__if] = STATE(898),
    [sym_case_of_expr] = STATE(194),
    [sym_let_in_expr] = STATE(194),
    [sym_glsl_code_expr] = STATE(194),
    [sym__glsl_begin] = STATE(1010),
    [aux_sym_function_call_expr_repeat1] = STATE(15),
    [sym_lower_case_identifier] = ACTIONS(223),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(225),
    [anon_sym_RPAREN] = ACTIONS(49),
    [anon_sym_LBRACE] = ACTIONS(227),
    [anon_sym_SQUOTE] = ACTIONS(229),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(231),
    [anon_sym_DQUOTE] = ACTIONS(233),
    [anon_sym_LBRACK] = ACTIONS(235),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(237),
    [anon_sym_COLON_COLON] = ACTIONS(49),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(239),
    [sym_number_literal] = ACTIONS(241),
    [sym_case] = ACTIONS(243),
    [sym_backslash] = ACTIONS(245),
    [sym_dot] = ACTIONS(247),
    [anon_sym_PLUS] = ACTIONS(49),
    [anon_sym_DASH] = ACTIONS(49),
    [anon_sym_STAR] = ACTIONS(49),
    [anon_sym_SLASH] = ACTIONS(49),
    [anon_sym_SLASH_SLASH] = ACTIONS(49),
    [anon_sym_CARET] = ACTIONS(49),
    [anon_sym_EQ_EQ] = ACTIONS(49),
    [anon_sym_SLASH_EQ] = ACTIONS(49),
    [anon_sym_LT] = ACTIONS(49),
    [anon_sym_GT] = ACTIONS(49),
    [anon_sym_LT_EQ] = ACTIONS(49),
    [anon_sym_GT_EQ] = ACTIONS(49),
    [anon_sym_AMP_AMP] = ACTIONS(49),
    [anon_sym_PIPE_PIPE] = ACTIONS(49),
    [anon_sym_PLUS_PLUS] = ACTIONS(49),
    [anon_sym_LT_PIPE] = ACTIONS(49),
    [anon_sym_PIPE_GT] = ACTIONS(49),
    [anon_sym_LT_LT] = ACTIONS(49),
    [anon_sym_GT_GT] = ACTIONS(49),
    [anon_sym_LT_SLASH_GT] = ACTIONS(49),
    [anon_sym_LT_QMARK_GT] = ACTIONS(49),
    [anon_sym_PIPE_DOT] = ACTIONS(49),
    [anon_sym_PIPE_EQ] = ACTIONS(49),
    [sym__virtual_end_decl] = ACTIONS(249),
    [sym__virtual_end_section] = ACTIONS(249),
    [sym_minus_without_trailing_whitespace] = ACTIONS(251),
  },
  [STATE(15)] = {
    [sym_block_comment] = STATE(15),
    [sym_upper_case_qid] = STATE(149),
    [sym_value_qid] = STATE(149),
    [sym_field_accessor_function_expr] = STATE(194),
    [sym_operator_as_function_expr] = STATE(194),
    [sym__operator_as_function_inner] = STATE(178),
    [sym__atom] = STATE(165),
    [sym_field_access_expr] = STATE(147),
    [sym__field_access_start] = STATE(676),
    [sym_negate_expr] = STATE(194),
    [sym_parenthesized_expr] = STATE(147),
    [sym__literal_expr_group] = STATE(194),
    [sym_char_constant_expr] = STATE(199),
    [sym_number_constant_expr] = STATE(199),
    [sym_string_constant_expr] = STATE(199),
    [sym_anonymous_function_expr] = STATE(194),
    [sym_value_expr] = STATE(147),
    [sym_tuple_expr] = STATE(194),
    [sym_unit_expr] = STATE(194),
    [sym_list_expr] = STATE(194),
    [sym_record_expr] = STATE(147),
    [sym_if_else_expr] = STATE(194),
    [sym__if] = STATE(898),
    [sym_case_of_expr] = STATE(194),
    [sym_let_in_expr] = STATE(194),
    [sym_glsl_code_expr] = STATE(194),
    [sym__glsl_begin] = STATE(1010),
    [aux_sym_function_call_expr_repeat1] = STATE(15),
    [sym_lower_case_identifier] = ACTIONS(253),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(256),
    [anon_sym_RPAREN] = ACTIONS(85),
    [anon_sym_LBRACE] = ACTIONS(259),
    [anon_sym_SQUOTE] = ACTIONS(262),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(265),
    [anon_sym_DQUOTE] = ACTIONS(268),
    [anon_sym_LBRACK] = ACTIONS(271),
    [anon_sym_if] = ACTIONS(102),
    [anon_sym_let] = ACTIONS(274),
    [anon_sym_COLON_COLON] = ACTIONS(85),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(108),
    [sym_upper_case_identifier] = ACTIONS(277),
    [sym_number_literal] = ACTIONS(280),
    [sym_case] = ACTIONS(283),
    [sym_backslash] = ACTIONS(286),
    [sym_dot] = ACTIONS(289),
    [anon_sym_PLUS] = ACTIONS(85),
    [anon_sym_DASH] = ACTIONS(85),
    [anon_sym_STAR] = ACTIONS(85),
    [anon_sym_SLASH] = ACTIONS(85),
    [anon_sym_SLASH_SLASH] = ACTIONS(85),
    [anon_sym_CARET] = ACTIONS(85),
    [anon_sym_EQ_EQ] = ACTIONS(85),
    [anon_sym_SLASH_EQ] = ACTIONS(85),
    [anon_sym_LT] = ACTIONS(85),
    [anon_sym_GT] = ACTIONS(85),
    [anon_sym_LT_EQ] = ACTIONS(85),
    [anon_sym_GT_EQ] = ACTIONS(85),
    [anon_sym_AMP_AMP] = ACTIONS(85),
    [anon_sym_PIPE_PIPE] = ACTIONS(85),
    [anon_sym_PLUS_PLUS] = ACTIONS(85),
    [anon_sym_LT_PIPE] = ACTIONS(85),
    [anon_sym_PIPE_GT] = ACTIONS(85),
    [anon_sym_LT_LT] = ACTIONS(85),
    [anon_sym_GT_GT] = ACTIONS(85),
    [anon_sym_LT_SLASH_GT] = ACTIONS(85),
    [anon_sym_LT_QMARK_GT] = ACTIONS(85),
    [anon_sym_PIPE_DOT] = ACTIONS(85),
    [anon_sym_PIPE_EQ] = ACTIONS(85),
    [sym__virtual_end_decl] = ACTIONS(292),
    [sym__virtual_end_section] = ACTIONS(292),
    [sym_minus_without_trailing_whitespace] = ACTIONS(294),
  },
  [STATE(16)] = {
    [sym_block_comment] = STATE(16),
    [sym_upper_case_qid] = STATE(149),
    [sym_value_qid] = STATE(149),
    [sym_field_accessor_function_expr] = STATE(194),
    [sym_operator_as_function_expr] = STATE(194),
    [sym__operator_as_function_inner] = STATE(178),
    [sym__atom] = STATE(165),
    [sym_field_access_expr] = STATE(147),
    [sym__field_access_start] = STATE(676),
    [sym_negate_expr] = STATE(194),
    [sym_parenthesized_expr] = STATE(147),
    [sym__literal_expr_group] = STATE(194),
    [sym_char_constant_expr] = STATE(199),
    [sym_number_constant_expr] = STATE(199),
    [sym_string_constant_expr] = STATE(199),
    [sym_anonymous_function_expr] = STATE(194),
    [sym_value_expr] = STATE(147),
    [sym_tuple_expr] = STATE(194),
    [sym_unit_expr] = STATE(194),
    [sym_list_expr] = STATE(194),
    [sym_record_expr] = STATE(147),
    [sym_if_else_expr] = STATE(194),
    [sym__if] = STATE(898),
    [sym_case_of_expr] = STATE(194),
    [sym_let_in_expr] = STATE(194),
    [sym_glsl_code_expr] = STATE(194),
    [sym__glsl_begin] = STATE(1010),
    [aux_sym_function_call_expr_repeat1] = STATE(15),
    [sym_lower_case_identifier] = ACTIONS(297),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(300),
    [anon_sym_RPAREN] = ACTIONS(49),
    [anon_sym_LBRACE] = ACTIONS(303),
    [anon_sym_SQUOTE] = ACTIONS(306),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(309),
    [anon_sym_DQUOTE] = ACTIONS(312),
    [anon_sym_LBRACK] = ACTIONS(315),
    [anon_sym_if] = ACTIONS(150),
    [anon_sym_let] = ACTIONS(318),
    [anon_sym_COLON_COLON] = ACTIONS(49),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(156),
    [sym_upper_case_identifier] = ACTIONS(321),
    [sym_number_literal] = ACTIONS(324),
    [sym_case] = ACTIONS(327),
    [sym_backslash] = ACTIONS(330),
    [sym_dot] = ACTIONS(333),
    [anon_sym_PLUS] = ACTIONS(49),
    [anon_sym_DASH] = ACTIONS(49),
    [anon_sym_STAR] = ACTIONS(49),
    [anon_sym_SLASH] = ACTIONS(49),
    [anon_sym_SLASH_SLASH] = ACTIONS(49),
    [anon_sym_CARET] = ACTIONS(49),
    [anon_sym_EQ_EQ] = ACTIONS(49),
    [anon_sym_SLASH_EQ] = ACTIONS(49),
    [anon_sym_LT] = ACTIONS(49),
    [anon_sym_GT] = ACTIONS(49),
    [anon_sym_LT_EQ] = ACTIONS(49),
    [anon_sym_GT_EQ] = ACTIONS(49),
    [anon_sym_AMP_AMP] = ACTIONS(49),
    [anon_sym_PIPE_PIPE] = ACTIONS(49),
    [anon_sym_PLUS_PLUS] = ACTIONS(49),
    [anon_sym_LT_PIPE] = ACTIONS(49),
    [anon_sym_PIPE_GT] = ACTIONS(49),
    [anon_sym_LT_LT] = ACTIONS(49),
    [anon_sym_GT_GT] = ACTIONS(49),
    [anon_sym_LT_SLASH_GT] = ACTIONS(49),
    [anon_sym_LT_QMARK_GT] = ACTIONS(49),
    [anon_sym_PIPE_DOT] = ACTIONS(49),
    [anon_sym_PIPE_EQ] = ACTIONS(49),
    [sym__virtual_end_decl] = ACTIONS(249),
    [sym__virtual_end_section] = ACTIONS(249),
    [sym_minus_without_trailing_whitespace] = ACTIONS(336),
  },
  [STATE(17)] = {
    [sym_block_comment] = STATE(17),
    [sym_upper_case_qid] = STATE(219),
    [sym_value_qid] = STATE(219),
    [sym_field_accessor_function_expr] = STATE(232),
    [sym_operator_as_function_expr] = STATE(232),
    [sym__operator_as_function_inner] = STATE(250),
    [sym__atom] = STATE(261),
    [sym_field_access_expr] = STATE(212),
    [sym__field_access_start] = STATE(678),
    [sym_negate_expr] = STATE(232),
    [sym_parenthesized_expr] = STATE(212),
    [sym__literal_expr_group] = STATE(232),
    [sym_char_constant_expr] = STATE(245),
    [sym_number_constant_expr] = STATE(245),
    [sym_string_constant_expr] = STATE(245),
    [sym_anonymous_function_expr] = STATE(232),
    [sym_value_expr] = STATE(212),
    [sym_tuple_expr] = STATE(232),
    [sym_unit_expr] = STATE(232),
    [sym_list_expr] = STATE(232),
    [sym_record_expr] = STATE(212),
    [sym_if_else_expr] = STATE(232),
    [sym__if] = STATE(877),
    [sym_case_of_expr] = STATE(232),
    [sym_let_in_expr] = STATE(232),
    [sym_glsl_code_expr] = STATE(232),
    [sym__glsl_begin] = STATE(983),
    [aux_sym_function_call_expr_repeat1] = STATE(18),
    [sym_lower_case_identifier] = ACTIONS(339),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(341),
    [anon_sym_LBRACE] = ACTIONS(343),
    [anon_sym_SQUOTE] = ACTIONS(345),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(347),
    [anon_sym_DQUOTE] = ACTIONS(349),
    [anon_sym_LBRACK] = ACTIONS(351),
    [anon_sym_if] = ACTIONS(61),
    [anon_sym_let] = ACTIONS(353),
    [anon_sym_COLON_COLON] = ACTIONS(49),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(65),
    [sym_upper_case_identifier] = ACTIONS(355),
    [sym_number_literal] = ACTIONS(357),
    [sym_case] = ACTIONS(359),
    [sym_backslash] = ACTIONS(361),
    [sym_dot] = ACTIONS(363),
    [anon_sym_PLUS] = ACTIONS(49),
    [anon_sym_DASH] = ACTIONS(49),
    [anon_sym_STAR] = ACTIONS(49),
    [anon_sym_SLASH] = ACTIONS(49),
    [anon_sym_SLASH_SLASH] = ACTIONS(49),
    [anon_sym_CARET] = ACTIONS(49),
    [anon_sym_EQ_EQ] = ACTIONS(49),
    [anon_sym_SLASH_EQ] = ACTIONS(49),
    [anon_sym_LT] = ACTIONS(49),
    [anon_sym_GT] = ACTIONS(49),
    [anon_sym_LT_EQ] = ACTIONS(49),
    [anon_sym_GT_EQ] = ACTIONS(49),
    [anon_sym_AMP_AMP] = ACTIONS(49),
    [anon_sym_PIPE_PIPE] = ACTIONS(49),
    [anon_sym_PLUS_PLUS] = ACTIONS(49),
    [anon_sym_LT_PIPE] = ACTIONS(49),
    [anon_sym_PIPE_GT] = ACTIONS(49),
    [anon_sym_LT_LT] = ACTIONS(49),
    [anon_sym_GT_GT] = ACTIONS(49),
    [anon_sym_LT_SLASH_GT] = ACTIONS(49),
    [anon_sym_LT_QMARK_GT] = ACTIONS(49),
    [anon_sym_PIPE_DOT] = ACTIONS(49),
    [anon_sym_PIPE_EQ] = ACTIONS(49),
    [sym__virtual_end_decl] = ACTIONS(249),
    [sym_minus_without_trailing_whitespace] = ACTIONS(365),
  },
  [STATE(18)] = {
    [sym_block_comment] = STATE(18),
    [sym_upper_case_qid] = STATE(219),
    [sym_value_qid] = STATE(219),
    [sym_field_accessor_function_expr] = STATE(232),
    [sym_operator_as_function_expr] = STATE(232),
    [sym__operator_as_function_inner] = STATE(250),
    [sym__atom] = STATE(261),
    [sym_field_access_expr] = STATE(212),
    [sym__field_access_start] = STATE(678),
    [sym_negate_expr] = STATE(232),
    [sym_parenthesized_expr] = STATE(212),
    [sym__literal_expr_group] = STATE(232),
    [sym_char_constant_expr] = STATE(245),
    [sym_number_constant_expr] = STATE(245),
    [sym_string_constant_expr] = STATE(245),
    [sym_anonymous_function_expr] = STATE(232),
    [sym_value_expr] = STATE(212),
    [sym_tuple_expr] = STATE(232),
    [sym_unit_expr] = STATE(232),
    [sym_list_expr] = STATE(232),
    [sym_record_expr] = STATE(212),
    [sym_if_else_expr] = STATE(232),
    [sym__if] = STATE(877),
    [sym_case_of_expr] = STATE(232),
    [sym_let_in_expr] = STATE(232),
    [sym_glsl_code_expr] = STATE(232),
    [sym__glsl_begin] = STATE(983),
    [aux_sym_function_call_expr_repeat1] = STATE(18),
    [sym_lower_case_identifier] = ACTIONS(367),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(370),
    [anon_sym_LBRACE] = ACTIONS(373),
    [anon_sym_SQUOTE] = ACTIONS(376),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(379),
    [anon_sym_DQUOTE] = ACTIONS(382),
    [anon_sym_LBRACK] = ACTIONS(385),
    [anon_sym_if] = ACTIONS(102),
    [anon_sym_let] = ACTIONS(388),
    [anon_sym_COLON_COLON] = ACTIONS(85),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(108),
    [sym_upper_case_identifier] = ACTIONS(391),
    [sym_number_literal] = ACTIONS(394),
    [sym_case] = ACTIONS(397),
    [sym_backslash] = ACTIONS(400),
    [sym_dot] = ACTIONS(403),
    [anon_sym_PLUS] = ACTIONS(85),
    [anon_sym_DASH] = ACTIONS(85),
    [anon_sym_STAR] = ACTIONS(85),
    [anon_sym_SLASH] = ACTIONS(85),
    [anon_sym_SLASH_SLASH] = ACTIONS(85),
    [anon_sym_CARET] = ACTIONS(85),
    [anon_sym_EQ_EQ] = ACTIONS(85),
    [anon_sym_SLASH_EQ] = ACTIONS(85),
    [anon_sym_LT] = ACTIONS(85),
    [anon_sym_GT] = ACTIONS(85),
    [anon_sym_LT_EQ] = ACTIONS(85),
    [anon_sym_GT_EQ] = ACTIONS(85),
    [anon_sym_AMP_AMP] = ACTIONS(85),
    [anon_sym_PIPE_PIPE] = ACTIONS(85),
    [anon_sym_PLUS_PLUS] = ACTIONS(85),
    [anon_sym_LT_PIPE] = ACTIONS(85),
    [anon_sym_PIPE_GT] = ACTIONS(85),
    [anon_sym_LT_LT] = ACTIONS(85),
    [anon_sym_GT_GT] = ACTIONS(85),
    [anon_sym_LT_SLASH_GT] = ACTIONS(85),
    [anon_sym_LT_QMARK_GT] = ACTIONS(85),
    [anon_sym_PIPE_DOT] = ACTIONS(85),
    [anon_sym_PIPE_EQ] = ACTIONS(85),
    [sym__virtual_end_decl] = ACTIONS(292),
    [sym_minus_without_trailing_whitespace] = ACTIONS(406),
  },
  [STATE(19)] = {
    [sym_block_comment] = STATE(19),
    [sym_upper_case_qid] = STATE(219),
    [sym_value_qid] = STATE(219),
    [sym_field_accessor_function_expr] = STATE(232),
    [sym_operator_as_function_expr] = STATE(232),
    [sym__operator_as_function_inner] = STATE(250),
    [sym__atom] = STATE(261),
    [sym_field_access_expr] = STATE(212),
    [sym__field_access_start] = STATE(678),
    [sym_negate_expr] = STATE(232),
    [sym_parenthesized_expr] = STATE(212),
    [sym__literal_expr_group] = STATE(232),
    [sym_char_constant_expr] = STATE(245),
    [sym_number_constant_expr] = STATE(245),
    [sym_string_constant_expr] = STATE(245),
    [sym_anonymous_function_expr] = STATE(232),
    [sym_value_expr] = STATE(212),
    [sym_tuple_expr] = STATE(232),
    [sym_unit_expr] = STATE(232),
    [sym_list_expr] = STATE(232),
    [sym_record_expr] = STATE(212),
    [sym_if_else_expr] = STATE(232),
    [sym__if] = STATE(877),
    [sym_case_of_expr] = STATE(232),
    [sym_let_in_expr] = STATE(232),
    [sym_glsl_code_expr] = STATE(232),
    [sym__glsl_begin] = STATE(983),
    [aux_sym_function_call_expr_repeat1] = STATE(18),
    [sym_lower_case_identifier] = ACTIONS(409),
    [anon_sym_LBRACE_DASH] = ACTIONS(43),
    [sym_line_comment] = ACTIONS(45),
    [anon_sym_LPAREN] = ACTIONS(412),
    [anon_sym_LBRACE] = ACTIONS(415),
    [anon_sym_SQUOTE] = ACTIONS(418),
    [anon_sym_DQUOTE_DQUOTE_DQUOTE] = ACTIONS(421),
    [anon_sym_DQUOTE] = ACTIONS(424),
    [anon_sym_LBRACK] = ACTIONS(427),
    [anon_sym_if] = ACTIONS(150),
    [anon_sym_let] = ACTIONS(430),
    [anon_sym_COLON_COLON] = ACTIONS(49),
    [anon_sym_LBRACKglsl_PIPE] = ACTIONS(156),
    [sym_upper_case_identifier] = ACTIONS(433),
    [sym_number_literal] = ACTIONS(436),
    [sym_case] = ACTIONS(439),
    [sym_backslash] = ACTIONS(442),
    [sym_dot] = ACTIONS(445),
    [anon_sym_PLUS] = ACTIONS(49),
    [anon_sym_DASH] = ACTIONS(49),
    [anon_sym_STAR] = ACTIONS(49),
    [anon_sym_SLASH] = ACTIONS(49),
    [anon_sym_SLASH_SLASH] = ACTIONS(49),
    [anon_sym_CARET] = ACTIONS(49),
    [anon_sym_EQ_EQ] = ACTIONS(49),
    [anon_sym_SLASH_EQ] = ACTIONS(49),
    [anon_sym_LT] = ACTIONS(49),
    [anon_sym_GT] = ACTIONS(49),
    [anon_sym_LT_EQ] = ACTIONS(49),
    [anon_sym_GT_EQ] = ACTIONS(49),
    [anon_sym_AMP_AMP] = ACTIONS(49),
    [anon_sym_PIPE_PIPE] = ACTIONS(49),
    [anon_sym_PLUS_PLUS] = ACTIONS(49),
    [anon_sym_LT_PIPE] = ACTIONS(49),
    [anon_sym_PIPE_GT] = ACTIONS(49),
    [anon_sym_LT_LT] = ACTIONS(49),
    [anon_sym_GT_GT] = ACTIONS(49),
    [anon_sym_LT_SLASH_GT] = ACTIONS(49),
    [anon_sym_LT_QMARK_GT] = ACTIONS(49),
    [anon_sym_PIPE_DOT] = ACTIONS(49),
    [anon_sym_PIPE_EQ] = ACTIONS(49),
    [sym__virtual_end_decl] = ACTIONS(249),
    [sym_minus_without_trailing_whitespace] = ACTIONS(448),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(20), 1,
      sym_block_comment,
    STATE(21), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(37), 1,
      sym__field_access_segment,
    STATE(992), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(453), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(451), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [71] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(457), 1,
      anon_sym_DOT,
    STATE(37), 1,
      sym__field_access_segment,
    STATE(992), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(460), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    STATE(21), 2,
      sym_block_comment,
      aux_sym_field_access_expr_repeat1,
    ACTIONS(455), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [142] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(22), 1,
      sym_block_comment,
    STATE(23), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(737), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(466), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(462), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [212] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(23), 1,
      sym_block_comment,
    STATE(24), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(1002), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(470), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(468), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [282] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(1002), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(477), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    STATE(24), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(472), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [350] = 9,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(25), 1,
      sym_block_comment,
    STATE(27), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(140), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(483), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(479), 21,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
    ACTIONS(481), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [422] = 9,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(25), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(26), 1,
      sym_block_comment,
    STATE(140), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(487), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(485), 21,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
    ACTIONS(481), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [494] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(140), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(494), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    STATE(27), 2,
      sym_block_comment,
      aux_sym_bin_op_expr_repeat1,
    ACTIONS(489), 21,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
    ACTIONS(491), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [564] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(496), 1,
      anon_sym_DOT,
    STATE(28), 1,
      sym_block_comment,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(477), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(472), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [631] = 35,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(499), 1,
      anon_sym_RBRACK,
    ACTIONS(501), 1,
      sym_case,
    STATE(29), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(782), 1,
      sym__expression,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [753] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(30), 1,
      sym_block_comment,
    ACTIONS(510), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(503), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 31,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [819] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(31), 1,
      sym_block_comment,
    ACTIONS(515), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(513), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [881] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(32), 1,
      sym_block_comment,
    ACTIONS(519), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(517), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [943] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(33), 1,
      sym_block_comment,
    ACTIONS(523), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(521), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1005] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(34), 1,
      sym_block_comment,
    ACTIONS(527), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(525), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 31,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1071] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(35), 1,
      sym_block_comment,
    ACTIONS(531), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(529), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1133] = 35,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    ACTIONS(533), 1,
      anon_sym_RBRACK,
    STATE(36), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(716), 1,
      sym__expression,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [1255] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(37), 1,
      sym_block_comment,
    ACTIONS(537), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(535), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1317] = 35,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    ACTIONS(539), 1,
      anon_sym_RBRACK,
    STATE(38), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(736), 1,
      sym__expression,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [1439] = 35,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    ACTIONS(541), 1,
      anon_sym_RBRACK,
    STATE(39), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(707), 1,
      sym__expression,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [1561] = 35,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    ACTIONS(543), 1,
      anon_sym_RBRACK,
    STATE(40), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(761), 1,
      sym__expression,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [1683] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(41), 1,
      sym_block_comment,
    ACTIONS(545), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(506), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1747] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(42), 1,
      sym_block_comment,
    ACTIONS(549), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(547), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1809] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(43), 1,
      sym_block_comment,
    ACTIONS(553), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(551), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [1871] = 35,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    ACTIONS(555), 1,
      anon_sym_RBRACK,
    STATE(44), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(792), 1,
      sym__expression,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [1993] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(45), 1,
      sym_block_comment,
    ACTIONS(559), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(557), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [2055] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(46), 1,
      sym_block_comment,
    ACTIONS(477), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(472), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [2117] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(47), 1,
      sym_block_comment,
    ACTIONS(563), 3,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(561), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [2179] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(48), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1000), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [2298] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(49), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(362), 1,
      sym__call_or_atom,
    STATE(429), 1,
      sym_record_expr,
    STATE(451), 1,
      sym__expression,
    STATE(454), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [2417] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(50), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(362), 1,
      sym__call_or_atom,
    STATE(429), 1,
      sym_record_expr,
    STATE(453), 1,
      sym__expression,
    STATE(454), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [2536] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(51), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(754), 1,
      sym__expression,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [2655] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(52), 1,
      sym_block_comment,
    ACTIONS(527), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(525), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 31,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [2718] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(53), 1,
      sym_block_comment,
    ACTIONS(611), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(609), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [2779] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(54), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(300), 1,
      sym__expression,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [2898] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(55), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(362), 1,
      sym__call_or_atom,
    STATE(429), 1,
      sym_record_expr,
    STATE(454), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(976), 1,
      sym__expression,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [3017] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(56), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(316), 1,
      sym__expression,
    STATE(689), 1,
      sym__field_access_start,
    STATE(872), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [3136] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(57), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(320), 1,
      sym__expression,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [3255] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(58), 1,
      sym_block_comment,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(331), 1,
      sym__expression,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [3374] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(59), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(362), 1,
      sym__call_or_atom,
    STATE(429), 1,
      sym_record_expr,
    STATE(454), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(926), 1,
      sym__expression,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [3493] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(60), 1,
      sym_block_comment,
    ACTIONS(615), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(613), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [3554] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(61), 1,
      sym_block_comment,
    ACTIONS(619), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(617), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [3615] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(62), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(988), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [3734] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(63), 1,
      sym_block_comment,
    ACTIONS(623), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(621), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [3795] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(64), 1,
      sym_block_comment,
    ACTIONS(627), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(625), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [3856] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(65), 1,
      sym_block_comment,
    ACTIONS(631), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(629), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [3917] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(66), 1,
      sym_block_comment,
    ACTIONS(635), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(633), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [3978] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(67), 1,
      sym_block_comment,
    ACTIONS(639), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(637), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4039] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(68), 1,
      sym_block_comment,
    ACTIONS(545), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(506), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4100] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(69), 1,
      sym_block_comment,
    ACTIONS(643), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(641), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4161] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(70), 1,
      sym_block_comment,
    ACTIONS(647), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(645), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4222] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(71), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(997), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [4341] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(72), 1,
      sym_block_comment,
    ACTIONS(651), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(649), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4402] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(73), 1,
      sym_block_comment,
    ACTIONS(655), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(653), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4463] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(74), 1,
      sym_block_comment,
    ACTIONS(659), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(657), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4524] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(75), 1,
      sym_block_comment,
    ACTIONS(663), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(661), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4585] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(76), 1,
      sym_block_comment,
    ACTIONS(667), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(665), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4646] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(77), 1,
      sym_block_comment,
    ACTIONS(671), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(669), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4707] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(78), 1,
      sym_block_comment,
    ACTIONS(675), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(673), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4768] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(79), 1,
      sym_block_comment,
    ACTIONS(679), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(677), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4829] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(80), 1,
      sym_block_comment,
    ACTIONS(683), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(681), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4890] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(81), 1,
      sym_block_comment,
    ACTIONS(687), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(685), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [4951] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(82), 1,
      sym_block_comment,
    ACTIONS(691), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(689), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5012] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(83), 1,
      sym_block_comment,
    ACTIONS(695), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(693), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5073] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(84), 1,
      sym_block_comment,
    ACTIONS(699), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(697), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5134] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(85), 1,
      sym_block_comment,
    ACTIONS(703), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(701), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5195] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(86), 1,
      sym_block_comment,
    ACTIONS(707), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(705), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5256] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(87), 1,
      sym_block_comment,
    ACTIONS(711), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(709), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5317] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(88), 1,
      sym_block_comment,
    ACTIONS(715), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(713), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5378] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(89), 1,
      sym_block_comment,
    ACTIONS(719), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(717), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5439] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(90), 1,
      sym_block_comment,
    ACTIONS(723), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(721), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5500] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(91), 1,
      sym_block_comment,
    ACTIONS(510), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(503), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 31,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5563] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(92), 1,
      sym_block_comment,
    ACTIONS(487), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(485), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5624] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(93), 1,
      sym_block_comment,
    ACTIONS(727), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(725), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5685] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(94), 1,
      sym_block_comment,
    STATE(96), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(155), 1,
      sym__field_access_segment,
    STATE(1017), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(453), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(451), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5752] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(95), 1,
      sym_block_comment,
    ACTIONS(494), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(489), 45,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_if,
      anon_sym_then,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_of,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5813] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(457), 1,
      anon_sym_DOT,
    STATE(155), 1,
      sym__field_access_segment,
    STATE(1017), 1,
      sym__dot_without_leading_whitespace,
    STATE(96), 2,
      sym_block_comment,
      aux_sym_field_access_expr_repeat1,
    ACTIONS(460), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(455), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [5880] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(97), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(837), 1,
      sym__expression,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [5999] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(98), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(856), 1,
      sym__expression,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6118] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(99), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(919), 1,
      sym__expression,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6237] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(100), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(889), 1,
      sym__expression,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6356] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(101), 1,
      sym_block_comment,
    STATE(161), 1,
      sym__call_or_atom,
    STATE(167), 1,
      sym__function_call_target,
    STATE(212), 1,
      sym_record_expr,
    STATE(239), 1,
      sym__expression,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(252), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(251), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(253), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(221), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(232), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6475] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(102), 1,
      sym_block_comment,
    STATE(161), 1,
      sym__call_or_atom,
    STATE(167), 1,
      sym__function_call_target,
    STATE(212), 1,
      sym_record_expr,
    STATE(240), 1,
      sym__expression,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(252), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(881), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(251), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(253), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(221), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(232), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6594] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(103), 1,
      sym_block_comment,
    STATE(161), 1,
      sym__call_or_atom,
    STATE(167), 1,
      sym__function_call_target,
    STATE(212), 1,
      sym_record_expr,
    STATE(242), 1,
      sym__expression,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(252), 1,
      sym_bin_op_expr,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(251), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(253), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(221), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(232), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6713] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(104), 1,
      sym_block_comment,
    STATE(161), 1,
      sym__call_or_atom,
    STATE(167), 1,
      sym__function_call_target,
    STATE(212), 1,
      sym_record_expr,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(252), 1,
      sym_bin_op_expr,
    STATE(263), 1,
      sym__expression,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(251), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(253), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(221), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(232), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6832] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(26), 1,
      sym__call_or_atom,
    STATE(41), 1,
      sym_record_expr,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(79), 1,
      sym__expression,
    STATE(92), 1,
      sym_bin_op_expr,
    STATE(105), 1,
      sym_block_comment,
    STATE(179), 1,
      sym__function_call_target,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(91), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(93), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(30), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(68), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [6951] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(26), 1,
      sym__call_or_atom,
    STATE(41), 1,
      sym_record_expr,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(80), 1,
      sym__expression,
    STATE(92), 1,
      sym_bin_op_expr,
    STATE(106), 1,
      sym_block_comment,
    STATE(179), 1,
      sym__function_call_target,
    STATE(689), 1,
      sym__field_access_start,
    STATE(888), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(91), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(93), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(30), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(68), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7070] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(26), 1,
      sym__call_or_atom,
    STATE(41), 1,
      sym_record_expr,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(82), 1,
      sym__expression,
    STATE(92), 1,
      sym_bin_op_expr,
    STATE(107), 1,
      sym_block_comment,
    STATE(179), 1,
      sym__function_call_target,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(91), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(93), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(30), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(68), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7189] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(26), 1,
      sym__call_or_atom,
    STATE(41), 1,
      sym_record_expr,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(85), 1,
      sym__expression,
    STATE(92), 1,
      sym_bin_op_expr,
    STATE(108), 1,
      sym_block_comment,
    STATE(179), 1,
      sym__function_call_target,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(91), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(93), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(30), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(68), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7308] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(109), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(397), 1,
      sym__expression,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7427] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(110), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(398), 1,
      sym__expression,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(895), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7546] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(111), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(400), 1,
      sym__expression,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7665] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(112), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(343), 1,
      sym__call_or_atom,
    STATE(364), 1,
      sym_record_expr,
    STATE(403), 1,
      sym__expression,
    STATE(411), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7784] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(113), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(907), 1,
      sym__expression,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [7903] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(114), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(890), 1,
      sym__expression,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8022] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(115), 1,
      sym_block_comment,
    STATE(131), 1,
      sym__call_or_atom,
    STATE(147), 1,
      sym_record_expr,
    STATE(174), 1,
      sym__expression,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(187), 1,
      sym__function_call_target,
    STATE(204), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(170), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(203), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(164), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(194), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8141] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(116), 1,
      sym_block_comment,
    STATE(131), 1,
      sym__call_or_atom,
    STATE(147), 1,
      sym_record_expr,
    STATE(175), 1,
      sym__expression,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(187), 1,
      sym__function_call_target,
    STATE(204), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(900), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(170), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(203), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(164), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(194), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8260] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(117), 1,
      sym_block_comment,
    STATE(131), 1,
      sym__call_or_atom,
    STATE(147), 1,
      sym_record_expr,
    STATE(177), 1,
      sym__expression,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(187), 1,
      sym__function_call_target,
    STATE(204), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(170), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(203), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(164), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(194), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8379] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(118), 1,
      sym_block_comment,
    STATE(131), 1,
      sym__call_or_atom,
    STATE(147), 1,
      sym_record_expr,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(182), 1,
      sym__expression,
    STATE(187), 1,
      sym__function_call_target,
    STATE(204), 1,
      sym_bin_op_expr,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(170), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(203), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(164), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(194), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8498] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(119), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(362), 1,
      sym__call_or_atom,
    STATE(429), 1,
      sym_record_expr,
    STATE(454), 1,
      sym_bin_op_expr,
    STATE(480), 1,
      sym__expression,
    STATE(678), 1,
      sym__field_access_start,
    STATE(887), 1,
      sym__if,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8617] = 34,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(120), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(362), 1,
      sym__call_or_atom,
    STATE(429), 1,
      sym_record_expr,
    STATE(454), 1,
      sym_bin_op_expr,
    STATE(479), 1,
      sym__expression,
    STATE(678), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8736] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(121), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1034), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8855] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(122), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1035), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [8974] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(123), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1037), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9093] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(124), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1038), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9212] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(125), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1040), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9331] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(126), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1041), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9450] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(127), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1043), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9569] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(128), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1044), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9688] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(129), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1045), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9807] = 34,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(130), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(277), 1,
      sym__call_or_atom,
    STATE(286), 1,
      sym_record_expr,
    STATE(303), 1,
      sym_bin_op_expr,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(1046), 1,
      sym__expression,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [9926] = 9,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(131), 1,
      sym_block_comment,
    STATE(132), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(142), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(487), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(485), 15,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(481), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [9994] = 9,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(132), 1,
      sym_block_comment,
    STATE(133), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(142), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(483), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(479), 15,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(481), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [10062] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(142), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    STATE(133), 2,
      sym_block_comment,
      aux_sym_bin_op_expr_repeat1,
    ACTIONS(494), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(489), 15,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(491), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [10128] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(134), 1,
      sym_block_comment,
    STATE(135), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(957), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(470), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(468), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [10194] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(957), 1,
      sym__dot_without_leading_whitespace,
    STATE(135), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(477), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(472), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [10258] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(134), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(136), 1,
      sym_block_comment,
    STATE(783), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(466), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(462), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [10324] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(137), 1,
      sym_block_comment,
    STATE(145), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(213), 1,
      sym__field_access_segment,
    STATE(954), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(453), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(451), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [10389] = 32,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(138), 1,
      sym_block_comment,
    STATE(167), 1,
      sym__function_call_target,
    STATE(212), 1,
      sym_record_expr,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(259), 1,
      sym__call_or_atom,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(251), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(253), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(221), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(232), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [10502] = 32,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(587), 1,
      anon_sym_LPAREN,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    STATE(139), 1,
      sym_block_comment,
    STATE(173), 1,
      sym__function_call_target,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(364), 1,
      sym_record_expr,
    STATE(393), 1,
      sym__call_or_atom,
    STATE(676), 1,
      sym__field_access_start,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(192), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(413), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(154), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(420), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [10615] = 32,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(41), 1,
      sym_record_expr,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(95), 1,
      sym__call_or_atom,
    STATE(140), 1,
      sym_block_comment,
    STATE(179), 1,
      sym__function_call_target,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(91), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(93), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(30), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(68), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [10728] = 32,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(565), 1,
      anon_sym_LPAREN,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    STATE(141), 1,
      sym_block_comment,
    STATE(166), 1,
      sym__function_call_target,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(429), 1,
      sym_record_expr,
    STATE(471), 1,
      sym__call_or_atom,
    STATE(678), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(238), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(455), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(222), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(456), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [10841] = 32,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(142), 1,
      sym_block_comment,
    STATE(147), 1,
      sym_record_expr,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(187), 1,
      sym__function_call_target,
    STATE(197), 1,
      sym__call_or_atom,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(170), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(203), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(164), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(194), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [10954] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(496), 1,
      anon_sym_DOT,
    STATE(143), 1,
      sym_block_comment,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(477), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(472), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11017] = 32,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(177), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(144), 1,
      sym_block_comment,
    STATE(206), 1,
      sym__function_call_target,
    STATE(286), 1,
      sym_record_expr,
    STATE(306), 1,
      sym__call_or_atom,
    STATE(689), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(52), 2,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
    STATE(323), 2,
      sym_function_call_expr,
      sym__atom,
    STATE(34), 3,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(315), 10,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [11130] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(457), 1,
      anon_sym_DOT,
    STATE(213), 1,
      sym__field_access_segment,
    STATE(954), 1,
      sym__dot_without_leading_whitespace,
    STATE(145), 2,
      sym_block_comment,
      aux_sym_field_access_expr_repeat1,
    ACTIONS(460), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(455), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11195] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(146), 1,
      sym_block_comment,
    ACTIONS(563), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(561), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11253] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(147), 1,
      sym_block_comment,
    ACTIONS(545), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(506), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11313] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(148), 1,
      sym_block_comment,
    ACTIONS(549), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(547), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11371] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(149), 1,
      sym_block_comment,
    ACTIONS(519), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(517), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11429] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(959), 1,
      sym__dot_without_leading_whitespace,
    STATE(150), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(477), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(472), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11491] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(151), 1,
      sym_block_comment,
    STATE(157), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(710), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(466), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(462), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11555] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(138), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    STATE(152), 2,
      sym_block_comment,
      aux_sym_bin_op_expr_repeat1,
    ACTIONS(494), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(489), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(491), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11619] = 9,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(138), 1,
      sym_operator,
    STATE(152), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(153), 1,
      sym_block_comment,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(483), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(479), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(481), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11685] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(154), 1,
      sym_block_comment,
    ACTIONS(527), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(545), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
    ACTIONS(525), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 25,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11749] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(155), 1,
      sym_block_comment,
    ACTIONS(537), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(535), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11807] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(156), 1,
      sym_block_comment,
    ACTIONS(553), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(551), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11865] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(150), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(157), 1,
      sym_block_comment,
    STATE(959), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(470), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(468), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11929] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(158), 1,
      sym_block_comment,
    ACTIONS(559), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(557), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [11987] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(159), 1,
      sym_block_comment,
    ACTIONS(515), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(513), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12045] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(160), 1,
      sym_block_comment,
    ACTIONS(523), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(521), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12103] = 9,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(138), 1,
      sym_operator,
    STATE(153), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(161), 1,
      sym_block_comment,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(487), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(485), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(481), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12169] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(162), 1,
      sym_block_comment,
    ACTIONS(477), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(472), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12227] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(163), 1,
      sym_block_comment,
    ACTIONS(531), 5,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(529), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12285] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(164), 1,
      sym_block_comment,
    ACTIONS(510), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(545), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
    ACTIONS(503), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 25,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12349] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(165), 1,
      sym_block_comment,
    ACTIONS(611), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(609), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12406] = 29,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(17), 1,
      aux_sym_function_call_expr_repeat1,
    STATE(166), 1,
      sym_block_comment,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(261), 1,
      sym__atom,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(212), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(232), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [12511] = 29,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(19), 1,
      aux_sym_function_call_expr_repeat1,
    STATE(167), 1,
      sym_block_comment,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(261), 1,
      sym__atom,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(212), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(232), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [12616] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(168), 1,
      sym_block_comment,
    ACTIONS(663), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(661), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12673] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(169), 1,
      sym_block_comment,
    ACTIONS(667), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(665), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12730] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(170), 1,
      sym_block_comment,
    ACTIONS(727), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(725), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12787] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(171), 1,
      sym_block_comment,
    ACTIONS(671), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(669), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12844] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(172), 1,
      sym_block_comment,
    ACTIONS(675), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(673), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [12901] = 29,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(14), 1,
      aux_sym_function_call_expr_repeat1,
    STATE(165), 1,
      sym__atom,
    STATE(173), 1,
      sym_block_comment,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(147), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(194), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [13006] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(174), 1,
      sym_block_comment,
    ACTIONS(679), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(677), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13063] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(175), 1,
      sym_block_comment,
    ACTIONS(683), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(681), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13120] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(176), 1,
      sym_block_comment,
    ACTIONS(687), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(685), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13177] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(177), 1,
      sym_block_comment,
    ACTIONS(691), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(689), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13234] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(178), 1,
      sym_block_comment,
    ACTIONS(615), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(613), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13291] = 29,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(4), 1,
      aux_sym_function_call_expr_repeat1,
    STATE(53), 1,
      sym__atom,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(179), 1,
      sym_block_comment,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(41), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(68), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [13396] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(180), 1,
      sym_block_comment,
    ACTIONS(695), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(693), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13453] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(181), 1,
      sym_block_comment,
    ACTIONS(699), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(697), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13510] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(182), 1,
      sym_block_comment,
    ACTIONS(703), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(701), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13567] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(183), 1,
      sym_block_comment,
    ACTIONS(619), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(617), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13624] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(184), 1,
      sym_block_comment,
    ACTIONS(707), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(705), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13681] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(185), 1,
      sym_block_comment,
    ACTIONS(659), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(657), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13738] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(186), 1,
      sym_block_comment,
    ACTIONS(711), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(709), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13795] = 29,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(16), 1,
      aux_sym_function_call_expr_repeat1,
    STATE(165), 1,
      sym__atom,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(187), 1,
      sym_block_comment,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(147), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(194), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [13900] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(188), 1,
      sym_block_comment,
    ACTIONS(715), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(713), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [13957] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(189), 1,
      sym_block_comment,
    ACTIONS(651), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(649), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14014] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(190), 1,
      sym_block_comment,
    ACTIONS(719), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(717), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14071] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(191), 1,
      sym_block_comment,
    ACTIONS(723), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(721), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14128] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(192), 1,
      sym_block_comment,
    ACTIONS(527), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(545), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
    ACTIONS(525), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 25,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14189] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(496), 1,
      anon_sym_DOT,
    STATE(193), 1,
      sym_block_comment,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(477), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(472), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14250] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(194), 1,
      sym_block_comment,
    ACTIONS(545), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(506), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14307] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(195), 1,
      sym_block_comment,
    ACTIONS(647), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(645), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14364] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(196), 1,
      sym_block_comment,
    ACTIONS(655), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(653), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14421] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(197), 1,
      sym_block_comment,
    ACTIONS(494), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(489), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14478] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(198), 1,
      sym_block_comment,
    ACTIONS(623), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(621), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14535] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(199), 1,
      sym_block_comment,
    ACTIONS(627), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(625), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14592] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(200), 1,
      sym_block_comment,
    ACTIONS(631), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(629), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14649] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(201), 1,
      sym_block_comment,
    ACTIONS(635), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(633), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14706] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(202), 1,
      sym_block_comment,
    ACTIONS(639), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(637), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14763] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(203), 1,
      sym_block_comment,
    ACTIONS(510), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(545), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
    ACTIONS(503), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 25,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14824] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(204), 1,
      sym_block_comment,
    ACTIONS(487), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(485), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14881] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(205), 1,
      sym_block_comment,
    ACTIONS(643), 4,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(641), 39,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [14938] = 29,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(2), 1,
      aux_sym_function_call_expr_repeat1,
    STATE(53), 1,
      sym__atom,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(206), 1,
      sym_block_comment,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(41), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(68), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [15043] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(207), 1,
      sym_block_comment,
    ACTIONS(515), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(513), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15099] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(208), 1,
      sym_block_comment,
    ACTIONS(523), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(521), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15155] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(209), 1,
      sym_block_comment,
    ACTIONS(477), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(472), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15211] = 31,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(31), 1,
      sym_import,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(729), 1,
      ts_builtin_sym_end,
    ACTIONS(731), 1,
      sym_port,
    STATE(210), 1,
      sym_block_comment,
    STATE(266), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(508), 1,
      aux_sym__import_list,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1051), 1,
      sym_import_clause,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [15319] = 31,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(31), 1,
      sym_import,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(731), 1,
      sym_port,
    ACTIONS(733), 1,
      ts_builtin_sym_end,
    STATE(210), 1,
      aux_sym__import_list,
    STATE(211), 1,
      sym_block_comment,
    STATE(264), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1051), 1,
      sym_import_clause,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [15427] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(212), 1,
      sym_block_comment,
    ACTIONS(545), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(506), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15485] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(213), 1,
      sym_block_comment,
    ACTIONS(537), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(535), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15541] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(214), 1,
      sym_block_comment,
    ACTIONS(549), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(547), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15597] = 28,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(567), 1,
      anon_sym_LBRACE,
    ACTIONS(569), 1,
      anon_sym_SQUOTE,
    ACTIONS(571), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(573), 1,
      anon_sym_DQUOTE,
    ACTIONS(575), 1,
      anon_sym_LBRACK,
    ACTIONS(577), 1,
      anon_sym_let,
    ACTIONS(579), 1,
      sym_number_literal,
    ACTIONS(581), 1,
      sym_case,
    ACTIONS(583), 1,
      sym_backslash,
    ACTIONS(585), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(735), 1,
      sym_lower_case_identifier,
    ACTIONS(737), 1,
      anon_sym_LPAREN,
    ACTIONS(739), 1,
      sym_upper_case_identifier,
    ACTIONS(741), 1,
      sym_dot,
    STATE(215), 1,
      sym_block_comment,
    STATE(458), 1,
      sym__atom,
    STATE(463), 1,
      sym__operator_as_function_inner,
    STATE(670), 1,
      sym__field_access_start,
    STATE(879), 1,
      sym__if,
    STATE(1050), 1,
      sym__glsl_begin,
    STATE(440), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(468), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(429), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(456), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [15699] = 31,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(31), 1,
      sym_import,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(731), 1,
      sym_port,
    ACTIONS(743), 1,
      ts_builtin_sym_end,
    STATE(216), 1,
      sym_block_comment,
    STATE(267), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(508), 1,
      aux_sym__import_list,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1051), 1,
      sym_import_clause,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [15807] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(217), 1,
      sym_block_comment,
    ACTIONS(559), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(557), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15863] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(218), 1,
      sym_block_comment,
    ACTIONS(563), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(561), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15919] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(219), 1,
      sym_block_comment,
    ACTIONS(519), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(517), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [15975] = 28,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    ACTIONS(183), 1,
      anon_sym_SQUOTE,
    ACTIONS(185), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(187), 1,
      anon_sym_DQUOTE,
    ACTIONS(189), 1,
      anon_sym_LBRACK,
    ACTIONS(191), 1,
      anon_sym_let,
    ACTIONS(195), 1,
      sym_number_literal,
    ACTIONS(199), 1,
      sym_backslash,
    ACTIONS(201), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(501), 1,
      sym_case,
    ACTIONS(745), 1,
      sym_lower_case_identifier,
    ACTIONS(747), 1,
      anon_sym_LPAREN,
    ACTIONS(749), 1,
      sym_upper_case_identifier,
    ACTIONS(751), 1,
      sym_dot,
    STATE(220), 1,
      sym_block_comment,
    STATE(305), 1,
      sym__operator_as_function_inner,
    STATE(319), 1,
      sym__atom,
    STATE(680), 1,
      sym__field_access_start,
    STATE(865), 1,
      sym__if,
    STATE(967), 1,
      sym__glsl_begin,
    STATE(289), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(314), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(286), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(315), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [16077] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    ACTIONS(545), 1,
      sym__virtual_end_decl,
    STATE(221), 1,
      sym_block_comment,
    ACTIONS(510), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(503), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16139] = 8,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    ACTIONS(545), 1,
      sym__virtual_end_decl,
    STATE(222), 1,
      sym_block_comment,
    ACTIONS(527), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(525), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16201] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(223), 1,
      sym_block_comment,
    ACTIONS(531), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(529), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16257] = 28,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(339), 1,
      sym_lower_case_identifier,
    ACTIONS(341), 1,
      anon_sym_LPAREN,
    ACTIONS(343), 1,
      anon_sym_LBRACE,
    ACTIONS(345), 1,
      anon_sym_SQUOTE,
    ACTIONS(347), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(349), 1,
      anon_sym_DQUOTE,
    ACTIONS(351), 1,
      anon_sym_LBRACK,
    ACTIONS(353), 1,
      anon_sym_let,
    ACTIONS(355), 1,
      sym_upper_case_identifier,
    ACTIONS(357), 1,
      sym_number_literal,
    ACTIONS(359), 1,
      sym_case,
    ACTIONS(361), 1,
      sym_backslash,
    ACTIONS(363), 1,
      sym_dot,
    ACTIONS(365), 1,
      sym_minus_without_trailing_whitespace,
    STATE(224), 1,
      sym_block_comment,
    STATE(250), 1,
      sym__operator_as_function_inner,
    STATE(254), 1,
      sym__atom,
    STATE(678), 1,
      sym__field_access_start,
    STATE(877), 1,
      sym__if,
    STATE(983), 1,
      sym__glsl_begin,
    STATE(219), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(245), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(212), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(232), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [16359] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(225), 1,
      sym_block_comment,
    ACTIONS(553), 4,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      anon_sym_DOT,
      sym_backslash,
    ACTIONS(551), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16415] = 28,
    ACTIONS(41), 1,
      sym_lower_case_identifier,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(47), 1,
      anon_sym_LPAREN,
    ACTIONS(51), 1,
      anon_sym_LBRACE,
    ACTIONS(53), 1,
      anon_sym_SQUOTE,
    ACTIONS(55), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(57), 1,
      anon_sym_DQUOTE,
    ACTIONS(59), 1,
      anon_sym_LBRACK,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(63), 1,
      anon_sym_let,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(67), 1,
      sym_upper_case_identifier,
    ACTIONS(69), 1,
      sym_number_literal,
    ACTIONS(71), 1,
      sym_case,
    ACTIONS(73), 1,
      sym_backslash,
    ACTIONS(75), 1,
      sym_dot,
    ACTIONS(77), 1,
      sym_minus_without_trailing_whitespace,
    STATE(60), 1,
      sym__operator_as_function_inner,
    STATE(69), 1,
      sym__atom,
    STATE(226), 1,
      sym_block_comment,
    STATE(689), 1,
      sym__field_access_start,
    STATE(884), 1,
      sym__if,
    STATE(1058), 1,
      sym__glsl_begin,
    STATE(32), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(64), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(41), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(68), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [16517] = 28,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(589), 1,
      anon_sym_LBRACE,
    ACTIONS(591), 1,
      anon_sym_SQUOTE,
    ACTIONS(593), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(595), 1,
      anon_sym_DQUOTE,
    ACTIONS(597), 1,
      anon_sym_LBRACK,
    ACTIONS(599), 1,
      anon_sym_let,
    ACTIONS(601), 1,
      sym_number_literal,
    ACTIONS(603), 1,
      sym_case,
    ACTIONS(605), 1,
      sym_backslash,
    ACTIONS(607), 1,
      sym_minus_without_trailing_whitespace,
    ACTIONS(753), 1,
      sym_lower_case_identifier,
    ACTIONS(755), 1,
      anon_sym_LPAREN,
    ACTIONS(757), 1,
      sym_upper_case_identifier,
    ACTIONS(759), 1,
      sym_dot,
    STATE(227), 1,
      sym_block_comment,
    STATE(409), 1,
      sym__operator_as_function_inner,
    STATE(422), 1,
      sym__atom,
    STATE(694), 1,
      sym__field_access_start,
    STATE(891), 1,
      sym__if,
    STATE(1003), 1,
      sym__glsl_begin,
    STATE(368), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(415), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(364), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(420), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [16619] = 28,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(61), 1,
      anon_sym_if,
    ACTIONS(65), 1,
      anon_sym_LBRACKglsl_PIPE,
    ACTIONS(223), 1,
      sym_lower_case_identifier,
    ACTIONS(225), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 1,
      anon_sym_LBRACE,
    ACTIONS(229), 1,
      anon_sym_SQUOTE,
    ACTIONS(231), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(233), 1,
      anon_sym_DQUOTE,
    ACTIONS(235), 1,
      anon_sym_LBRACK,
    ACTIONS(237), 1,
      anon_sym_let,
    ACTIONS(239), 1,
      sym_upper_case_identifier,
    ACTIONS(241), 1,
      sym_number_literal,
    ACTIONS(243), 1,
      sym_case,
    ACTIONS(245), 1,
      sym_backslash,
    ACTIONS(247), 1,
      sym_dot,
    ACTIONS(251), 1,
      sym_minus_without_trailing_whitespace,
    STATE(178), 1,
      sym__operator_as_function_inner,
    STATE(205), 1,
      sym__atom,
    STATE(228), 1,
      sym_block_comment,
    STATE(676), 1,
      sym__field_access_start,
    STATE(898), 1,
      sym__if,
    STATE(1010), 1,
      sym__glsl_begin,
    STATE(149), 2,
      sym_upper_case_qid,
      sym_value_qid,
    STATE(199), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(147), 4,
      sym_field_access_expr,
      sym_parenthesized_expr,
      sym_value_expr,
      sym_record_expr,
    STATE(194), 12,
      sym_field_accessor_function_expr,
      sym_operator_as_function_expr,
      sym_negate_expr,
      sym__literal_expr_group,
      sym_anonymous_function_expr,
      sym_tuple_expr,
      sym_unit_expr,
      sym_list_expr,
      sym_if_else_expr,
      sym_case_of_expr,
      sym_let_in_expr,
      sym_glsl_code_expr,
  [16721] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(229), 1,
      sym_block_comment,
    ACTIONS(695), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(693), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16776] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(230), 1,
      sym_block_comment,
    ACTIONS(635), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(633), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16831] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(231), 1,
      sym_block_comment,
    ACTIONS(655), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(653), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16886] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(232), 1,
      sym_block_comment,
    ACTIONS(545), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(506), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16941] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(233), 1,
      sym_block_comment,
    ACTIONS(659), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(657), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [16996] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(234), 1,
      sym_block_comment,
    ACTIONS(663), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(661), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17051] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(235), 1,
      sym_block_comment,
    ACTIONS(667), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(665), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17106] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(236), 1,
      sym_block_comment,
    ACTIONS(671), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(669), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17161] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(237), 1,
      sym_block_comment,
    ACTIONS(675), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(673), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17216] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(545), 1,
      sym__virtual_end_decl,
    STATE(238), 1,
      sym_block_comment,
    ACTIONS(527), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(525), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17275] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(239), 1,
      sym_block_comment,
    ACTIONS(679), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(677), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17330] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(240), 1,
      sym_block_comment,
    ACTIONS(683), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(681), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17385] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(241), 1,
      sym_block_comment,
    ACTIONS(687), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(685), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17440] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(242), 1,
      sym_block_comment,
    ACTIONS(691), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(689), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17495] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(243), 1,
      sym_block_comment,
    ACTIONS(723), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(721), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17550] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(244), 1,
      sym_block_comment,
    ACTIONS(699), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(697), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17605] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(245), 1,
      sym_block_comment,
    ACTIONS(627), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(625), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17660] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(246), 1,
      sym_block_comment,
    ACTIONS(707), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(705), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17715] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(247), 1,
      sym_block_comment,
    ACTIONS(711), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(709), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17770] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(248), 1,
      sym_block_comment,
    ACTIONS(715), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(713), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17825] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(249), 1,
      sym_block_comment,
    ACTIONS(719), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(717), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17880] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(250), 1,
      sym_block_comment,
    ACTIONS(615), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(613), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17935] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(545), 1,
      sym__virtual_end_decl,
    STATE(251), 1,
      sym_block_comment,
    ACTIONS(510), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(503), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
    ACTIONS(506), 24,
      anon_sym_COLON_COLON,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [17994] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(252), 1,
      sym_block_comment,
    ACTIONS(487), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(485), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18049] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(253), 1,
      sym_block_comment,
    ACTIONS(727), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(725), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18104] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(254), 1,
      sym_block_comment,
    ACTIONS(643), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(641), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18159] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(255), 1,
      sym_block_comment,
    ACTIONS(619), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(617), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18214] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(256), 1,
      sym_block_comment,
    ACTIONS(639), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(637), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18269] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(257), 1,
      sym_block_comment,
    ACTIONS(647), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(645), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18324] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(258), 1,
      sym_block_comment,
    ACTIONS(651), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(649), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18379] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(259), 1,
      sym_block_comment,
    ACTIONS(494), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(489), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18434] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(260), 1,
      sym_block_comment,
    ACTIONS(631), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(629), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18489] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(261), 1,
      sym_block_comment,
    ACTIONS(611), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(609), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18544] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(262), 1,
      sym_block_comment,
    ACTIONS(623), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(621), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18599] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(263), 1,
      sym_block_comment,
    ACTIONS(703), 3,
      sym__virtual_end_decl,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(701), 38,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_COLON_COLON,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_SLASH,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [18654] = 28,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(729), 1,
      ts_builtin_sym_end,
    ACTIONS(731), 1,
      sym_port,
    STATE(264), 1,
      sym_block_comment,
    STATE(268), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [18753] = 28,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(731), 1,
      sym_port,
    ACTIONS(743), 1,
      ts_builtin_sym_end,
    STATE(265), 1,
      sym_block_comment,
    STATE(268), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [18852] = 28,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(731), 1,
      sym_port,
    ACTIONS(761), 1,
      ts_builtin_sym_end,
    STATE(266), 1,
      sym_block_comment,
    STATE(268), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [18951] = 28,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(9), 1,
      sym_lower_case_identifier,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(33), 1,
      sym_type,
    ACTIONS(37), 1,
      sym_infix,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(731), 1,
      sym_port,
    ACTIONS(763), 1,
      ts_builtin_sym_end,
    STATE(267), 1,
      sym_block_comment,
    STATE(268), 1,
      aux_sym__top_decl_list,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [19050] = 27,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(765), 1,
      ts_builtin_sym_end,
    ACTIONS(767), 1,
      sym_lower_case_identifier,
    ACTIONS(770), 1,
      anon_sym_LPAREN,
    ACTIONS(773), 1,
      anon_sym_LBRACE,
    ACTIONS(776), 1,
      anon_sym_SQUOTE,
    ACTIONS(779), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(782), 1,
      anon_sym_DQUOTE,
    ACTIONS(785), 1,
      anon_sym_LBRACK,
    ACTIONS(788), 1,
      sym_upper_case_identifier,
    ACTIONS(791), 1,
      sym_number_literal,
    ACTIONS(794), 1,
      sym_type,
    ACTIONS(797), 1,
      sym_port,
    ACTIONS(800), 1,
      sym_infix,
    ACTIONS(803), 1,
      sym_underscore,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(956), 1,
      sym_function_declaration_left,
    STATE(990), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(268), 2,
      sym_block_comment,
      aux_sym__top_decl_list,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(932), 6,
      sym_value_declaration,
      sym_type_declaration,
      sym_type_alias_declaration,
      sym_type_annotation,
      sym_port_annotation,
      sym_infix_declaration,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [19147] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(994), 1,
      sym__dot_without_leading_whitespace,
    STATE(269), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(472), 9,
      anon_sym_LBRACE,
      sym_lower_case_identifier,
      sym_as,
      sym_exposing,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 23,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19200] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(270), 1,
      sym_block_comment,
    STATE(274), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(293), 1,
      sym__field_access_segment,
    STATE(958), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(451), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(453), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19255] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(271), 1,
      sym_block_comment,
    STATE(273), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(955), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(468), 6,
      anon_sym_LBRACE,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(470), 26,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19310] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(269), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(272), 1,
      sym_block_comment,
    STATE(994), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(468), 9,
      anon_sym_LBRACE,
      sym_lower_case_identifier,
      sym_as,
      sym_exposing,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(470), 23,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19365] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(955), 1,
      sym__dot_without_leading_whitespace,
    STATE(273), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(472), 6,
      anon_sym_LBRACE,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 26,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19418] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(457), 1,
      anon_sym_DOT,
    STATE(293), 1,
      sym__field_access_segment,
    STATE(958), 1,
      sym__dot_without_leading_whitespace,
    STATE(274), 2,
      sym_block_comment,
      aux_sym_field_access_expr_repeat1,
    ACTIONS(455), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(460), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19473] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(144), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    STATE(275), 2,
      sym_block_comment,
      aux_sym_bin_op_expr_repeat1,
    ACTIONS(491), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(494), 7,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      sym_of,
    ACTIONS(806), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19527] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(276), 1,
      sym_block_comment,
    STATE(279), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(762), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(462), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(466), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19581] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(144), 1,
      sym_operator,
    STATE(277), 1,
      sym_block_comment,
    STATE(280), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(481), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(487), 7,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      sym_of,
    ACTIONS(809), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19637] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(925), 1,
      sym__dot_without_leading_whitespace,
    STATE(278), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(472), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19689] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(278), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(279), 1,
      sym_block_comment,
    STATE(925), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(468), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(470), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19743] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(144), 1,
      sym_operator,
    STATE(275), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(280), 1,
      sym_block_comment,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(481), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(483), 7,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      sym_of,
    ACTIONS(809), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19799] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(281), 1,
      sym_block_comment,
    ACTIONS(557), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(559), 28,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_exposing,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19846] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(282), 1,
      sym_block_comment,
    ACTIONS(472), 6,
      anon_sym_LBRACE,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 27,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19893] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(496), 1,
      anon_sym_DOT,
    STATE(283), 1,
      sym_block_comment,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(472), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19944] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(284), 1,
      sym_block_comment,
    ACTIONS(547), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(549), 28,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_exposing,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [19991] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(285), 1,
      sym_block_comment,
    ACTIONS(472), 9,
      anon_sym_LBRACE,
      sym_lower_case_identifier,
      sym_as,
      sym_exposing,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 24,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20038] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(286), 1,
      sym_block_comment,
    ACTIONS(506), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(545), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20086] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(287), 1,
      sym_block_comment,
    ACTIONS(721), 6,
      anon_sym_LBRACE,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(723), 26,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20132] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(288), 1,
      sym_block_comment,
    ACTIONS(561), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(563), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20178] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(289), 1,
      sym_block_comment,
    ACTIONS(517), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(519), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20224] = 19,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(811), 1,
      sym_lower_case_identifier,
    ACTIONS(814), 1,
      anon_sym_LPAREN,
    ACTIONS(819), 1,
      anon_sym_LBRACE,
    ACTIONS(822), 1,
      anon_sym_SQUOTE,
    ACTIONS(825), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(828), 1,
      anon_sym_DQUOTE,
    ACTIONS(831), 1,
      anon_sym_LBRACK,
    ACTIONS(834), 1,
      sym_upper_case_identifier,
    ACTIONS(837), 1,
      sym_number_literal,
    ACTIONS(840), 1,
      sym_as,
    ACTIONS(842), 1,
      sym_underscore,
    STATE(494), 1,
      sym_upper_case_qid,
    STATE(514), 1,
      sym__union_argument_pattern,
    STATE(290), 2,
      sym_block_comment,
      aux_sym_union_pattern_repeat1,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    ACTIONS(817), 6,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_eq,
      sym_arrow,
    STATE(509), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_nullary_constructor_argument_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [20298] = 20,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(845), 1,
      sym_lower_case_identifier,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(851), 1,
      sym_as,
    STATE(291), 1,
      sym_block_comment,
    STATE(294), 1,
      aux_sym_union_pattern_repeat1,
    STATE(494), 1,
      sym_upper_case_qid,
    STATE(514), 1,
      sym__union_argument_pattern,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    ACTIONS(849), 6,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_eq,
      sym_arrow,
    STATE(509), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_nullary_constructor_argument_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [20374] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(292), 1,
      sym_block_comment,
    ACTIONS(472), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20420] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(293), 1,
      sym_block_comment,
    ACTIONS(535), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(537), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20466] = 20,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(845), 1,
      sym_lower_case_identifier,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(855), 1,
      sym_as,
    STATE(290), 1,
      aux_sym_union_pattern_repeat1,
    STATE(294), 1,
      sym_block_comment,
    STATE(494), 1,
      sym_upper_case_qid,
    STATE(514), 1,
      sym__union_argument_pattern,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    ACTIONS(853), 6,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_eq,
      sym_arrow,
    STATE(509), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_nullary_constructor_argument_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [20542] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(295), 1,
      sym_block_comment,
    ACTIONS(649), 6,
      sym_eq,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(651), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20588] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(296), 1,
      sym_block_comment,
    ACTIONS(551), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(553), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20634] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(297), 1,
      sym_block_comment,
    ACTIONS(513), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(515), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20680] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(298), 1,
      sym_block_comment,
    ACTIONS(521), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(523), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20726] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(299), 1,
      sym_block_comment,
    ACTIONS(529), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(531), 27,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20772] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(300), 1,
      sym_block_comment,
    ACTIONS(677), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(679), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20817] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(301), 1,
      sym_block_comment,
    STATE(337), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(369), 1,
      sym__field_access_segment,
    STATE(937), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(451), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(453), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20868] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(302), 1,
      sym_block_comment,
    ACTIONS(617), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(619), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20913] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(303), 1,
      sym_block_comment,
    ACTIONS(485), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(487), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [20958] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(304), 1,
      sym_block_comment,
    ACTIONS(657), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(659), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21003] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(305), 1,
      sym_block_comment,
    ACTIONS(613), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(615), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21048] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(306), 1,
      sym_block_comment,
    ACTIONS(489), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(494), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21093] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(307), 1,
      sym_block_comment,
    ACTIONS(661), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(663), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21138] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(308), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(697), 1,
      sym__inner_declaration,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [21223] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(309), 1,
      sym_block_comment,
    ACTIONS(665), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(667), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21268] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(310), 1,
      sym_block_comment,
    ACTIONS(645), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(647), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21313] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(311), 1,
      sym_block_comment,
    ACTIONS(653), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(655), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21358] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(312), 1,
      sym_block_comment,
    ACTIONS(621), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(623), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21403] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(313), 1,
      sym_block_comment,
    ACTIONS(669), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(671), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21448] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(314), 1,
      sym_block_comment,
    ACTIONS(625), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(627), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21493] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(315), 1,
      sym_block_comment,
    ACTIONS(506), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(545), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21538] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(316), 1,
      sym_block_comment,
    ACTIONS(681), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(683), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21583] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(317), 1,
      sym_block_comment,
    ACTIONS(685), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(687), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21628] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(318), 1,
      sym_block_comment,
    ACTIONS(629), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(631), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21673] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(319), 1,
      sym_block_comment,
    ACTIONS(641), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(643), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21718] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(320), 1,
      sym_block_comment,
    ACTIONS(689), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(691), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21763] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(321), 1,
      sym_block_comment,
    ACTIONS(633), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(635), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21808] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(322), 1,
      sym_block_comment,
    ACTIONS(637), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(639), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21853] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(323), 1,
      sym_block_comment,
    ACTIONS(725), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(727), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [21898] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(324), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(805), 1,
      sym__inner_declaration,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [21983] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(325), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(809), 1,
      sym__inner_declaration,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [22068] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(326), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(812), 1,
      sym__inner_declaration,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [22153] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(327), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(816), 1,
      sym__inner_declaration,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [22238] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(328), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(822), 1,
      sym__inner_declaration,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [22323] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(329), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22368] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(330), 1,
      sym_block_comment,
    ACTIONS(697), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(699), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22413] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(331), 1,
      sym_block_comment,
    ACTIONS(701), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(703), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22458] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(332), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22503] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(333), 1,
      sym_block_comment,
    ACTIONS(709), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(711), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22548] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(334), 1,
      sym_block_comment,
    ACTIONS(713), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(715), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22593] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(335), 1,
      sym_block_comment,
    ACTIONS(717), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(719), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22638] = 25,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(857), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(336), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(843), 1,
      sym_value_declaration,
    STATE(860), 1,
      sym_type_annotation,
    STATE(868), 1,
      sym__inner_declaration,
    STATE(961), 1,
      sym_function_declaration_left,
    STATE(962), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [22723] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(457), 1,
      anon_sym_DOT,
    STATE(369), 1,
      sym__field_access_segment,
    STATE(937), 1,
      sym__dot_without_leading_whitespace,
    STATE(337), 2,
      sym_block_comment,
      aux_sym_field_access_expr_repeat1,
    ACTIONS(455), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(460), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22774] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(338), 1,
      sym_block_comment,
    ACTIONS(721), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(723), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22819] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(339), 1,
      sym_block_comment,
    ACTIONS(673), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(675), 26,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_else,
      anon_sym_then,
      anon_sym_COLON_COLON,
      sym_of,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22864] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(139), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    STATE(340), 2,
      sym_block_comment,
      aux_sym_bin_op_expr_repeat1,
    ACTIONS(494), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
    ACTIONS(491), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(806), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22914] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(139), 1,
      sym_operator,
    STATE(340), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(341), 1,
      sym_block_comment,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(483), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
    ACTIONS(481), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(809), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [22966] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(271), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(342), 1,
      sym_block_comment,
    STATE(793), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(462), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(466), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [23016] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(139), 1,
      sym_operator,
    STATE(341), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(343), 1,
      sym_block_comment,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(487), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
    ACTIONS(481), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(809), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [23068] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(344), 1,
      sym_block_comment,
    ACTIONS(721), 6,
      anon_sym_LBRACE,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(723), 24,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [23112] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(496), 1,
      anon_sym_DOT,
    STATE(345), 1,
      sym_block_comment,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(472), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [23159] = 23,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(861), 1,
      sym_arrow,
    STATE(346), 1,
      sym_block_comment,
    STATE(351), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23238] = 23,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(863), 1,
      sym_arrow,
    STATE(347), 1,
      sym_block_comment,
    STATE(351), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23317] = 23,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(865), 1,
      sym_arrow,
    STATE(348), 1,
      sym_block_comment,
    STATE(351), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23396] = 23,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(867), 1,
      sym_arrow,
    STATE(349), 1,
      sym_block_comment,
    STATE(351), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23475] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(457), 1,
      anon_sym_DOT,
    STATE(443), 1,
      sym__field_access_segment,
    STATE(986), 1,
      sym__dot_without_leading_whitespace,
    STATE(350), 2,
      sym_block_comment,
      aux_sym_field_access_expr_repeat1,
    ACTIONS(455), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(460), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [23524] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(869), 1,
      sym_lower_case_identifier,
    ACTIONS(872), 1,
      anon_sym_LPAREN,
    ACTIONS(875), 1,
      anon_sym_LBRACE,
    ACTIONS(878), 1,
      anon_sym_SQUOTE,
    ACTIONS(881), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(884), 1,
      anon_sym_DQUOTE,
    ACTIONS(887), 1,
      anon_sym_LBRACK,
    ACTIONS(890), 1,
      sym_upper_case_identifier,
    ACTIONS(893), 1,
      sym_number_literal,
    ACTIONS(896), 1,
      sym_arrow,
    ACTIONS(898), 1,
      sym_underscore,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(351), 2,
      sym_block_comment,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23601] = 23,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(901), 1,
      sym_arrow,
    STATE(351), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(352), 1,
      sym_block_comment,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23680] = 23,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(903), 1,
      sym_arrow,
    STATE(351), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(353), 1,
      sym_block_comment,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23759] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(350), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(354), 1,
      sym_block_comment,
    STATE(443), 1,
      sym__field_access_segment,
    STATE(986), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(451), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(453), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [23808] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(905), 1,
      anon_sym_RBRACK,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(355), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(696), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23884] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(353), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(356), 1,
      sym_block_comment,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [23960] = 10,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(357), 1,
      sym_block_comment,
    STATE(358), 1,
      aux_sym_union_pattern_repeat1,
    STATE(494), 1,
      sym_upper_case_qid,
    STATE(514), 1,
      sym__union_argument_pattern,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    ACTIONS(851), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(849), 9,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_arrow,
      sym_underscore,
    STATE(509), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_nullary_constructor_argument_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [24012] = 10,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(290), 1,
      aux_sym_union_pattern_repeat1,
    STATE(358), 1,
      sym_block_comment,
    STATE(494), 1,
      sym_upper_case_qid,
    STATE(514), 1,
      sym__union_argument_pattern,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    ACTIONS(855), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(853), 9,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_arrow,
      sym_underscore,
    STATE(509), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_nullary_constructor_argument_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [24064] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(272), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(359), 1,
      sym_block_comment,
    STATE(717), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(462), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(466), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24112] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(907), 1,
      anon_sym_RPAREN,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(360), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(902), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [24188] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(347), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(361), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [24264] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(487), 1,
      sym__virtual_end_decl,
    STATE(141), 1,
      sym_operator,
    STATE(362), 1,
      sym_block_comment,
    STATE(363), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(481), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(809), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24314] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(483), 1,
      sym__virtual_end_decl,
    STATE(141), 1,
      sym_operator,
    STATE(363), 1,
      sym_block_comment,
    STATE(374), 1,
      aux_sym_bin_op_expr_repeat1,
    STATE(516), 1,
      sym_operator_identifier,
    ACTIONS(481), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(809), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24364] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(364), 1,
      sym_block_comment,
    ACTIONS(506), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(545), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24408] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(365), 1,
      sym_block_comment,
    ACTIONS(547), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(549), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24450] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(366), 1,
      sym_block_comment,
    ACTIONS(557), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(559), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24492] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(367), 1,
      sym_block_comment,
    ACTIONS(561), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(563), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24534] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(368), 1,
      sym_block_comment,
    ACTIONS(517), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(519), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24576] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(369), 1,
      sym_block_comment,
    ACTIONS(535), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(537), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24618] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(370), 1,
      sym_block_comment,
    ACTIONS(551), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(553), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24660] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(371), 1,
      sym_block_comment,
    ACTIONS(513), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(515), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24702] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(372), 1,
      sym_block_comment,
    ACTIONS(521), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(523), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24744] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(373), 1,
      sym_block_comment,
    ACTIONS(529), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(531), 23,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24786] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(494), 1,
      sym__virtual_end_decl,
    STATE(141), 1,
      sym_operator,
    STATE(516), 1,
      sym_operator_identifier,
    STATE(374), 2,
      sym_block_comment,
      aux_sym_bin_op_expr_repeat1,
    ACTIONS(491), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(806), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [24834] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(907), 1,
      anon_sym_RPAREN,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(375), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(857), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [24910] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(376), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(690), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [24986] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(377), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(659), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25062] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(349), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(378), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25138] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(379), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(683), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25214] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(380), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(626), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25290] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(346), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(381), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25366] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(382), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(691), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25442] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(383), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(652), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25518] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(352), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(384), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25594] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(385), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(682), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25670] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(386), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(620), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25746] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(348), 1,
      aux_sym_anonymous_function_expr_repeat1,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(387), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(552), 1,
      sym_pattern,
    STATE(963), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25822] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(388), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(677), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25898] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(389), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(634), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [25974] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(390), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(664), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [26050] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(391), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(642), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [26126] = 22,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(392), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(807), 1,
      sym_case_of_branch,
    STATE(1024), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [26202] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(393), 1,
      sym_block_comment,
    ACTIONS(489), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(494), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26243] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(394), 1,
      sym_block_comment,
    ACTIONS(665), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(667), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26284] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(395), 1,
      sym_block_comment,
    ACTIONS(669), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(671), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26325] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(396), 1,
      sym_block_comment,
    ACTIONS(673), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(675), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26366] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(397), 1,
      sym_block_comment,
    ACTIONS(677), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(679), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26407] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(398), 1,
      sym_block_comment,
    ACTIONS(681), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(683), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26448] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(399), 1,
      sym_block_comment,
    ACTIONS(685), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(687), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26489] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(400), 1,
      sym_block_comment,
    ACTIONS(689), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(691), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26530] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(401), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26571] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(402), 1,
      sym_block_comment,
    ACTIONS(697), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(699), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26612] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(403), 1,
      sym_block_comment,
    ACTIONS(701), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(703), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26653] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(404), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26694] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(405), 1,
      sym_block_comment,
    ACTIONS(709), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(711), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26735] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(406), 1,
      sym_block_comment,
    ACTIONS(713), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(715), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26776] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(407), 1,
      sym_block_comment,
    ACTIONS(717), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(719), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26817] = 21,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(408), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(892), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [26890] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(409), 1,
      sym_block_comment,
    ACTIONS(613), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(615), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26931] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(410), 1,
      sym_block_comment,
    ACTIONS(617), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(619), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [26972] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(411), 1,
      sym_block_comment,
    ACTIONS(485), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(487), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27013] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(412), 1,
      sym_block_comment,
    ACTIONS(649), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(651), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27054] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(413), 1,
      sym_block_comment,
    ACTIONS(725), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(727), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27095] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(414), 1,
      sym_block_comment,
    ACTIONS(621), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(623), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27136] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(415), 1,
      sym_block_comment,
    ACTIONS(625), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(627), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27177] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(416), 1,
      sym_block_comment,
    ACTIONS(629), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(631), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27218] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(417), 1,
      sym_block_comment,
    ACTIONS(633), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(635), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27259] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(418), 1,
      sym_block_comment,
    ACTIONS(637), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(639), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27300] = 21,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(419), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(851), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [27373] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(420), 1,
      sym_block_comment,
    ACTIONS(506), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(545), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27414] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(496), 1,
      anon_sym_DOT,
    STATE(421), 1,
      sym_block_comment,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(472), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(477), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27459] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(422), 1,
      sym_block_comment,
    ACTIONS(641), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(643), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27500] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(423), 1,
      sym_block_comment,
    ACTIONS(645), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(647), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27541] = 21,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(11), 1,
      anon_sym_LPAREN,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(424), 1,
      sym_block_comment,
    STATE(501), 1,
      sym__parenthesized_pattern,
    STATE(519), 1,
      sym__single_pattern,
    STATE(520), 1,
      sym_cons_pattern,
    STATE(757), 1,
      sym_pattern,
    STATE(1057), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(496), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
  [27614] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(425), 1,
      sym_block_comment,
    ACTIONS(653), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(655), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27655] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(426), 1,
      sym_block_comment,
    ACTIONS(657), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(659), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27696] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(427), 1,
      sym_block_comment,
    ACTIONS(661), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(663), 22,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27737] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(909), 1,
      anon_sym_RPAREN,
    STATE(428), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27779] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(508), 1,
      anon_sym_DOT,
    STATE(429), 1,
      sym_block_comment,
    ACTIONS(506), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(545), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27821] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(912), 1,
      anon_sym_RPAREN,
    STATE(430), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27863] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(915), 1,
      anon_sym_RPAREN,
    STATE(431), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27905] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(918), 1,
      anon_sym_RPAREN,
    STATE(432), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27947] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(921), 1,
      anon_sym_RPAREN,
    STATE(433), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [27989] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(434), 1,
      sym_block_comment,
    ACTIONS(547), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(549), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28029] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(435), 1,
      sym_block_comment,
    ACTIONS(551), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(553), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28069] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(436), 1,
      sym_block_comment,
    ACTIONS(529), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(531), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28109] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(437), 1,
      sym_block_comment,
    ACTIONS(557), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(559), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28149] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(438), 1,
      sym_block_comment,
    ACTIONS(521), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(523), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28189] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(439), 1,
      sym_block_comment,
    ACTIONS(561), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(563), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28229] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(440), 1,
      sym_block_comment,
    ACTIONS(517), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(519), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28269] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(924), 1,
      anon_sym_RPAREN,
    STATE(441), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28311] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(927), 1,
      anon_sym_RPAREN,
    STATE(442), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28353] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(443), 1,
      sym_block_comment,
    ACTIONS(535), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(537), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28393] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(930), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28435] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(445), 1,
      sym_block_comment,
    ACTIONS(513), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(515), 21,
      sym__virtual_end_decl,
      anon_sym_DOT,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28475] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(933), 1,
      anon_sym_RPAREN,
    STATE(446), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28517] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(936), 1,
      anon_sym_RPAREN,
    STATE(447), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28559] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(939), 1,
      anon_sym_RPAREN,
    STATE(448), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28601] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(942), 1,
      anon_sym_RPAREN,
    STATE(449), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      anon_sym_COMMA,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28643] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(450), 1,
      sym_block_comment,
    ACTIONS(685), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(687), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28682] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(451), 1,
      sym_block_comment,
    ACTIONS(689), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(691), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28721] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(452), 1,
      sym_block_comment,
    ACTIONS(649), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(651), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28760] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(453), 1,
      sym_block_comment,
    ACTIONS(701), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(703), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28799] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(454), 1,
      sym_block_comment,
    ACTIONS(485), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(487), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28838] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(455), 1,
      sym_block_comment,
    ACTIONS(725), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(727), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28877] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(456), 1,
      sym_block_comment,
    ACTIONS(506), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(545), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28916] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(457), 1,
      sym_block_comment,
    STATE(966), 1,
      sym_operator_identifier,
    ACTIONS(193), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(945), 19,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28957] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(458), 1,
      sym_block_comment,
    ACTIONS(641), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(643), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [28996] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(459), 1,
      sym_block_comment,
    ACTIONS(645), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(647), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29035] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(460), 1,
      sym_block_comment,
    ACTIONS(705), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(707), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29074] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(461), 1,
      sym_block_comment,
    ACTIONS(713), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(715), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29113] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(462), 1,
      sym_block_comment,
    ACTIONS(717), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(719), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29152] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(463), 1,
      sym_block_comment,
    ACTIONS(613), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(615), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29191] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(464), 1,
      sym_block_comment,
    ACTIONS(617), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(619), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29230] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(465), 1,
      sym_block_comment,
    ACTIONS(693), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(695), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29269] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(466), 1,
      sym_block_comment,
    ACTIONS(621), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(623), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29308] = 18,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(291), 1,
      sym_upper_case_qid,
    STATE(467), 1,
      sym_block_comment,
    STATE(522), 1,
      sym_cons_pattern,
    STATE(580), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(501), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [29373] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(468), 1,
      sym_block_comment,
    ACTIONS(625), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(627), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29412] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(469), 1,
      sym_block_comment,
    ACTIONS(629), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(631), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29451] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(470), 1,
      sym_block_comment,
    ACTIONS(653), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(655), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29490] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(471), 1,
      sym_block_comment,
    ACTIONS(489), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(494), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29529] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(472), 1,
      sym_block_comment,
    ACTIONS(657), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(659), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29568] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(473), 1,
      sym_block_comment,
    ACTIONS(661), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(663), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29607] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(474), 1,
      sym_block_comment,
    ACTIONS(665), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(667), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29646] = 18,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(357), 1,
      sym_upper_case_qid,
    STATE(475), 1,
      sym_block_comment,
    STATE(522), 1,
      sym_cons_pattern,
    STATE(550), 1,
      sym__single_pattern_cons,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(501), 9,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_union_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [29711] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(476), 1,
      sym_block_comment,
    ACTIONS(669), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(671), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29750] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(477), 1,
      sym_block_comment,
    ACTIONS(673), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(675), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29789] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(478), 1,
      sym_block_comment,
    ACTIONS(709), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(711), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29828] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(479), 1,
      sym_block_comment,
    ACTIONS(677), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(679), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29867] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(480), 1,
      sym_block_comment,
    ACTIONS(681), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(683), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29906] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(481), 1,
      sym_block_comment,
    ACTIONS(697), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(699), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [29945] = 19,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(845), 1,
      sym_lower_case_identifier,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(947), 1,
      anon_sym_COLON_COLON,
    ACTIONS(949), 1,
      sym_as,
    ACTIONS(951), 1,
      sym_eq,
    ACTIONS(953), 1,
      sym_colon,
    STATE(482), 1,
      sym_block_comment,
    STATE(489), 1,
      aux_sym_function_declaration_left_repeat1,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(554), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [30012] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(483), 1,
      sym_block_comment,
    ACTIONS(633), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(635), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [30051] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(484), 1,
      sym_block_comment,
    ACTIONS(637), 5,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_SLASH,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(639), 20,
      sym__virtual_end_decl,
      anon_sym_COLON_COLON,
      anon_sym_STAR,
      anon_sym_SLASH_SLASH,
      anon_sym_CARET,
      anon_sym_EQ_EQ,
      anon_sym_SLASH_EQ,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_PIPE,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_PIPE,
      anon_sym_PIPE_GT,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_LT_SLASH_GT,
      anon_sym_LT_QMARK_GT,
      anon_sym_PIPE_DOT,
      anon_sym_PIPE_EQ,
  [30090] = 19,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(845), 1,
      sym_lower_case_identifier,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(947), 1,
      anon_sym_COLON_COLON,
    ACTIONS(949), 1,
      sym_as,
    ACTIONS(951), 1,
      sym_eq,
    ACTIONS(955), 1,
      sym_colon,
    STATE(485), 1,
      sym_block_comment,
    STATE(489), 1,
      aux_sym_function_declaration_left_repeat1,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(554), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [30157] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(486), 1,
      sym_block_comment,
    STATE(487), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(999), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(462), 6,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_where,
      sym_as,
      sym_exposing,
    ACTIONS(466), 14,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30200] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(487), 1,
      sym_block_comment,
    STATE(488), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(999), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(468), 6,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_where,
      sym_as,
      sym_exposing,
    ACTIONS(470), 14,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30243] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(999), 1,
      sym__dot_without_leading_whitespace,
    STATE(488), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(472), 6,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_where,
      sym_as,
      sym_exposing,
    ACTIONS(477), 14,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30284] = 16,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(13), 1,
      anon_sym_LBRACE,
    ACTIONS(15), 1,
      anon_sym_SQUOTE,
    ACTIONS(17), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(19), 1,
      anon_sym_DQUOTE,
    ACTIONS(21), 1,
      anon_sym_LBRACK,
    ACTIONS(25), 1,
      sym_number_literal,
    ACTIONS(39), 1,
      sym_underscore,
    ACTIONS(847), 1,
      anon_sym_LPAREN,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    ACTIONS(957), 1,
      sym_eq,
    STATE(489), 1,
      sym_block_comment,
    STATE(490), 1,
      aux_sym_function_declaration_left_repeat1,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(554), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [30342] = 15,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(959), 1,
      sym_lower_case_identifier,
    ACTIONS(962), 1,
      anon_sym_LPAREN,
    ACTIONS(965), 1,
      anon_sym_LBRACE,
    ACTIONS(968), 1,
      anon_sym_SQUOTE,
    ACTIONS(971), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(974), 1,
      anon_sym_DQUOTE,
    ACTIONS(977), 1,
      anon_sym_LBRACK,
    ACTIONS(980), 1,
      sym_number_literal,
    ACTIONS(983), 1,
      sym_eq,
    ACTIONS(985), 1,
      sym_underscore,
    STATE(490), 2,
      sym_block_comment,
      aux_sym_function_declaration_left_repeat1,
    STATE(495), 3,
      sym_char_constant_expr,
      sym_number_constant_expr,
      sym_string_constant_expr,
    STATE(554), 8,
      sym__literal_expr_group,
      sym_unit_expr,
      sym_lower_pattern,
      sym_anything_pattern,
      sym_record_pattern,
      sym_list_pattern,
      sym_tuple_pattern,
      sym__parenthesized_pattern,
  [30398] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(491), 1,
      sym_block_comment,
    ACTIONS(472), 6,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_where,
      sym_as,
      sym_exposing,
    ACTIONS(477), 15,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_DOT,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30433] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(492), 1,
      sym_block_comment,
    ACTIONS(721), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(723), 14,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30465] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(493), 1,
      sym_block_comment,
    ACTIONS(949), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(947), 14,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30497] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(494), 1,
      sym_block_comment,
    ACTIONS(988), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(990), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30528] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(495), 1,
      sym_block_comment,
    ACTIONS(625), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(627), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30559] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(996), 1,
      anon_sym_COLON_COLON,
    STATE(496), 1,
      sym_block_comment,
    ACTIONS(992), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(994), 12,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30592] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(497), 1,
      sym_block_comment,
    ACTIONS(998), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1000), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30623] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(498), 1,
      sym_block_comment,
    ACTIONS(633), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(635), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30654] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(499), 1,
      sym_block_comment,
    ACTIONS(637), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(639), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30685] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(500), 1,
      sym_block_comment,
    ACTIONS(1002), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1004), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30716] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(501), 1,
      sym_block_comment,
    ACTIONS(1006), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(996), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30747] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(502), 1,
      sym_block_comment,
    ACTIONS(621), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(623), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30778] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(503), 1,
      sym_block_comment,
    ACTIONS(1008), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1010), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30809] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(504), 1,
      sym_block_comment,
    ACTIONS(1012), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1014), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30840] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(505), 1,
      sym_block_comment,
    ACTIONS(1016), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1018), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30871] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(506), 1,
      sym_block_comment,
    ACTIONS(1020), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1022), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30902] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(507), 1,
      sym_block_comment,
    ACTIONS(1024), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1026), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30933] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1032), 1,
      sym_import,
    STATE(1051), 1,
      sym_import_clause,
    STATE(508), 2,
      sym_block_comment,
      aux_sym__import_list,
    ACTIONS(1030), 6,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_type,
      sym_port,
      sym_infix,
    ACTIONS(1028), 8,
      ts_builtin_sym_end,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_underscore,
  [30968] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(509), 1,
      sym_block_comment,
    ACTIONS(1035), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1037), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [30999] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(510), 1,
      sym_block_comment,
    ACTIONS(629), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(631), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31030] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(511), 1,
      sym_block_comment,
    ACTIONS(1039), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1041), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31061] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(512), 1,
      sym_block_comment,
    ACTIONS(1043), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1045), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31092] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1010), 1,
      anon_sym_COLON_COLON,
    STATE(513), 1,
      sym_block_comment,
    ACTIONS(1047), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1049), 12,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31125] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(514), 1,
      sym_block_comment,
    ACTIONS(1051), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1053), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COLON_COLON,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31156] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    STATE(515), 1,
      sym_block_comment,
    STATE(518), 1,
      aux_sym_type_ref_repeat1,
    STATE(562), 1,
      sym_upper_case_qid,
    STATE(563), 1,
      sym__single_type_expression,
    STATE(567), 1,
      sym_unit_expr,
    ACTIONS(1059), 4,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_arrow,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31202] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(516), 1,
      sym_block_comment,
    ACTIONS(1065), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(1063), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
  [31232] = 12,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1067), 1,
      sym_lower_case_identifier,
    ACTIONS(1070), 1,
      anon_sym_LPAREN,
    ACTIONS(1075), 1,
      anon_sym_LBRACE,
    ACTIONS(1078), 1,
      sym_upper_case_identifier,
    STATE(562), 1,
      sym_upper_case_qid,
    STATE(563), 1,
      sym__single_type_expression,
    STATE(567), 1,
      sym_unit_expr,
    STATE(517), 2,
      sym_block_comment,
      aux_sym_type_ref_repeat1,
    ACTIONS(1073), 4,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_arrow,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31276] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    STATE(517), 1,
      aux_sym_type_ref_repeat1,
    STATE(518), 1,
      sym_block_comment,
    STATE(562), 1,
      sym_upper_case_qid,
    STATE(563), 1,
      sym__single_type_expression,
    STATE(567), 1,
      sym_unit_expr,
    ACTIONS(1081), 4,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_arrow,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31322] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1087), 1,
      sym_as,
    STATE(519), 1,
      sym_block_comment,
    ACTIONS(1083), 3,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
    ACTIONS(1085), 12,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31354] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1093), 1,
      sym_as,
    STATE(520), 1,
      sym_block_comment,
    ACTIONS(1089), 3,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
    ACTIONS(1091), 12,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31386] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(521), 1,
      sym_block_comment,
    ACTIONS(1097), 2,
      sym_minus_without_trailing_whitespace,
      sym_backslash,
    ACTIONS(1095), 14,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_if,
      anon_sym_let,
      anon_sym_LBRACKglsl_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_case,
      sym_dot,
  [31416] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(522), 1,
      sym_block_comment,
    ACTIONS(1099), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1101), 12,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31446] = 15,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(907), 1,
      anon_sym_RPAREN,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(523), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(622), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(713), 1,
      sym_type_expression,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31495] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1103), 1,
      sym_lower_case_identifier,
    ACTIONS(1105), 1,
      anon_sym_LPAREN,
    ACTIONS(1107), 1,
      anon_sym_LBRACE,
    ACTIONS(1109), 1,
      sym_upper_case_identifier,
    STATE(524), 1,
      sym_block_comment,
    STATE(528), 1,
      aux_sym_type_ref_repeat1,
    STATE(571), 1,
      sym__single_type_expression,
    STATE(574), 1,
      sym_upper_case_qid,
    STATE(579), 1,
      sym_unit_expr,
    ACTIONS(1059), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_arrow,
    STATE(578), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31540] = 12,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1111), 1,
      sym_lower_case_identifier,
    ACTIONS(1114), 1,
      anon_sym_LPAREN,
    ACTIONS(1117), 1,
      anon_sym_LBRACE,
    ACTIONS(1120), 1,
      sym_upper_case_identifier,
    STATE(571), 1,
      sym__single_type_expression,
    STATE(574), 1,
      sym_upper_case_qid,
    STATE(579), 1,
      sym_unit_expr,
    STATE(525), 2,
      sym_block_comment,
      aux_sym_type_ref_repeat1,
    ACTIONS(1073), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_arrow,
    STATE(578), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31583] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(526), 1,
      sym_block_comment,
    ACTIONS(1125), 2,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
    ACTIONS(1123), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31612] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(527), 1,
      sym_block_comment,
    ACTIONS(1030), 7,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_import,
      sym_type,
      sym_port,
      sym_infix,
    ACTIONS(1028), 8,
      ts_builtin_sym_end,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_underscore,
  [31641] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1103), 1,
      sym_lower_case_identifier,
    ACTIONS(1105), 1,
      anon_sym_LPAREN,
    ACTIONS(1107), 1,
      anon_sym_LBRACE,
    ACTIONS(1109), 1,
      sym_upper_case_identifier,
    STATE(525), 1,
      aux_sym_type_ref_repeat1,
    STATE(528), 1,
      sym_block_comment,
    STATE(571), 1,
      sym__single_type_expression,
    STATE(574), 1,
      sym_upper_case_qid,
    STATE(579), 1,
      sym_unit_expr,
    ACTIONS(1081), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_arrow,
    STATE(578), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31686] = 15,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    ACTIONS(1127), 1,
      anon_sym_RPAREN,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(529), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(622), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(733), 1,
      sym_type_expression,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31735] = 15,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    ACTIONS(1129), 1,
      anon_sym_RPAREN,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(530), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(622), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(758), 1,
      sym_type_expression,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31784] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(531), 1,
      sym_block_comment,
    ACTIONS(1133), 2,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
    ACTIONS(1131), 13,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_arrow,
      sym_underscore,
  [31813] = 15,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    ACTIONS(1135), 1,
      anon_sym_RPAREN,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(532), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(622), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(780), 1,
      sym_type_expression,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31862] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(533), 1,
      sym_block_comment,
    STATE(544), 1,
      sym_upper_case_qid,
    STATE(609), 1,
      sym_unit_expr,
    STATE(698), 1,
      sym__type_expression_inner,
    STATE(844), 1,
      sym__single_type_expression,
    STATE(912), 1,
      sym_type_ref,
    STATE(1052), 1,
      sym_type_expression,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31908] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(534), 1,
      sym_block_comment,
    ACTIONS(1145), 6,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_type,
      sym_port,
      sym_infix,
    ACTIONS(765), 8,
      ts_builtin_sym_end,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_underscore,
  [31936] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(535), 1,
      sym_block_comment,
    STATE(544), 1,
      sym_upper_case_qid,
    STATE(609), 1,
      sym_unit_expr,
    STATE(698), 1,
      sym__type_expression_inner,
    STATE(844), 1,
      sym__single_type_expression,
    STATE(912), 1,
      sym_type_ref,
    STATE(940), 1,
      sym_type_expression,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [31982] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1147), 1,
      sym_lower_case_identifier,
    ACTIONS(1149), 1,
      sym_line_comment,
    ACTIONS(1151), 1,
      anon_sym_LPAREN,
    ACTIONS(1155), 1,
      anon_sym_LBRACE,
    ACTIONS(1157), 1,
      sym_upper_case_identifier,
    STATE(536), 1,
      sym_block_comment,
    STATE(542), 1,
      aux_sym_union_variant_repeat1,
    STATE(599), 1,
      sym__single_type_expression,
    STATE(613), 1,
      sym_unit_expr,
    STATE(616), 1,
      sym_upper_case_qid,
    ACTIONS(1153), 2,
      sym__virtual_end_decl,
      anon_sym_PIPE,
    STATE(612), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32026] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(537), 1,
      sym_block_comment,
    STATE(545), 1,
      aux_sym_type_ref_repeat1,
    STATE(592), 1,
      sym_upper_case_qid,
    STATE(605), 1,
      sym__single_type_expression,
    STATE(609), 1,
      sym_unit_expr,
    ACTIONS(1081), 2,
      sym__virtual_end_decl,
      sym_arrow,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32070] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1147), 1,
      sym_lower_case_identifier,
    ACTIONS(1149), 1,
      sym_line_comment,
    ACTIONS(1151), 1,
      anon_sym_LPAREN,
    ACTIONS(1155), 1,
      anon_sym_LBRACE,
    ACTIONS(1157), 1,
      sym_upper_case_identifier,
    STATE(536), 1,
      aux_sym_union_variant_repeat1,
    STATE(538), 1,
      sym_block_comment,
    STATE(599), 1,
      sym__single_type_expression,
    STATE(613), 1,
      sym_unit_expr,
    STATE(616), 1,
      sym_upper_case_qid,
    ACTIONS(1159), 2,
      sym__virtual_end_decl,
      anon_sym_PIPE,
    STATE(612), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32114] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(539), 1,
      sym_block_comment,
    STATE(544), 1,
      sym_upper_case_qid,
    STATE(609), 1,
      sym_unit_expr,
    STATE(698), 1,
      sym__type_expression_inner,
    STATE(844), 1,
      sym__single_type_expression,
    STATE(912), 1,
      sym_type_ref,
    STATE(987), 1,
      sym_type_expression,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32160] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1103), 1,
      sym_lower_case_identifier,
    ACTIONS(1105), 1,
      anon_sym_LPAREN,
    ACTIONS(1107), 1,
      anon_sym_LBRACE,
    ACTIONS(1109), 1,
      sym_upper_case_identifier,
    STATE(524), 1,
      sym_upper_case_qid,
    STATE(540), 1,
      sym_block_comment,
    STATE(579), 1,
      sym_unit_expr,
    STATE(681), 1,
      sym__type_expression_inner,
    STATE(750), 1,
      sym_type_ref,
    STATE(753), 1,
      sym__single_type_expression,
    STATE(858), 1,
      sym_type_expression,
    STATE(578), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32206] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(541), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(622), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(903), 1,
      sym_type_expression,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32252] = 12,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1161), 1,
      sym_lower_case_identifier,
    ACTIONS(1164), 1,
      sym_line_comment,
    ACTIONS(1167), 1,
      anon_sym_LPAREN,
    ACTIONS(1172), 1,
      anon_sym_LBRACE,
    ACTIONS(1175), 1,
      sym_upper_case_identifier,
    STATE(599), 1,
      sym__single_type_expression,
    STATE(613), 1,
      sym_unit_expr,
    STATE(616), 1,
      sym_upper_case_qid,
    ACTIONS(1170), 2,
      sym__virtual_end_decl,
      anon_sym_PIPE,
    STATE(542), 2,
      sym_block_comment,
      aux_sym_union_variant_repeat1,
    STATE(612), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32294] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(543), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(622), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(867), 1,
      sym_type_expression,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32340] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(537), 1,
      aux_sym_type_ref_repeat1,
    STATE(544), 1,
      sym_block_comment,
    STATE(592), 1,
      sym_upper_case_qid,
    STATE(605), 1,
      sym__single_type_expression,
    STATE(609), 1,
      sym_unit_expr,
    ACTIONS(1059), 2,
      sym__virtual_end_decl,
      sym_arrow,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32384] = 12,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1178), 1,
      sym_lower_case_identifier,
    ACTIONS(1181), 1,
      anon_sym_LPAREN,
    ACTIONS(1184), 1,
      anon_sym_LBRACE,
    ACTIONS(1187), 1,
      sym_upper_case_identifier,
    STATE(592), 1,
      sym_upper_case_qid,
    STATE(605), 1,
      sym__single_type_expression,
    STATE(609), 1,
      sym_unit_expr,
    ACTIONS(1073), 2,
      sym__virtual_end_decl,
      sym_arrow,
    STATE(545), 2,
      sym_block_comment,
      aux_sym_type_ref_repeat1,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32426] = 14,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(544), 1,
      sym_upper_case_qid,
    STATE(546), 1,
      sym_block_comment,
    STATE(609), 1,
      sym_unit_expr,
    STATE(698), 1,
      sym__type_expression_inner,
    STATE(844), 1,
      sym__single_type_expression,
    STATE(912), 1,
      sym_type_ref,
    STATE(1005), 1,
      sym_type_expression,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32472] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    ACTIONS(1055), 1,
      sym_lower_case_identifier,
    ACTIONS(1057), 1,
      anon_sym_LPAREN,
    ACTIONS(1061), 1,
      anon_sym_LBRACE,
    STATE(515), 1,
      sym_upper_case_qid,
    STATE(547), 1,
      sym_block_comment,
    STATE(567), 1,
      sym_unit_expr,
    STATE(675), 1,
      sym__type_expression_inner,
    STATE(679), 1,
      sym__single_type_expression,
    STATE(688), 1,
      sym_type_ref,
    STATE(564), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32515] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1137), 1,
      sym_lower_case_identifier,
    ACTIONS(1139), 1,
      anon_sym_LPAREN,
    ACTIONS(1141), 1,
      anon_sym_LBRACE,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(544), 1,
      sym_upper_case_qid,
    STATE(548), 1,
      sym_block_comment,
    STATE(609), 1,
      sym_unit_expr,
    STATE(844), 1,
      sym__single_type_expression,
    STATE(886), 1,
      sym__type_expression_inner,
    STATE(912), 1,
      sym_type_ref,
    STATE(608), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32558] = 13,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1103), 1,
      sym_lower_case_identifier,
    ACTIONS(1105), 1,
      anon_sym_LPAREN,
    ACTIONS(1107), 1,
      anon_sym_LBRACE,
    ACTIONS(1109), 1,
      sym_upper_case_identifier,
    STATE(524), 1,
      sym_upper_case_qid,
    STATE(549), 1,
      sym_block_comment,
    STATE(579), 1,
      sym_unit_expr,
    STATE(701), 1,
      sym__type_expression_inner,
    STATE(750), 1,
      sym_type_ref,
    STATE(753), 1,
      sym__single_type_expression,
    STATE(578), 4,
      sym_type_ref_without_args,
      sym_type_variable,
      sym_record_type,
      sym_tuple_type,
  [32601] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1190), 1,
      anon_sym_COLON_COLON,
    STATE(550), 1,
      sym_block_comment,
    ACTIONS(1099), 4,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
      sym_lower_case_identifier,
      sym_as,
    ACTIONS(1101), 8,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      sym_upper_case_identifier,
      sym_number_literal,
      sym_arrow,
      sym_underscore,
  [32630] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(272), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(551), 1,
      sym_block_comment,
    STATE(994), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(462), 4,
      anon_sym_LBRACE,
      sym_lower_case_identifier,
      sym_as,
      sym_exposing,
    ACTIONS(466), 4,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_arrow,
  [32661] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(552), 1,
      sym_block_comment,
    ACTIONS(1194), 2,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
    ACTIONS(1192), 9,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_arrow,
      sym_underscore,
  [32686] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(462), 1,
      anon_sym_LBRACE,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(271), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(553), 1,
      sym_block_comment,
    STATE(955), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(466), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32716] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(554), 1,
      sym_block_comment,
    ACTIONS(1198), 2,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
    ACTIONS(1196), 8,
      anon_sym_LPAREN,
      anon_sym_SQUOTE,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      anon_sym_LBRACK,
      sym_lower_case_identifier,
      sym_number_literal,
      sym_eq,
      sym_underscore,
  [32740] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(472), 1,
      anon_sym_LBRACE,
    ACTIONS(474), 1,
      anon_sym_DOT,
    STATE(936), 1,
      sym__dot_without_leading_whitespace,
    STATE(555), 2,
      sym_block_comment,
      aux_sym_upper_case_qid_repeat1,
    ACTIONS(477), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [32765] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(462), 1,
      anon_sym_LBRACE,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(556), 1,
      sym_block_comment,
    STATE(557), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(936), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(466), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [32792] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(464), 1,
      anon_sym_DOT,
    ACTIONS(468), 1,
      anon_sym_LBRACE,
    STATE(555), 1,
      aux_sym_upper_case_qid_repeat1,
    STATE(557), 1,
      sym_block_comment,
    STATE(936), 1,
      sym__dot_without_leading_whitespace,
    ACTIONS(470), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [32819] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1202), 1,
      anon_sym_LBRACE,
    STATE(558), 1,
      sym_block_comment,
    ACTIONS(1200), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32841] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1206), 1,
      anon_sym_LBRACE,
    STATE(559), 1,
      sym_block_comment,
    ACTIONS(1204), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32863] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1210), 1,
      anon_sym_LBRACE,
    STATE(560), 1,
      sym_block_comment,
    ACTIONS(1208), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32885] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1212), 1,
      sym_lower_case_identifier,
    ACTIONS(1214), 1,
      anon_sym_LPAREN,
    ACTIONS(1216), 1,
      sym_upper_case_identifier,
    ACTIONS(1218), 1,
      sym_double_dot,
    STATE(561), 1,
      sym_block_comment,
    STATE(854), 1,
      sym__operator_as_function_inner,
    STATE(799), 3,
      sym_exposed_value,
      sym_exposed_type,
      sym_exposed_operator,
  [32915] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1220), 1,
      anon_sym_LBRACE,
    STATE(562), 1,
      sym_block_comment,
    ACTIONS(1059), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32937] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1224), 1,
      anon_sym_LBRACE,
    STATE(563), 1,
      sym_block_comment,
    ACTIONS(1222), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32959] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1228), 1,
      anon_sym_LBRACE,
    STATE(564), 1,
      sym_block_comment,
    ACTIONS(1226), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [32981] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1232), 1,
      anon_sym_LBRACE,
    STATE(565), 1,
      sym_block_comment,
    ACTIONS(1230), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33003] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1236), 1,
      anon_sym_LBRACE,
    STATE(566), 1,
      sym_block_comment,
    ACTIONS(1234), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33025] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1240), 1,
      anon_sym_LBRACE,
    STATE(567), 1,
      sym_block_comment,
    ACTIONS(1238), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33047] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1244), 1,
      anon_sym_LBRACE,
    STATE(568), 1,
      sym_block_comment,
    ACTIONS(1242), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33069] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1248), 1,
      anon_sym_LBRACE,
    STATE(569), 1,
      sym_block_comment,
    ACTIONS(1246), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33091] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1252), 1,
      anon_sym_LBRACE,
    STATE(570), 1,
      sym_block_comment,
    ACTIONS(1250), 7,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33113] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1224), 1,
      anon_sym_LBRACE,
    STATE(571), 1,
      sym_block_comment,
    ACTIONS(1222), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33134] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1202), 1,
      anon_sym_LBRACE,
    STATE(572), 1,
      sym_block_comment,
    ACTIONS(1200), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33155] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1210), 1,
      anon_sym_LBRACE,
    STATE(573), 1,
      sym_block_comment,
    ACTIONS(1208), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33176] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1220), 1,
      anon_sym_LBRACE,
    STATE(574), 1,
      sym_block_comment,
    ACTIONS(1059), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33197] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1232), 1,
      anon_sym_LBRACE,
    STATE(575), 1,
      sym_block_comment,
    ACTIONS(1230), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33218] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1236), 1,
      anon_sym_LBRACE,
    STATE(576), 1,
      sym_block_comment,
    ACTIONS(1234), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33239] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1206), 1,
      anon_sym_LBRACE,
    STATE(577), 1,
      sym_block_comment,
    ACTIONS(1204), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33260] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1228), 1,
      anon_sym_LBRACE,
    STATE(578), 1,
      sym_block_comment,
    ACTIONS(1226), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33281] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1240), 1,
      anon_sym_LBRACE,
    STATE(579), 1,
      sym_block_comment,
    ACTIONS(1238), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33302] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1254), 1,
      anon_sym_COLON_COLON,
    STATE(580), 1,
      sym_block_comment,
    ACTIONS(1101), 6,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      sym_as,
      sym_eq,
      sym_arrow,
  [33323] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1212), 1,
      sym_lower_case_identifier,
    ACTIONS(1214), 1,
      anon_sym_LPAREN,
    ACTIONS(1216), 1,
      sym_upper_case_identifier,
    STATE(581), 1,
      sym_block_comment,
    STATE(854), 1,
      sym__operator_as_function_inner,
    STATE(838), 3,
      sym_exposed_value,
      sym_exposed_type,
      sym_exposed_operator,
  [33350] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1252), 1,
      anon_sym_LBRACE,
    STATE(582), 1,
      sym_block_comment,
    ACTIONS(1250), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33371] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1244), 1,
      anon_sym_LBRACE,
    STATE(583), 1,
      sym_block_comment,
    ACTIONS(1242), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33392] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1248), 1,
      anon_sym_LBRACE,
    STATE(584), 1,
      sym_block_comment,
    ACTIONS(1246), 6,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33413] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(472), 1,
      anon_sym_LBRACE,
    STATE(585), 1,
      sym_block_comment,
    ACTIONS(477), 7,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_DOT,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33432] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1256), 1,
      sym_lower_case_identifier,
    ACTIONS(1258), 1,
      anon_sym_RBRACE,
    STATE(586), 1,
      sym_block_comment,
    STATE(706), 1,
      sym_field,
    STATE(842), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
    STATE(951), 1,
      sym__record_inner,
  [33460] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1252), 1,
      anon_sym_LBRACE,
    STATE(587), 1,
      sym_block_comment,
    ACTIONS(1250), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33480] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1244), 1,
      anon_sym_LBRACE,
    STATE(588), 1,
      sym_block_comment,
    ACTIONS(1242), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33500] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1248), 1,
      anon_sym_LBRACE,
    STATE(589), 1,
      sym_block_comment,
    ACTIONS(1246), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33520] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1256), 1,
      sym_lower_case_identifier,
    ACTIONS(1260), 1,
      anon_sym_RBRACE,
    STATE(590), 1,
      sym_block_comment,
    STATE(706), 1,
      sym_field,
    STATE(842), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
    STATE(968), 1,
      sym__record_inner,
  [33548] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(721), 1,
      anon_sym_LBRACE,
    STATE(591), 1,
      sym_block_comment,
    ACTIONS(723), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33566] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1220), 1,
      anon_sym_LBRACE,
    STATE(592), 1,
      sym_block_comment,
    ACTIONS(1059), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33586] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1210), 1,
      anon_sym_LBRACE,
    STATE(593), 1,
      sym_block_comment,
    ACTIONS(1208), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33606] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1256), 1,
      sym_lower_case_identifier,
    ACTIONS(1262), 1,
      anon_sym_RBRACE,
    STATE(594), 1,
      sym_block_comment,
    STATE(706), 1,
      sym_field,
    STATE(842), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
    STATE(982), 1,
      sym__record_inner,
  [33634] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1256), 1,
      sym_lower_case_identifier,
    ACTIONS(1264), 1,
      anon_sym_RBRACE,
    STATE(595), 1,
      sym_block_comment,
    STATE(706), 1,
      sym_field,
    STATE(842), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
    STATE(1008), 1,
      sym__record_inner,
  [33662] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1268), 1,
      anon_sym_LBRACE,
    STATE(596), 1,
      sym_block_comment,
    ACTIONS(1266), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33680] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1236), 1,
      anon_sym_LBRACE,
    STATE(597), 1,
      sym_block_comment,
    ACTIONS(1234), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33700] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1232), 1,
      anon_sym_LBRACE,
    STATE(598), 1,
      sym_block_comment,
    ACTIONS(1230), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33718] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1272), 1,
      anon_sym_LBRACE,
    STATE(599), 1,
      sym_block_comment,
    ACTIONS(1270), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33736] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1252), 1,
      anon_sym_LBRACE,
    STATE(600), 1,
      sym_block_comment,
    ACTIONS(1250), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33754] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1244), 1,
      anon_sym_LBRACE,
    STATE(601), 1,
      sym_block_comment,
    ACTIONS(1242), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33772] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1248), 1,
      anon_sym_LBRACE,
    STATE(602), 1,
      sym_block_comment,
    ACTIONS(1246), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33790] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1256), 1,
      sym_lower_case_identifier,
    ACTIONS(1274), 1,
      anon_sym_RBRACE,
    STATE(603), 1,
      sym_block_comment,
    STATE(706), 1,
      sym_field,
    STATE(842), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
    STATE(1012), 1,
      sym__record_inner,
  [33818] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1202), 1,
      anon_sym_LBRACE,
    STATE(604), 1,
      sym_block_comment,
    ACTIONS(1200), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33838] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1224), 1,
      anon_sym_LBRACE,
    STATE(605), 1,
      sym_block_comment,
    ACTIONS(1222), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33858] = 9,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1256), 1,
      sym_lower_case_identifier,
    ACTIONS(1276), 1,
      anon_sym_RBRACE,
    STATE(606), 1,
      sym_block_comment,
    STATE(706), 1,
      sym_field,
    STATE(842), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
    STATE(934), 1,
      sym__record_inner,
  [33886] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1206), 1,
      anon_sym_LBRACE,
    STATE(607), 1,
      sym_block_comment,
    ACTIONS(1204), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33906] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1228), 1,
      anon_sym_LBRACE,
    STATE(608), 1,
      sym_block_comment,
    ACTIONS(1226), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33926] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1240), 1,
      anon_sym_LBRACE,
    STATE(609), 1,
      sym_block_comment,
    ACTIONS(1238), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33946] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1232), 1,
      anon_sym_LBRACE,
    STATE(610), 1,
      sym_block_comment,
    ACTIONS(1230), 5,
      sym__virtual_end_decl,
      anon_sym_LPAREN,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
      sym_arrow,
  [33966] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1206), 1,
      anon_sym_LBRACE,
    STATE(611), 1,
      sym_block_comment,
    ACTIONS(1204), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [33984] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1228), 1,
      anon_sym_LBRACE,
    STATE(612), 1,
      sym_block_comment,
    ACTIONS(1226), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [34002] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1240), 1,
      anon_sym_LBRACE,
    STATE(613), 1,
      sym_block_comment,
    ACTIONS(1238), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [34020] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1236), 1,
      anon_sym_LBRACE,
    STATE(614), 1,
      sym_block_comment,
    ACTIONS(1234), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [34038] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1210), 1,
      anon_sym_LBRACE,
    STATE(615), 1,
      sym_block_comment,
    ACTIONS(1208), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [34056] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1220), 1,
      anon_sym_LBRACE,
    STATE(616), 1,
      sym_block_comment,
    ACTIONS(1059), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [34074] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(1202), 1,
      anon_sym_LBRACE,
    STATE(617), 1,
      sym_block_comment,
    ACTIONS(1200), 6,
      sym__virtual_end_decl,
      sym_line_comment,
      anon_sym_LPAREN,
      anon_sym_PIPE,
      sym_upper_case_identifier,
      sym_lower_case_identifier,
  [34092] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1278), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    STATE(618), 1,
      sym_block_comment,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34115] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1284), 1,
      anon_sym_DQUOTE,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    STATE(619), 1,
      sym_block_comment,
    STATE(631), 1,
      aux_sym_string_constant_expr_repeat2,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34138] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1290), 1,
      anon_sym_RPAREN,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1294), 1,
      sym__virtual_end_section,
    STATE(620), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(875), 1,
      sym__more_case_of_branches,
  [34163] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1296), 1,
      anon_sym_DQUOTE,
    ACTIONS(1298), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1301), 2,
      sym_string_escape,
      sym_invalid_string_escape,
    STATE(621), 2,
      sym_block_comment,
      aux_sym_string_constant_expr_repeat2,
  [34184] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1306), 1,
      sym_arrow,
    STATE(622), 1,
      sym_block_comment,
    STATE(650), 1,
      aux_sym_type_expression_repeat1,
    ACTIONS(1304), 3,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
  [34205] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1308), 1,
      anon_sym_DQUOTE,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(623), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34228] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1310), 1,
      anon_sym_DQUOTE,
    STATE(623), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(624), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34251] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1312), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(625), 1,
      sym_block_comment,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34274] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1314), 1,
      anon_sym_RPAREN,
    ACTIONS(1316), 1,
      sym__virtual_end_section,
    STATE(626), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(864), 1,
      sym__more_case_of_branches,
  [34299] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1318), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(618), 1,
      aux_sym_string_constant_expr_repeat1,
    STATE(627), 1,
      sym_block_comment,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34322] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1318), 1,
      anon_sym_DQUOTE,
    STATE(628), 1,
      sym_block_comment,
    STATE(630), 1,
      aux_sym_string_constant_expr_repeat2,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34345] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1320), 1,
      sym_as,
    ACTIONS(1322), 1,
      sym_exposing,
    ACTIONS(1324), 1,
      sym__virtual_end_decl,
    STATE(629), 1,
      sym_block_comment,
    STATE(729), 1,
      sym_as_clause,
    STATE(935), 1,
      sym_exposing_list,
  [34370] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1278), 1,
      anon_sym_DQUOTE,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(630), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34393] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1312), 1,
      anon_sym_DQUOTE,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(631), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34416] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1326), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(632), 1,
      sym_block_comment,
    STATE(636), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34439] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1326), 1,
      anon_sym_DQUOTE,
    STATE(633), 1,
      sym_block_comment,
    STATE(641), 1,
      aux_sym_string_constant_expr_repeat2,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34462] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1328), 1,
      anon_sym_RPAREN,
    ACTIONS(1330), 1,
      sym__virtual_end_section,
    STATE(634), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(834), 1,
      sym__more_case_of_branches,
  [34487] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1334), 1,
      sym_arrow,
    STATE(635), 2,
      sym_block_comment,
      aux_sym_type_expression_repeat1,
    ACTIONS(1332), 3,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
  [34506] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1337), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(636), 1,
      sym_block_comment,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34529] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1339), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(637), 1,
      sym_block_comment,
    STATE(639), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34552] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1341), 1,
      sym_lower_case_identifier,
    ACTIONS(1343), 1,
      anon_sym_RBRACE,
    STATE(638), 1,
      sym_block_comment,
    STATE(759), 1,
      sym_field_type,
    STATE(885), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
  [34577] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1345), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(639), 1,
      sym_block_comment,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34600] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1345), 1,
      anon_sym_DQUOTE,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(640), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34623] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1337), 1,
      anon_sym_DQUOTE,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(641), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34646] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1347), 1,
      anon_sym_RPAREN,
    ACTIONS(1349), 1,
      sym__virtual_end_section,
    STATE(642), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(853), 1,
      sym__more_case_of_branches,
  [34671] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1341), 1,
      sym_lower_case_identifier,
    ACTIONS(1351), 1,
      anon_sym_RBRACE,
    STATE(643), 1,
      sym_block_comment,
    STATE(789), 1,
      sym_field_type,
    STATE(839), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
  [34696] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1341), 1,
      sym_lower_case_identifier,
    ACTIONS(1353), 1,
      anon_sym_RBRACE,
    STATE(644), 1,
      sym_block_comment,
    STATE(734), 1,
      sym_field_type,
    STATE(878), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
  [34721] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1355), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(645), 1,
      sym_block_comment,
    STATE(647), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34744] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1355), 1,
      anon_sym_DQUOTE,
    STATE(646), 1,
      sym_block_comment,
    STATE(648), 1,
      aux_sym_string_constant_expr_repeat2,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34767] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1357), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(647), 1,
      sym_block_comment,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34790] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1357), 1,
      anon_sym_DQUOTE,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(648), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34813] = 6,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1359), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    ACTIONS(1361), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1364), 2,
      sym_string_escape,
      sym_invalid_string_escape,
    STATE(649), 2,
      sym_block_comment,
      aux_sym_string_constant_expr_repeat1,
  [34834] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1306), 1,
      sym_arrow,
    STATE(635), 1,
      aux_sym_type_expression_repeat1,
    STATE(650), 1,
      sym_block_comment,
    ACTIONS(1367), 3,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
  [34855] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1284), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(625), 1,
      aux_sym_string_constant_expr_repeat1,
    STATE(651), 1,
      sym_block_comment,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34878] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1369), 1,
      anon_sym_RPAREN,
    ACTIONS(1371), 1,
      sym__virtual_end_section,
    STATE(652), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(880), 1,
      sym__more_case_of_branches,
  [34903] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1310), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(653), 1,
      sym_block_comment,
    STATE(655), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34926] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1373), 1,
      sym_lower_case_identifier,
    ACTIONS(1375), 1,
      sym_upper_case_identifier,
    STATE(654), 1,
      sym_block_comment,
    STATE(941), 1,
      sym_value_expr,
    STATE(440), 2,
      sym_upper_case_qid,
      sym_value_qid,
  [34949] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1308), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    STATE(655), 1,
      sym_block_comment,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [34972] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1341), 1,
      sym_lower_case_identifier,
    ACTIONS(1377), 1,
      anon_sym_RBRACE,
    STATE(656), 1,
      sym_block_comment,
    STATE(714), 1,
      sym_field_type,
    STATE(866), 1,
      sym__record_base,
    STATE(924), 1,
      sym_record_base_identifier,
  [34997] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1379), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(657), 1,
      sym_block_comment,
    STATE(660), 1,
      aux_sym_string_constant_expr_repeat1,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [35020] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1379), 1,
      anon_sym_DQUOTE,
    STATE(658), 1,
      sym_block_comment,
    STATE(661), 1,
      aux_sym_string_constant_expr_repeat2,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [35043] = 8,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1381), 1,
      anon_sym_RPAREN,
    ACTIONS(1383), 1,
      sym__virtual_end_section,
    STATE(659), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(841), 1,
      sym__more_case_of_branches,
  [35068] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1280), 1,
      aux_sym_string_constant_expr_token1,
    ACTIONS(1385), 1,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
    STATE(649), 1,
      aux_sym_string_constant_expr_repeat1,
    STATE(660), 1,
      sym_block_comment,
    ACTIONS(1282), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [35091] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1385), 1,
      anon_sym_DQUOTE,
    STATE(621), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(661), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [35114] = 7,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1286), 1,
      aux_sym_string_constant_expr_token2,
    ACTIONS(1339), 1,
      anon_sym_DQUOTE,
    STATE(640), 1,
      aux_sym_string_constant_expr_repeat2,
    STATE(662), 1,
      sym_block_comment,
    ACTIONS(1288), 2,
      sym_string_escape,
      sym_invalid_string_escape,
  [35137] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1387), 1,
      sym_lower_case_identifier,
    ACTIONS(1389), 1,
      sym_eq,
    STATE(663), 1,
      sym_block_comment,
    STATE(671), 1,
      aux_sym_type_declaration_repeat1,
    STATE(874), 1,
      sym_lower_type_name,
  [35159] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1391), 1,
      sym__virtual_end_section,
    STATE(664), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(946), 1,
      sym__more_case_of_branches,
  [35181] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1387), 1,
      sym_lower_case_identifier,
    ACTIONS(1393), 1,
      sym_eq,
    STATE(663), 1,
      aux_sym_type_declaration_repeat1,
    STATE(665), 1,
      sym_block_comment,
    STATE(874), 1,
      sym_lower_type_name,
  [35203] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1395), 1,
      anon_sym_PIPE,
    ACTIONS(1397), 1,
      sym__virtual_end_decl,
    STATE(666), 1,
      sym_block_comment,
    STATE(672), 1,
      aux_sym_type_declaration_repeat2,
    STATE(863), 1,
      sym__more_union_variants,
  [35225] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1399), 1,
      anon_sym_PIPE,
    ACTIONS(1402), 1,
      sym__virtual_end_decl,
    STATE(863), 1,
      sym__more_union_variants,
    STATE(667), 2,
      sym_block_comment,
      aux_sym_type_declaration_repeat2,
  [35245] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1395), 1,
      anon_sym_PIPE,
    ACTIONS(1404), 1,
      sym__virtual_end_decl,
    STATE(667), 1,
      aux_sym_type_declaration_repeat2,
    STATE(668), 1,
      sym_block_comment,
    STATE(863), 1,
      sym__more_union_variants,
  [35267] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1387), 1,
      sym_lower_case_identifier,
    ACTIONS(1406), 1,
      sym_eq,
    STATE(669), 1,
      sym_block_comment,
    STATE(671), 1,
      aux_sym_type_declaration_repeat1,
    STATE(874), 1,
      sym_lower_type_name,
  [35289] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(354), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(443), 1,
      sym__field_access_segment,
    STATE(670), 1,
      sym_block_comment,
    STATE(986), 1,
      sym__dot_without_leading_whitespace,
  [35311] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1408), 1,
      sym_lower_case_identifier,
    ACTIONS(1411), 1,
      sym_eq,
    STATE(874), 1,
      sym_lower_type_name,
    STATE(671), 2,
      sym_block_comment,
      aux_sym_type_declaration_repeat1,
  [35331] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1395), 1,
      anon_sym_PIPE,
    ACTIONS(1413), 1,
      sym__virtual_end_decl,
    STATE(667), 1,
      aux_sym_type_declaration_repeat2,
    STATE(672), 1,
      sym_block_comment,
    STATE(863), 1,
      sym__more_union_variants,
  [35353] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1395), 1,
      anon_sym_PIPE,
    ACTIONS(1415), 1,
      sym__virtual_end_decl,
    STATE(668), 1,
      aux_sym_type_declaration_repeat2,
    STATE(673), 1,
      sym_block_comment,
    STATE(863), 1,
      sym__more_union_variants,
  [35375] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1419), 1,
      aux_sym_string_constant_expr_token2,
    STATE(674), 1,
      sym_block_comment,
    ACTIONS(1417), 3,
      anon_sym_DQUOTE,
      sym_string_escape,
      sym_invalid_string_escape,
  [35393] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(675), 1,
      sym_block_comment,
    ACTIONS(1421), 4,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_arrow,
  [35409] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(94), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(155), 1,
      sym__field_access_segment,
    STATE(676), 1,
      sym_block_comment,
    STATE(1017), 1,
      sym__dot_without_leading_whitespace,
  [35431] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1423), 1,
      sym__virtual_end_section,
    STATE(677), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(1056), 1,
      sym__more_case_of_branches,
  [35453] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(137), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(213), 1,
      sym__field_access_segment,
    STATE(678), 1,
      sym_block_comment,
    STATE(954), 1,
      sym__dot_without_leading_whitespace,
  [35475] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(679), 1,
      sym_block_comment,
    ACTIONS(1425), 4,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_arrow,
  [35491] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(270), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(293), 1,
      sym__field_access_segment,
    STATE(680), 1,
      sym_block_comment,
    STATE(958), 1,
      sym__dot_without_leading_whitespace,
  [35513] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1427), 1,
      sym_arrow,
    STATE(681), 1,
      sym_block_comment,
    STATE(687), 1,
      aux_sym_type_expression_repeat1,
    ACTIONS(1304), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [35533] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1429), 1,
      sym__virtual_end_section,
    STATE(682), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(980), 1,
      sym__more_case_of_branches,
  [35555] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1431), 1,
      sym__virtual_end_section,
    STATE(683), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(921), 1,
      sym__more_case_of_branches,
  [35577] = 5,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    ACTIONS(1435), 1,
      aux_sym_string_constant_expr_token1,
    STATE(684), 1,
      sym_block_comment,
    ACTIONS(1433), 3,
      anon_sym_DQUOTE_DQUOTE_DQUOTE,
      sym_string_escape,
      sym_invalid_string_escape,
  [35595] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1387), 1,
      sym_lower_case_identifier,
    ACTIONS(1437), 1,
      sym_eq,
    STATE(669), 1,
      aux_sym_type_declaration_repeat1,
    STATE(685), 1,
      sym_block_comment,
    STATE(874), 1,
      sym_lower_type_name,
  [35617] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1439), 1,
      anon_sym_LPAREN,
    STATE(686), 1,
      sym_block_comment,
    STATE(852), 1,
      sym_exposed_union_constructors,
    ACTIONS(1441), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [35637] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1427), 1,
      sym_arrow,
    STATE(687), 1,
      sym_block_comment,
    STATE(693), 1,
      aux_sym_type_expression_repeat1,
    ACTIONS(1367), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [35657] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(688), 1,
      sym_block_comment,
    ACTIONS(1443), 4,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_RBRACE,
      sym_arrow,
  [35673] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(20), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(37), 1,
      sym__field_access_segment,
    STATE(689), 1,
      sym_block_comment,
    STATE(992), 1,
      sym__dot_without_leading_whitespace,
  [35695] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1445), 1,
      sym__virtual_end_section,
    STATE(690), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(1054), 1,
      sym__more_case_of_branches,
  [35717] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    ACTIONS(1447), 1,
      sym__virtual_end_section,
    STATE(691), 1,
      sym_block_comment,
    STATE(695), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(1027), 1,
      sym__more_case_of_branches,
  [35739] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1451), 1,
      sym__virtual_end_decl,
    ACTIONS(1449), 2,
      sym__virtual_end_section,
      anon_sym_RPAREN,
    STATE(692), 2,
      sym_block_comment,
      aux_sym__more_case_of_branches_repeat1,
  [35757] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1454), 1,
      sym_arrow,
    ACTIONS(1332), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
    STATE(693), 2,
      sym_block_comment,
      aux_sym_type_expression_repeat1,
  [35775] = 7,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(301), 1,
      aux_sym_field_access_expr_repeat1,
    STATE(369), 1,
      sym__field_access_segment,
    STATE(694), 1,
      sym_block_comment,
    STATE(937), 1,
      sym__dot_without_leading_whitespace,
  [35797] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1292), 1,
      sym__virtual_end_decl,
    STATE(692), 1,
      aux_sym__more_case_of_branches_repeat1,
    STATE(695), 1,
      sym_block_comment,
    ACTIONS(1457), 2,
      sym__virtual_end_section,
      anon_sym_RPAREN,
  [35817] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1459), 1,
      anon_sym_COMMA,
    ACTIONS(1461), 1,
      anon_sym_RBRACK,
    STATE(696), 1,
      sym_block_comment,
    STATE(779), 1,
      aux_sym_list_pattern_repeat1,
  [35836] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1465), 1,
      sym__virtual_end_section,
    STATE(697), 1,
      sym_block_comment,
    STATE(756), 1,
      aux_sym_let_in_expr_repeat1,
  [35855] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1304), 1,
      sym__virtual_end_decl,
    ACTIONS(1467), 1,
      sym_arrow,
    STATE(698), 1,
      sym_block_comment,
    STATE(803), 1,
      aux_sym_type_expression_repeat1,
  [35874] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1469), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1471), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(699), 1,
      sym_block_comment,
    STATE(773), 1,
      aux_sym_value_qid_repeat1,
  [35893] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1475), 1,
      anon_sym_RPAREN,
    STATE(700), 1,
      sym_block_comment,
    STATE(818), 1,
      aux_sym_tuple_expr_repeat1,
  [35912] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(701), 1,
      sym_block_comment,
    ACTIONS(1421), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_arrow,
  [35927] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1477), 1,
      anon_sym_else,
    STATE(450), 1,
      sym__else,
    STATE(702), 1,
      sym_block_comment,
    STATE(894), 1,
      aux_sym_if_else_expr_repeat1,
  [35946] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1479), 1,
      anon_sym_COMMA,
    ACTIONS(1481), 1,
      anon_sym_RBRACE,
    STATE(703), 1,
      sym_block_comment,
    STATE(777), 1,
      aux_sym_record_pattern_repeat1,
  [35965] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1483), 1,
      anon_sym_COMMA,
    ACTIONS(1486), 1,
      anon_sym_RPAREN,
    STATE(704), 2,
      sym_block_comment,
      aux_sym_tuple_pattern_repeat1,
  [35982] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1488), 1,
      anon_sym_COMMA,
    ACTIONS(1491), 1,
      anon_sym_RPAREN,
    STATE(705), 2,
      sym_block_comment,
      aux_sym_tuple_type_repeat1,
  [35999] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1493), 1,
      anon_sym_COMMA,
    ACTIONS(1495), 1,
      anon_sym_RBRACE,
    STATE(706), 1,
      sym_block_comment,
    STATE(825), 1,
      aux_sym__record_inner_repeat1,
  [36018] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1499), 1,
      anon_sym_RBRACK,
    STATE(707), 1,
      sym_block_comment,
    STATE(768), 1,
      aux_sym_list_expr_repeat1,
  [36037] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1501), 1,
      anon_sym_else,
    STATE(317), 1,
      sym__else,
    STATE(708), 1,
      sym_block_comment,
    STATE(894), 1,
      aux_sym_if_else_expr_repeat1,
  [36056] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1503), 1,
      anon_sym_COMMA,
    ACTIONS(1506), 1,
      anon_sym_RBRACE,
    STATE(709), 2,
      sym_block_comment,
      aux_sym_record_type_repeat1,
  [36073] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1508), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1510), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(699), 1,
      aux_sym_value_qid_repeat1,
    STATE(710), 1,
      sym_block_comment,
  [36092] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1514), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(711), 1,
      sym_block_comment,
  [36111] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(712), 1,
      sym_block_comment,
    ACTIONS(1516), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [36126] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1520), 1,
      anon_sym_RPAREN,
    STATE(713), 1,
      sym_block_comment,
    STATE(719), 1,
      aux_sym_tuple_type_repeat1,
  [36145] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1522), 1,
      anon_sym_RBRACE,
    STATE(714), 1,
      sym_block_comment,
    STATE(720), 1,
      aux_sym_record_type_repeat1,
  [36164] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1524), 1,
      anon_sym_RPAREN,
    STATE(715), 1,
      sym_block_comment,
    STATE(818), 1,
      aux_sym_tuple_expr_repeat1,
  [36183] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1526), 1,
      anon_sym_RBRACK,
    STATE(716), 1,
      sym_block_comment,
    STATE(723), 1,
      aux_sym_list_expr_repeat1,
  [36202] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1528), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1530), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(717), 1,
      sym_block_comment,
    STATE(724), 1,
      aux_sym_value_qid_repeat1,
  [36221] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1501), 1,
      anon_sym_else,
    STATE(304), 1,
      sym__else,
    STATE(708), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(718), 1,
      sym_block_comment,
  [36240] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1532), 1,
      anon_sym_RPAREN,
    STATE(705), 1,
      aux_sym_tuple_type_repeat1,
    STATE(719), 1,
      sym_block_comment,
  [36259] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1534), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(720), 1,
      sym_block_comment,
  [36278] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1536), 1,
      anon_sym_RBRACE,
    STATE(721), 1,
      sym_block_comment,
    STATE(727), 1,
      aux_sym_record_type_repeat1,
  [36297] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1538), 1,
      anon_sym_RPAREN,
    STATE(722), 1,
      sym_block_comment,
    STATE(732), 1,
      aux_sym_tuple_expr_repeat1,
  [36316] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1540), 1,
      anon_sym_RBRACK,
    STATE(723), 1,
      sym_block_comment,
    STATE(752), 1,
      aux_sym_list_expr_repeat1,
  [36335] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1469), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1542), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(724), 1,
      sym_block_comment,
    STATE(773), 1,
      aux_sym_value_qid_repeat1,
  [36354] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1544), 1,
      anon_sym_COMMA,
    ACTIONS(1546), 1,
      anon_sym_RPAREN,
    STATE(725), 1,
      sym_block_comment,
    STATE(790), 1,
      aux_sym_exposing_list_repeat1,
  [36373] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1548), 1,
      anon_sym_else,
    STATE(241), 1,
      sym__else,
    STATE(726), 1,
      sym_block_comment,
    STATE(894), 1,
      aux_sym_if_else_expr_repeat1,
  [36392] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1550), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(727), 1,
      sym_block_comment,
  [36411] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(304), 1,
      sym__else,
    STATE(708), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(728), 1,
      sym_block_comment,
  [36430] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1322), 1,
      sym_exposing,
    ACTIONS(1554), 1,
      sym__virtual_end_decl,
    STATE(729), 1,
      sym_block_comment,
    STATE(991), 1,
      sym_exposing_list,
  [36449] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1556), 1,
      anon_sym_else,
    STATE(81), 1,
      sym__else,
    STATE(730), 1,
      sym_block_comment,
    STATE(894), 1,
      aux_sym_if_else_expr_repeat1,
  [36468] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1477), 1,
      anon_sym_else,
    STATE(472), 1,
      sym__else,
    STATE(702), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(731), 1,
      sym_block_comment,
  [36487] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1558), 1,
      anon_sym_COMMA,
    ACTIONS(1561), 1,
      anon_sym_RPAREN,
    STATE(732), 2,
      sym_block_comment,
      aux_sym_tuple_expr_repeat1,
  [36504] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1563), 1,
      anon_sym_RPAREN,
    STATE(733), 1,
      sym_block_comment,
    STATE(740), 1,
      aux_sym_tuple_type_repeat1,
  [36523] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1565), 1,
      anon_sym_RBRACE,
    STATE(734), 1,
      sym_block_comment,
    STATE(741), 1,
      aux_sym_record_type_repeat1,
  [36542] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1567), 1,
      anon_sym_RPAREN,
    STATE(722), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(735), 1,
      sym_block_comment,
  [36561] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1569), 1,
      anon_sym_RBRACK,
    STATE(736), 1,
      sym_block_comment,
    STATE(744), 1,
      aux_sym_list_expr_repeat1,
  [36580] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1571), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1573), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(737), 1,
      sym_block_comment,
    STATE(745), 1,
      aux_sym_value_qid_repeat1,
  [36599] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1493), 1,
      anon_sym_COMMA,
    ACTIONS(1575), 1,
      anon_sym_RBRACE,
    STATE(738), 1,
      sym_block_comment,
    STATE(749), 1,
      aux_sym__record_inner_repeat1,
  [36618] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1548), 1,
      anon_sym_else,
    STATE(233), 1,
      sym__else,
    STATE(726), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(739), 1,
      sym_block_comment,
  [36637] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1577), 1,
      anon_sym_RPAREN,
    STATE(705), 1,
      aux_sym_tuple_type_repeat1,
    STATE(740), 1,
      sym_block_comment,
  [36656] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1579), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(741), 1,
      sym_block_comment,
  [36675] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1581), 1,
      anon_sym_RBRACE,
    STATE(742), 1,
      sym_block_comment,
    STATE(746), 1,
      aux_sym_record_type_repeat1,
  [36694] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1583), 1,
      anon_sym_RPAREN,
    STATE(732), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(743), 1,
      sym_block_comment,
  [36713] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1585), 1,
      anon_sym_RBRACK,
    STATE(744), 1,
      sym_block_comment,
    STATE(752), 1,
      aux_sym_list_expr_repeat1,
  [36732] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1469), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1587), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(745), 1,
      sym_block_comment,
    STATE(773), 1,
      aux_sym_value_qid_repeat1,
  [36751] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1589), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(746), 1,
      sym_block_comment,
  [36770] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(233), 1,
      sym__else,
    STATE(726), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(747), 1,
      sym_block_comment,
  [36789] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1591), 1,
      anon_sym_COMMA,
    ACTIONS(1593), 1,
      anon_sym_RPAREN,
    STATE(704), 1,
      aux_sym_tuple_pattern_repeat1,
    STATE(748), 1,
      sym_block_comment,
  [36808] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1595), 1,
      anon_sym_COMMA,
    ACTIONS(1598), 1,
      anon_sym_RBRACE,
    STATE(749), 2,
      sym_block_comment,
      aux_sym__record_inner_repeat1,
  [36825] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(750), 1,
      sym_block_comment,
    ACTIONS(1443), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_arrow,
  [36840] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1600), 1,
      anon_sym_else,
    STATE(399), 1,
      sym__else,
    STATE(751), 1,
      sym_block_comment,
    STATE(894), 1,
      aux_sym_if_else_expr_repeat1,
  [36859] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1602), 1,
      anon_sym_COMMA,
    ACTIONS(1605), 1,
      anon_sym_RBRACK,
    STATE(752), 2,
      sym_block_comment,
      aux_sym_list_expr_repeat1,
  [36876] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(753), 1,
      sym_block_comment,
    ACTIONS(1425), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      sym_arrow,
  [36891] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(754), 1,
      sym_block_comment,
    ACTIONS(1607), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
  [36906] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1609), 1,
      anon_sym_RPAREN,
    STATE(705), 1,
      aux_sym_tuple_type_repeat1,
    STATE(755), 1,
      sym_block_comment,
  [36925] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1611), 1,
      sym__virtual_end_section,
    STATE(756), 1,
      sym_block_comment,
    STATE(821), 1,
      aux_sym_let_in_expr_repeat1,
  [36944] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1591), 1,
      anon_sym_COMMA,
    ACTIONS(1613), 1,
      anon_sym_RPAREN,
    STATE(748), 1,
      aux_sym_tuple_pattern_repeat1,
    STATE(757), 1,
      sym_block_comment,
  [36963] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1615), 1,
      anon_sym_RPAREN,
    STATE(758), 1,
      sym_block_comment,
    STATE(764), 1,
      aux_sym_tuple_type_repeat1,
  [36982] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1617), 1,
      anon_sym_RBRACE,
    STATE(759), 1,
      sym_block_comment,
    STATE(765), 1,
      aux_sym_record_type_repeat1,
  [37001] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1619), 1,
      anon_sym_RPAREN,
    STATE(722), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(760), 1,
      sym_block_comment,
  [37020] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1621), 1,
      anon_sym_RBRACK,
    STATE(761), 1,
      sym_block_comment,
    STATE(828), 1,
      aux_sym_list_expr_repeat1,
  [37039] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1623), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1625), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(762), 1,
      sym_block_comment,
    STATE(769), 1,
      aux_sym_value_qid_repeat1,
  [37058] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1556), 1,
      anon_sym_else,
    STATE(74), 1,
      sym__else,
    STATE(730), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(763), 1,
      sym_block_comment,
  [37077] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1627), 1,
      anon_sym_RPAREN,
    STATE(705), 1,
      aux_sym_tuple_type_repeat1,
    STATE(764), 1,
      sym_block_comment,
  [37096] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1629), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(765), 1,
      sym_block_comment,
  [37115] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1631), 1,
      anon_sym_RBRACE,
    STATE(766), 1,
      sym_block_comment,
    STATE(770), 1,
      aux_sym_record_type_repeat1,
  [37134] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1633), 1,
      anon_sym_RPAREN,
    STATE(732), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(767), 1,
      sym_block_comment,
  [37153] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1635), 1,
      anon_sym_RBRACK,
    STATE(752), 1,
      aux_sym_list_expr_repeat1,
    STATE(768), 1,
      sym_block_comment,
  [37172] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1469), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1637), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(769), 1,
      sym_block_comment,
    STATE(773), 1,
      aux_sym_value_qid_repeat1,
  [37191] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1639), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(770), 1,
      sym_block_comment,
  [37210] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1641), 1,
      anon_sym_RBRACE,
    STATE(709), 1,
      aux_sym_record_type_repeat1,
    STATE(771), 1,
      sym_block_comment,
  [37229] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(74), 1,
      sym__else,
    STATE(730), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(772), 1,
      sym_block_comment,
  [37248] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1643), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1646), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(773), 2,
      sym_block_comment,
      aux_sym_value_qid_repeat1,
  [37265] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1648), 1,
      anon_sym_RBRACE,
    STATE(711), 1,
      aux_sym_record_type_repeat1,
    STATE(774), 1,
      sym_block_comment,
  [37284] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1650), 1,
      anon_sym_else,
    STATE(176), 1,
      sym__else,
    STATE(775), 1,
      sym_block_comment,
    STATE(894), 1,
      aux_sym_if_else_expr_repeat1,
  [37303] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1332), 1,
      sym__virtual_end_decl,
    ACTIONS(1652), 1,
      sym_arrow,
    STATE(776), 2,
      sym_block_comment,
      aux_sym_type_expression_repeat1,
  [37320] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1655), 1,
      anon_sym_COMMA,
    ACTIONS(1658), 1,
      anon_sym_RBRACE,
    STATE(777), 2,
      sym_block_comment,
      aux_sym_record_pattern_repeat1,
  [37337] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1660), 1,
      anon_sym_COMMA,
    ACTIONS(1663), 1,
      anon_sym_RBRACK,
    STATE(778), 2,
      sym_block_comment,
      aux_sym_list_pattern_repeat1,
  [37354] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1459), 1,
      anon_sym_COMMA,
    ACTIONS(1665), 1,
      anon_sym_RBRACK,
    STATE(778), 1,
      aux_sym_list_pattern_repeat1,
    STATE(779), 1,
      sym_block_comment,
  [37373] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1518), 1,
      anon_sym_COMMA,
    ACTIONS(1667), 1,
      anon_sym_RPAREN,
    STATE(755), 1,
      aux_sym_tuple_type_repeat1,
    STATE(780), 1,
      sym_block_comment,
  [37392] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1567), 1,
      anon_sym_RPAREN,
    STATE(767), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(781), 1,
      sym_block_comment,
  [37411] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1669), 1,
      anon_sym_RBRACK,
    STATE(782), 1,
      sym_block_comment,
    STATE(786), 1,
      aux_sym_list_expr_repeat1,
  [37430] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1671), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1673), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(783), 1,
      sym_block_comment,
    STATE(787), 1,
      aux_sym_value_qid_repeat1,
  [37449] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1600), 1,
      anon_sym_else,
    STATE(426), 1,
      sym__else,
    STATE(751), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(784), 1,
      sym_block_comment,
  [37468] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1675), 1,
      anon_sym_RPAREN,
    STATE(732), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(785), 1,
      sym_block_comment,
  [37487] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1677), 1,
      anon_sym_RBRACK,
    STATE(752), 1,
      aux_sym_list_expr_repeat1,
    STATE(786), 1,
      sym_block_comment,
  [37506] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1469), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1679), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(773), 1,
      aux_sym_value_qid_repeat1,
    STATE(787), 1,
      sym_block_comment,
  [37525] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(426), 1,
      sym__else,
    STATE(751), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(788), 1,
      sym_block_comment,
  [37544] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1512), 1,
      anon_sym_COMMA,
    ACTIONS(1681), 1,
      anon_sym_RBRACE,
    STATE(771), 1,
      aux_sym_record_type_repeat1,
    STATE(789), 1,
      sym_block_comment,
  [37563] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1683), 1,
      anon_sym_COMMA,
    ACTIONS(1686), 1,
      anon_sym_RPAREN,
    STATE(790), 2,
      sym_block_comment,
      aux_sym_exposing_list_repeat1,
  [37580] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1688), 1,
      anon_sym_RPAREN,
    STATE(785), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(791), 1,
      sym_block_comment,
  [37599] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1690), 1,
      anon_sym_RBRACK,
    STATE(792), 1,
      sym_block_comment,
    STATE(796), 1,
      aux_sym_list_expr_repeat1,
  [37618] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1692), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1694), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(793), 1,
      sym_block_comment,
    STATE(797), 1,
      aux_sym_value_qid_repeat1,
  [37637] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1650), 1,
      anon_sym_else,
    STATE(185), 1,
      sym__else,
    STATE(775), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(794), 1,
      sym_block_comment,
  [37656] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1696), 1,
      anon_sym_RPAREN,
    STATE(732), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(795), 1,
      sym_block_comment,
  [37675] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1698), 1,
      anon_sym_RBRACK,
    STATE(752), 1,
      aux_sym_list_expr_repeat1,
    STATE(796), 1,
      sym_block_comment,
  [37694] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1469), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    ACTIONS(1700), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(773), 1,
      aux_sym_value_qid_repeat1,
    STATE(797), 1,
      sym_block_comment,
  [37713] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(185), 1,
      sym__else,
    STATE(775), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(798), 1,
      sym_block_comment,
  [37732] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1544), 1,
      anon_sym_COMMA,
    ACTIONS(1702), 1,
      anon_sym_RPAREN,
    STATE(725), 1,
      aux_sym_exposing_list_repeat1,
    STATE(799), 1,
      sym_block_comment,
  [37751] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1704), 1,
      anon_sym_RPAREN,
    STATE(785), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(800), 1,
      sym_block_comment,
  [37770] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1688), 1,
      anon_sym_RPAREN,
    STATE(795), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(801), 1,
      sym_block_comment,
  [37789] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(802), 1,
      sym_block_comment,
    ACTIONS(1706), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [37804] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1367), 1,
      sym__virtual_end_decl,
    ACTIONS(1467), 1,
      sym_arrow,
    STATE(776), 1,
      aux_sym_type_expression_repeat1,
    STATE(803), 1,
      sym_block_comment,
  [37823] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1475), 1,
      anon_sym_RPAREN,
    STATE(743), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(804), 1,
      sym_block_comment,
  [37842] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1708), 1,
      sym__virtual_end_section,
    STATE(805), 1,
      sym_block_comment,
    STATE(806), 1,
      aux_sym_let_in_expr_repeat1,
  [37861] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1710), 1,
      sym__virtual_end_section,
    STATE(806), 1,
      sym_block_comment,
    STATE(821), 1,
      aux_sym_let_in_expr_repeat1,
  [37880] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(807), 1,
      sym_block_comment,
    ACTIONS(1712), 3,
      sym__virtual_end_decl,
      sym__virtual_end_section,
      anon_sym_RPAREN,
  [37895] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(808), 1,
      sym_block_comment,
    ACTIONS(1714), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [37910] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1716), 1,
      sym__virtual_end_section,
    STATE(809), 1,
      sym_block_comment,
    STATE(810), 1,
      aux_sym_let_in_expr_repeat1,
  [37929] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1718), 1,
      sym__virtual_end_section,
    STATE(810), 1,
      sym_block_comment,
    STATE(821), 1,
      aux_sym_let_in_expr_repeat1,
  [37948] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(811), 1,
      sym_block_comment,
    ACTIONS(1720), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [37963] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1722), 1,
      sym__virtual_end_section,
    STATE(812), 1,
      sym_block_comment,
    STATE(813), 1,
      aux_sym_let_in_expr_repeat1,
  [37982] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1724), 1,
      sym__virtual_end_section,
    STATE(813), 1,
      sym_block_comment,
    STATE(821), 1,
      aux_sym_let_in_expr_repeat1,
  [38001] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1479), 1,
      anon_sym_COMMA,
    ACTIONS(1726), 1,
      anon_sym_RBRACE,
    STATE(703), 1,
      aux_sym_record_pattern_repeat1,
    STATE(814), 1,
      sym_block_comment,
  [38020] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(815), 1,
      sym_block_comment,
    ACTIONS(1728), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [38035] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1730), 1,
      sym__virtual_end_section,
    STATE(816), 1,
      sym_block_comment,
    STATE(817), 1,
      aux_sym_let_in_expr_repeat1,
  [38054] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1732), 1,
      sym__virtual_end_section,
    STATE(817), 1,
      sym_block_comment,
    STATE(821), 1,
      aux_sym_let_in_expr_repeat1,
  [38073] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1473), 1,
      anon_sym_COMMA,
    ACTIONS(1734), 1,
      anon_sym_RPAREN,
    STATE(732), 1,
      aux_sym_tuple_expr_repeat1,
    STATE(818), 1,
      sym_block_comment,
  [38092] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(819), 1,
      sym_block_comment,
    ACTIONS(1736), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [38107] = 4,
    ACTIONS(43), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(45), 1,
      sym_line_comment,
    STATE(820), 1,
      sym_block_comment,
    ACTIONS(1738), 3,
      aux_sym_char_constant_expr_token1,
      sym_string_escape,
      sym_invalid_string_escape,
  [38122] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1740), 1,
      sym__virtual_end_decl,
    ACTIONS(1743), 1,
      sym__virtual_end_section,
    STATE(821), 2,
      sym_block_comment,
      aux_sym_let_in_expr_repeat1,
  [38139] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1745), 1,
      sym__virtual_end_section,
    STATE(822), 1,
      sym_block_comment,
    STATE(823), 1,
      aux_sym_let_in_expr_repeat1,
  [38158] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1463), 1,
      sym__virtual_end_decl,
    ACTIONS(1747), 1,
      sym__virtual_end_section,
    STATE(821), 1,
      aux_sym_let_in_expr_repeat1,
    STATE(823), 1,
      sym_block_comment,
  [38177] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(472), 1,
      sym__else,
    STATE(702), 1,
      aux_sym_if_else_expr_repeat1,
    STATE(824), 1,
      sym_block_comment,
  [38196] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1493), 1,
      anon_sym_COMMA,
    ACTIONS(1749), 1,
      anon_sym_RBRACE,
    STATE(749), 1,
      aux_sym__record_inner_repeat1,
    STATE(825), 1,
      sym_block_comment,
  [38215] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1493), 1,
      anon_sym_COMMA,
    ACTIONS(1751), 1,
      anon_sym_RBRACE,
    STATE(738), 1,
      aux_sym__record_inner_repeat1,
    STATE(826), 1,
      sym_block_comment,
  [38234] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(827), 1,
      sym_block_comment,
    ACTIONS(1753), 3,
      anon_sym_left,
      anon_sym_right,
      anon_sym_non,
  [38249] = 6,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1497), 1,
      anon_sym_COMMA,
    ACTIONS(1755), 1,
      anon_sym_RBRACK,
    STATE(752), 1,
      aux_sym_list_expr_repeat1,
    STATE(828), 1,
      sym_block_comment,
  [38268] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    STATE(829), 1,
      sym_block_comment,
    STATE(831), 1,
      sym_upper_case_qid,
  [38284] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(830), 1,
      sym_block_comment,
    ACTIONS(1646), 2,
      sym__upper_case_identifier_without_leading_whitespace,
      sym__lower_case_identifier_without_leading_whitespace,
  [38298] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1322), 1,
      sym_exposing,
    STATE(831), 1,
      sym_block_comment,
    STATE(965), 1,
      sym_exposing_list,
  [38314] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1757), 1,
      anon_sym_PIPE_RBRACK,
    STATE(309), 1,
      sym__glsl_end,
    STATE(832), 1,
      sym_block_comment,
  [38330] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1214), 1,
      anon_sym_LPAREN,
    STATE(833), 1,
      sym_block_comment,
    STATE(964), 1,
      sym__operator_as_function_inner,
  [38346] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1759), 1,
      anon_sym_RPAREN,
    ACTIONS(1761), 1,
      sym__virtual_end_section,
    STATE(834), 1,
      sym_block_comment,
  [38362] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    STATE(835), 1,
      sym_block_comment,
    STATE(913), 1,
      sym_upper_case_qid,
  [38378] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1763), 1,
      anon_sym_PIPE,
    ACTIONS(1765), 1,
      sym_colon,
    STATE(836), 1,
      sym_block_comment,
  [38394] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(837), 1,
      sym_block_comment,
    ACTIONS(1767), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [38408] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(838), 1,
      sym_block_comment,
    ACTIONS(1686), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [38422] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1769), 1,
      sym_lower_case_identifier,
    STATE(774), 1,
      sym_field_type,
    STATE(839), 1,
      sym_block_comment,
  [38438] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1763), 1,
      anon_sym_PIPE,
    ACTIONS(1771), 1,
      sym_eq,
    STATE(840), 1,
      sym_block_comment,
  [38454] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1773), 1,
      anon_sym_RPAREN,
    ACTIONS(1775), 1,
      sym__virtual_end_section,
    STATE(841), 1,
      sym_block_comment,
  [38470] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1777), 1,
      sym_lower_case_identifier,
    STATE(826), 1,
      sym_field,
    STATE(842), 1,
      sym_block_comment,
  [38486] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(843), 1,
      sym_block_comment,
    ACTIONS(1779), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [38500] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(844), 1,
      sym_block_comment,
    ACTIONS(1425), 2,
      sym__virtual_end_decl,
      sym_arrow,
  [38514] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(464), 1,
      anon_sym_DOT,
    STATE(830), 1,
      sym__dot_without_leading_whitespace,
    STATE(845), 1,
      sym_block_comment,
  [38530] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1781), 1,
      anon_sym_PIPE_RBRACK,
    STATE(169), 1,
      sym__glsl_end,
    STATE(846), 1,
      sym_block_comment,
  [38546] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1783), 1,
      anon_sym_PIPE_RBRACK,
    STATE(235), 1,
      sym__glsl_end,
    STATE(847), 1,
      sym_block_comment,
  [38562] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1785), 1,
      anon_sym_PIPE_RBRACK,
    STATE(76), 1,
      sym__glsl_end,
    STATE(848), 1,
      sym_block_comment,
  [38578] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(814), 1,
      sym_lower_pattern,
    STATE(849), 1,
      sym_block_comment,
  [38594] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(850), 1,
      sym_block_comment,
    ACTIONS(1787), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [38608] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(851), 1,
      sym_block_comment,
    ACTIONS(1789), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [38622] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(852), 1,
      sym_block_comment,
    ACTIONS(1791), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [38636] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1793), 1,
      anon_sym_RPAREN,
    ACTIONS(1795), 1,
      sym__virtual_end_section,
    STATE(853), 1,
      sym_block_comment,
  [38652] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(854), 1,
      sym_block_comment,
    ACTIONS(1797), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [38666] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1322), 1,
      sym_exposing,
    STATE(855), 1,
      sym_block_comment,
    STATE(1006), 1,
      sym_exposing_list,
  [38682] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(856), 1,
      sym_block_comment,
    ACTIONS(1799), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [38696] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1801), 1,
      anon_sym_COMMA,
    ACTIONS(1803), 1,
      anon_sym_RPAREN,
    STATE(857), 1,
      sym_block_comment,
  [38712] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(858), 1,
      sym_block_comment,
    ACTIONS(1805), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [38726] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(531), 1,
      sym_lower_pattern,
    STATE(859), 1,
      sym_block_comment,
  [38742] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(860), 1,
      sym_block_comment,
    ACTIONS(1807), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [38756] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(861), 1,
      sym_block_comment,
    ACTIONS(1809), 2,
      sym__virtual_end_decl,
      anon_sym_PIPE,
  [38770] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1811), 1,
      sym_upper_case_identifier,
    STATE(861), 1,
      sym_union_variant,
    STATE(862), 1,
      sym_block_comment,
  [38786] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(863), 1,
      sym_block_comment,
    ACTIONS(1813), 2,
      sym__virtual_end_decl,
      anon_sym_PIPE,
  [38800] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1815), 1,
      anon_sym_RPAREN,
    ACTIONS(1817), 1,
      sym__virtual_end_section,
    STATE(864), 1,
      sym_block_comment,
  [38816] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(718), 1,
      sym__then,
    STATE(865), 1,
      sym_block_comment,
  [38832] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1769), 1,
      sym_lower_case_identifier,
    STATE(721), 1,
      sym_field_type,
    STATE(866), 1,
      sym_block_comment,
  [38848] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(867), 1,
      sym_block_comment,
    ACTIONS(1821), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [38862] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(868), 1,
      sym_block_comment,
    ACTIONS(1823), 2,
      sym__virtual_end_decl,
      sym__virtual_end_section,
  [38876] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(869), 1,
      sym_block_comment,
    ACTIONS(1825), 2,
      sym__upper_case_identifier_without_leading_whitespace,
      sym__lower_case_identifier_without_leading_whitespace,
  [38890] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(870), 1,
      sym_block_comment,
    ACTIONS(1827), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [38904] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(870), 1,
      sym_lower_pattern,
    STATE(871), 1,
      sym_block_comment,
  [38920] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(728), 1,
      sym__then,
    STATE(872), 1,
      sym_block_comment,
  [38936] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1769), 1,
      sym_lower_case_identifier,
    STATE(873), 1,
      sym_block_comment,
    STATE(904), 1,
      sym_field_type,
  [38952] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(874), 1,
      sym_block_comment,
    ACTIONS(1829), 2,
      sym_lower_case_identifier,
      sym_eq,
  [38966] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1831), 1,
      anon_sym_RPAREN,
    ACTIONS(1833), 1,
      sym__virtual_end_section,
    STATE(875), 1,
      sym_block_comment,
  [38982] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1143), 1,
      sym_upper_case_identifier,
    STATE(629), 1,
      sym_upper_case_qid,
    STATE(876), 1,
      sym_block_comment,
  [38998] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(739), 1,
      sym__then,
    STATE(877), 1,
      sym_block_comment,
  [39014] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1769), 1,
      sym_lower_case_identifier,
    STATE(742), 1,
      sym_field_type,
    STATE(878), 1,
      sym_block_comment,
  [39030] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(731), 1,
      sym__then,
    STATE(879), 1,
      sym_block_comment,
  [39046] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1835), 1,
      anon_sym_RPAREN,
    ACTIONS(1837), 1,
      sym__virtual_end_section,
    STATE(880), 1,
      sym_block_comment,
  [39062] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(747), 1,
      sym__then,
    STATE(881), 1,
      sym_block_comment,
  [39078] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(882), 1,
      sym_block_comment,
    ACTIONS(1839), 2,
      sym__virtual_end_decl,
      sym_exposing,
  [39092] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(883), 1,
      sym_block_comment,
    ACTIONS(1841), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [39106] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(763), 1,
      sym__then,
    STATE(884), 1,
      sym_block_comment,
  [39122] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1769), 1,
      sym_lower_case_identifier,
    STATE(766), 1,
      sym_field_type,
    STATE(885), 1,
      sym_block_comment,
  [39138] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(886), 1,
      sym_block_comment,
    ACTIONS(1421), 2,
      sym__virtual_end_decl,
      sym_arrow,
  [39152] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(824), 1,
      sym__then,
    STATE(887), 1,
      sym_block_comment,
  [39168] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(772), 1,
      sym__then,
    STATE(888), 1,
      sym_block_comment,
  [39184] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(889), 1,
      sym_block_comment,
    ACTIONS(1843), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [39198] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(890), 1,
      sym_block_comment,
    ACTIONS(1845), 2,
      anon_sym_COMMA,
      anon_sym_RBRACK,
  [39212] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(784), 1,
      sym__then,
    STATE(891), 1,
      sym_block_comment,
  [39228] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(892), 1,
      sym_block_comment,
    ACTIONS(1847), 2,
      anon_sym_COMMA,
      anon_sym_RBRACK,
  [39242] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(859), 1,
      sym_lower_case_identifier,
    STATE(526), 1,
      sym_lower_pattern,
    STATE(893), 1,
      sym_block_comment,
  [39258] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1849), 1,
      anon_sym_else,
    STATE(894), 2,
      sym_block_comment,
      aux_sym_if_else_expr_repeat1,
  [39272] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(788), 1,
      sym__then,
    STATE(895), 1,
      sym_block_comment,
  [39288] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1852), 1,
      sym_upper_case_identifier,
    ACTIONS(1854), 1,
      sym_alias,
    STATE(896), 1,
      sym_block_comment,
  [39304] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(897), 1,
      sym_block_comment,
    ACTIONS(1856), 2,
      sym_lower_case_identifier,
      sym_eq,
  [39318] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(794), 1,
      sym__then,
    STATE(898), 1,
      sym_block_comment,
  [39334] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1858), 1,
      sym_lower_case_identifier,
    ACTIONS(1860), 1,
      sym_module,
    STATE(899), 1,
      sym_block_comment,
  [39350] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(798), 1,
      sym__then,
    STATE(900), 1,
      sym_block_comment,
  [39366] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1811), 1,
      sym_upper_case_identifier,
    STATE(673), 1,
      sym_union_variant,
    STATE(901), 1,
      sym_block_comment,
  [39382] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1801), 1,
      anon_sym_COMMA,
    ACTIONS(1862), 1,
      anon_sym_RPAREN,
    STATE(902), 1,
      sym_block_comment,
  [39398] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(903), 1,
      sym_block_comment,
    ACTIONS(1864), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [39412] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(904), 1,
      sym_block_comment,
    ACTIONS(1866), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [39426] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1868), 1,
      anon_sym_PIPE_RBRACK,
    STATE(474), 1,
      sym__glsl_end,
    STATE(905), 1,
      sym_block_comment,
  [39442] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1819), 1,
      anon_sym_then,
    STATE(906), 1,
      sym_block_comment,
    STATE(989), 1,
      sym__then,
  [39458] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(907), 1,
      sym_block_comment,
    ACTIONS(1870), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [39472] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1811), 1,
      sym_upper_case_identifier,
    STATE(666), 1,
      sym_union_variant,
    STATE(908), 1,
      sym_block_comment,
  [39488] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1872), 1,
      anon_sym_if,
    STATE(906), 1,
      sym__if,
    STATE(909), 1,
      sym_block_comment,
  [39504] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(910), 1,
      sym_block_comment,
    ACTIONS(1874), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [39518] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1876), 1,
      anon_sym_PIPE_RBRACK,
    STATE(394), 1,
      sym__glsl_end,
    STATE(911), 1,
      sym_block_comment,
  [39534] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    STATE(912), 1,
      sym_block_comment,
    ACTIONS(1443), 2,
      sym__virtual_end_decl,
      sym_arrow,
  [39548] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1322), 1,
      sym_exposing,
    STATE(913), 1,
      sym_block_comment,
    STATE(1030), 1,
      sym_exposing_list,
  [39564] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1777), 1,
      sym_lower_case_identifier,
    STATE(883), 1,
      sym_field,
    STATE(914), 1,
      sym_block_comment,
  [39580] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(23), 1,
      sym_upper_case_identifier,
    STATE(915), 1,
      sym_block_comment,
    STATE(918), 1,
      sym_upper_case_qid,
  [39596] = 5,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(181), 1,
      anon_sym_LBRACE,
    STATE(855), 1,
      sym_record_expr,
    STATE(916), 1,
      sym_block_comment,
  [39612] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1878), 1,
      sym__virtual_open_section,
    STATE(917), 1,
      sym_block_comment,
  [39625] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1880), 1,
      sym_where,
    STATE(918), 1,
      sym_block_comment,
  [39638] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1882), 1,
      anon_sym_else,
    STATE(919), 1,
      sym_block_comment,
  [39651] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1884), 1,
      sym_module,
    STATE(920), 1,
      sym_block_comment,
  [39664] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1886), 1,
      sym__virtual_end_section,
    STATE(921), 1,
      sym_block_comment,
  [39677] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1888), 1,
      anon_sym_SQUOTE,
    STATE(922), 1,
      sym_block_comment,
  [39690] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1890), 1,
      sym_upper_case_identifier,
    STATE(923), 1,
      sym_block_comment,
  [39703] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1892), 1,
      anon_sym_PIPE,
    STATE(924), 1,
      sym_block_comment,
  [39716] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1894), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(925), 1,
      sym_block_comment,
  [39729] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1799), 1,
      sym__virtual_end_decl,
    STATE(926), 1,
      sym_block_comment,
  [39742] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1896), 1,
      sym__virtual_end_decl,
    STATE(927), 1,
      sym_block_comment,
  [39755] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1898), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(928), 1,
      sym_block_comment,
  [39768] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1900), 1,
      sym_lower_case_identifier,
    STATE(929), 1,
      sym_block_comment,
  [39781] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1902), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(930), 1,
      sym_block_comment,
  [39794] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1904), 1,
      anon_sym_SQUOTE,
    STATE(931), 1,
      sym_block_comment,
  [39807] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1906), 1,
      sym__virtual_end_decl,
    STATE(932), 1,
      sym_block_comment,
  [39820] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1908), 1,
      anon_sym_RPAREN,
    STATE(933), 1,
      sym_block_comment,
  [39833] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1910), 1,
      anon_sym_RBRACE,
    STATE(934), 1,
      sym_block_comment,
  [39846] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1912), 1,
      sym__virtual_end_decl,
    STATE(935), 1,
      sym_block_comment,
  [39859] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1914), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(936), 1,
      sym_block_comment,
  [39872] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1916), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(937), 1,
      sym_block_comment,
  [39885] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1918), 1,
      sym__virtual_end_decl,
    STATE(938), 1,
      sym_block_comment,
  [39898] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1920), 1,
      anon_sym_in,
    STATE(939), 1,
      sym_block_comment,
  [39911] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1922), 1,
      sym__virtual_end_decl,
    STATE(940), 1,
      sym_block_comment,
  [39924] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1924), 1,
      sym__virtual_end_decl,
    STATE(941), 1,
      sym_block_comment,
  [39937] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1926), 1,
      anon_sym_LPAREN,
    STATE(942), 1,
      sym_block_comment,
  [39950] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1928), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(943), 1,
      sym_block_comment,
  [39963] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1930), 1,
      sym__virtual_open_section,
    STATE(944), 1,
      sym_block_comment,
  [39976] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1932), 1,
      anon_sym_RPAREN,
    STATE(945), 1,
      sym_block_comment,
  [39989] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1934), 1,
      sym__virtual_end_section,
    STATE(946), 1,
      sym_block_comment,
  [40002] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1936), 1,
      sym__virtual_open_section,
    STATE(947), 1,
      sym_block_comment,
  [40015] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1938), 1,
      anon_sym_DASH_RBRACE,
    STATE(948), 1,
      sym_block_comment,
  [40028] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1097), 1,
      anon_sym_RPAREN,
    STATE(949), 1,
      sym_block_comment,
  [40041] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1940), 1,
      anon_sym_RPAREN,
    STATE(950), 1,
      sym_block_comment,
  [40054] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1942), 1,
      anon_sym_RBRACE,
    STATE(951), 1,
      sym_block_comment,
  [40067] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1944), 1,
      anon_sym_SQUOTE,
    STATE(952), 1,
      sym_block_comment,
  [40080] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1946), 1,
      anon_sym_SQUOTE,
    STATE(953), 1,
      sym_block_comment,
  [40093] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1948), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(954), 1,
      sym_block_comment,
  [40106] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1950), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(955), 1,
      sym_block_comment,
  [40119] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1952), 1,
      sym_eq,
    STATE(956), 1,
      sym_block_comment,
  [40132] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1954), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(957), 1,
      sym_block_comment,
  [40145] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1956), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(958), 1,
      sym_block_comment,
  [40158] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1958), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(959), 1,
      sym_block_comment,
  [40171] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1960), 1,
      sym_number_literal,
    STATE(960), 1,
      sym_block_comment,
  [40184] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1962), 1,
      sym_eq,
    STATE(961), 1,
      sym_block_comment,
  [40197] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1964), 1,
      sym_eq,
    STATE(962), 1,
      sym_block_comment,
  [40210] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1190), 1,
      anon_sym_COLON_COLON,
    STATE(963), 1,
      sym_block_comment,
  [40223] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1966), 1,
      sym_eq,
    STATE(964), 1,
      sym_block_comment,
  [40236] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1968), 1,
      sym__virtual_end_decl,
    STATE(965), 1,
      sym_block_comment,
  [40249] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1970), 1,
      anon_sym_RPAREN,
    STATE(966), 1,
      sym_block_comment,
  [40262] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1972), 1,
      sym_glsl_content,
    STATE(967), 1,
      sym_block_comment,
  [40275] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1974), 1,
      anon_sym_RBRACE,
    STATE(968), 1,
      sym_block_comment,
  [40288] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1976), 1,
      sym__virtual_end_decl,
    STATE(969), 1,
      sym_block_comment,
  [40301] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1978), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(970), 1,
      sym_block_comment,
  [40314] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1980), 1,
      sym_upper_case_identifier,
    STATE(971), 1,
      sym_block_comment,
  [40327] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1982), 1,
      anon_sym_in,
    STATE(972), 1,
      sym_block_comment,
  [40340] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1984), 1,
      anon_sym_in,
    STATE(973), 1,
      sym_block_comment,
  [40353] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1986), 1,
      anon_sym_in,
    STATE(974), 1,
      sym_block_comment,
  [40366] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1988), 1,
      anon_sym_SQUOTE,
    STATE(975), 1,
      sym_block_comment,
  [40379] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1767), 1,
      sym__virtual_end_decl,
    STATE(976), 1,
      sym_block_comment,
  [40392] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1990), 1,
      anon_sym_in,
    STATE(977), 1,
      sym_block_comment,
  [40405] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1992), 1,
      sym__virtual_end_decl,
    STATE(978), 1,
      sym_block_comment,
  [40418] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1994), 1,
      anon_sym_in,
    STATE(979), 1,
      sym_block_comment,
  [40431] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1996), 1,
      sym__virtual_end_section,
    STATE(980), 1,
      sym_block_comment,
  [40444] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1998), 1,
      anon_sym_RPAREN,
    STATE(981), 1,
      sym_block_comment,
  [40457] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2000), 1,
      anon_sym_RBRACE,
    STATE(982), 1,
      sym_block_comment,
  [40470] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2002), 1,
      sym_glsl_content,
    STATE(983), 1,
      sym_block_comment,
  [40483] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2004), 1,
      sym_lower_case_identifier,
    STATE(984), 1,
      sym_block_comment,
  [40496] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1765), 1,
      sym_colon,
    STATE(985), 1,
      sym_block_comment,
  [40509] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2006), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(986), 1,
      sym_block_comment,
  [40522] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2008), 1,
      sym__virtual_end_decl,
    STATE(987), 1,
      sym_block_comment,
  [40535] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2010), 1,
      anon_sym_then,
    STATE(988), 1,
      sym_block_comment,
  [40548] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1552), 1,
      anon_sym_else,
    STATE(989), 1,
      sym_block_comment,
  [40561] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2012), 1,
      sym_eq,
    STATE(990), 1,
      sym_block_comment,
  [40574] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2014), 1,
      sym__virtual_end_decl,
    STATE(991), 1,
      sym_block_comment,
  [40587] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2016), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(992), 1,
      sym_block_comment,
  [40600] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2018), 1,
      sym_glsl_content,
    STATE(993), 1,
      sym_block_comment,
  [40613] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2020), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(994), 1,
      sym_block_comment,
  [40626] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2022), 1,
      anon_sym_RPAREN,
    STATE(995), 1,
      sym_block_comment,
  [40639] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2024), 1,
      ts_builtin_sym_end,
    STATE(996), 1,
      sym_block_comment,
  [40652] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2026), 1,
      sym_of,
    STATE(997), 1,
      sym_block_comment,
  [40665] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2028), 1,
      anon_sym_SQUOTE,
    STATE(998), 1,
      sym_block_comment,
  [40678] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2030), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(999), 1,
      sym_block_comment,
  [40691] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2032), 1,
      sym_of,
    STATE(1000), 1,
      sym_block_comment,
  [40704] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2034), 1,
      anon_sym_SQUOTE,
    STATE(1001), 1,
      sym_block_comment,
  [40717] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2036), 1,
      sym__upper_case_identifier_without_leading_whitespace,
    STATE(1002), 1,
      sym_block_comment,
  [40730] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2038), 1,
      sym_glsl_content,
    STATE(1003), 1,
      sym_block_comment,
  [40743] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2040), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(1004), 1,
      sym_block_comment,
  [40756] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2042), 1,
      sym__virtual_end_decl,
    STATE(1005), 1,
      sym_block_comment,
  [40769] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2044), 1,
      sym__virtual_end_decl,
    STATE(1006), 1,
      sym_block_comment,
  [40782] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2046), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(1007), 1,
      sym_block_comment,
  [40795] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2048), 1,
      anon_sym_RBRACE,
    STATE(1008), 1,
      sym_block_comment,
  [40808] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2050), 1,
      anon_sym_in,
    STATE(1009), 1,
      sym_block_comment,
  [40821] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2052), 1,
      sym_glsl_content,
    STATE(1010), 1,
      sym_block_comment,
  [40834] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2054), 1,
      anon_sym_RPAREN,
    STATE(1011), 1,
      sym_block_comment,
  [40847] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2056), 1,
      anon_sym_RBRACE,
    STATE(1012), 1,
      sym_block_comment,
  [40860] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2058), 1,
      anon_sym_in,
    STATE(1013), 1,
      sym_block_comment,
  [40873] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2060), 1,
      sym_colon,
    STATE(1014), 1,
      sym_block_comment,
  [40886] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1771), 1,
      sym_eq,
    STATE(1015), 1,
      sym_block_comment,
  [40899] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2062), 1,
      anon_sym_RPAREN,
    STATE(1016), 1,
      sym_block_comment,
  [40912] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2064), 1,
      sym__lower_case_identifier_without_leading_whitespace,
    STATE(1017), 1,
      sym_block_comment,
  [40925] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2066), 1,
      sym__virtual_open_section,
    STATE(1018), 1,
      sym_block_comment,
  [40938] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2068), 1,
      sym__virtual_open_section,
    STATE(1019), 1,
      sym_block_comment,
  [40951] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2070), 1,
      sym_double_dot,
    STATE(1020), 1,
      sym_block_comment,
  [40964] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2072), 1,
      anon_sym_in,
    STATE(1021), 1,
      sym_block_comment,
  [40977] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2074), 1,
      sym__virtual_open_section,
    STATE(1022), 1,
      sym_block_comment,
  [40990] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2076), 1,
      sym__virtual_open_section,
    STATE(1023), 1,
      sym_block_comment,
  [41003] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2078), 1,
      sym_arrow,
    STATE(1024), 1,
      sym_block_comment,
  [41016] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2080), 1,
      sym__virtual_open_section,
    STATE(1025), 1,
      sym_block_comment,
  [41029] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2082), 1,
      sym__virtual_open_section,
    STATE(1026), 1,
      sym_block_comment,
  [41042] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2084), 1,
      sym__virtual_end_section,
    STATE(1027), 1,
      sym_block_comment,
  [41055] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2086), 1,
      sym__virtual_open_section,
    STATE(1028), 1,
      sym_block_comment,
  [41068] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2088), 1,
      sym__virtual_open_section,
    STATE(1029), 1,
      sym_block_comment,
  [41081] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2090), 1,
      sym__virtual_end_decl,
    STATE(1030), 1,
      sym_block_comment,
  [41094] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2092), 1,
      sym__virtual_open_section,
    STATE(1031), 1,
      sym_block_comment,
  [41107] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2094), 1,
      sym__virtual_open_section,
    STATE(1032), 1,
      sym_block_comment,
  [41120] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2096), 1,
      anon_sym_in,
    STATE(1033), 1,
      sym_block_comment,
  [41133] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2098), 1,
      sym_of,
    STATE(1034), 1,
      sym_block_comment,
  [41146] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2100), 1,
      sym_of,
    STATE(1035), 1,
      sym_block_comment,
  [41159] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2102), 1,
      sym__virtual_open_section,
    STATE(1036), 1,
      sym_block_comment,
  [41172] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2104), 1,
      sym_of,
    STATE(1037), 1,
      sym_block_comment,
  [41185] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2106), 1,
      sym_of,
    STATE(1038), 1,
      sym_block_comment,
  [41198] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2108), 1,
      sym__virtual_open_section,
    STATE(1039), 1,
      sym_block_comment,
  [41211] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2110), 1,
      sym_of,
    STATE(1040), 1,
      sym_block_comment,
  [41224] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2112), 1,
      sym_of,
    STATE(1041), 1,
      sym_block_comment,
  [41237] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2114), 1,
      sym__virtual_open_section,
    STATE(1042), 1,
      sym_block_comment,
  [41250] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2116), 1,
      sym_of,
    STATE(1043), 1,
      sym_block_comment,
  [41263] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2118), 1,
      sym_of,
    STATE(1044), 1,
      sym_block_comment,
  [41276] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2120), 1,
      sym_of,
    STATE(1045), 1,
      sym_block_comment,
  [41289] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2122), 1,
      sym_of,
    STATE(1046), 1,
      sym_block_comment,
  [41302] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2124), 1,
      sym__virtual_open_section,
    STATE(1047), 1,
      sym_block_comment,
  [41315] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2126), 1,
      anon_sym_in,
    STATE(1048), 1,
      sym_block_comment,
  [41328] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2128), 1,
      anon_sym_in,
    STATE(1049), 1,
      sym_block_comment,
  [41341] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2130), 1,
      sym_glsl_content,
    STATE(1050), 1,
      sym_block_comment,
  [41354] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2132), 1,
      sym__virtual_end_decl,
    STATE(1051), 1,
      sym_block_comment,
  [41367] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1805), 1,
      sym__virtual_end_decl,
    STATE(1052), 1,
      sym_block_comment,
  [41380] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2134), 1,
      sym__virtual_open_section,
    STATE(1053), 1,
      sym_block_comment,
  [41393] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2136), 1,
      sym__virtual_end_section,
    STATE(1054), 1,
      sym_block_comment,
  [41406] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2138), 1,
      sym__block_comment_content,
    STATE(1055), 1,
      sym_block_comment,
  [41419] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2140), 1,
      sym__virtual_end_section,
    STATE(1056), 1,
      sym_block_comment,
  [41432] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(1254), 1,
      anon_sym_COLON_COLON,
    STATE(1057), 1,
      sym_block_comment,
  [41445] = 4,
    ACTIONS(3), 1,
      anon_sym_LBRACE_DASH,
    ACTIONS(5), 1,
      sym_line_comment,
    ACTIONS(2142), 1,
      sym_glsl_content,
    STATE(1058), 1,
      sym_block_comment,
  [41458] = 1,
    ACTIONS(2144), 1,
      ts_builtin_sym_end,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(20)] = 0,
  [SMALL_STATE(21)] = 71,
  [SMALL_STATE(22)] = 142,
  [SMALL_STATE(23)] = 212,
  [SMALL_STATE(24)] = 282,
  [SMALL_STATE(25)] = 350,
  [SMALL_STATE(26)] = 422,
  [SMALL_STATE(27)] = 494,
  [SMALL_STATE(28)] = 564,
  [SMALL_STATE(29)] = 631,
  [SMALL_STATE(30)] = 753,
  [SMALL_STATE(31)] = 819,
  [SMALL_STATE(32)] = 881,
  [SMALL_STATE(33)] = 943,
  [SMALL_STATE(34)] = 1005,
  [SMALL_STATE(35)] = 1071,
  [SMALL_STATE(36)] = 1133,
  [SMALL_STATE(37)] = 1255,
  [SMALL_STATE(38)] = 1317,
  [SMALL_STATE(39)] = 1439,
  [SMALL_STATE(40)] = 1561,
  [SMALL_STATE(41)] = 1683,
  [SMALL_STATE(42)] = 1747,
  [SMALL_STATE(43)] = 1809,
  [SMALL_STATE(44)] = 1871,
  [SMALL_STATE(45)] = 1993,
  [SMALL_STATE(46)] = 2055,
  [SMALL_STATE(47)] = 2117,
  [SMALL_STATE(48)] = 2179,
  [SMALL_STATE(49)] = 2298,
  [SMALL_STATE(50)] = 2417,
  [SMALL_STATE(51)] = 2536,
  [SMALL_STATE(52)] = 2655,
  [SMALL_STATE(53)] = 2718,
  [SMALL_STATE(54)] = 2779,
  [SMALL_STATE(55)] = 2898,
  [SMALL_STATE(56)] = 3017,
  [SMALL_STATE(57)] = 3136,
  [SMALL_STATE(58)] = 3255,
  [SMALL_STATE(59)] = 3374,
  [SMALL_STATE(60)] = 3493,
  [SMALL_STATE(61)] = 3554,
  [SMALL_STATE(62)] = 3615,
  [SMALL_STATE(63)] = 3734,
  [SMALL_STATE(64)] = 3795,
  [SMALL_STATE(65)] = 3856,
  [SMALL_STATE(66)] = 3917,
  [SMALL_STATE(67)] = 3978,
  [SMALL_STATE(68)] = 4039,
  [SMALL_STATE(69)] = 4100,
  [SMALL_STATE(70)] = 4161,
  [SMALL_STATE(71)] = 4222,
  [SMALL_STATE(72)] = 4341,
  [SMALL_STATE(73)] = 4402,
  [SMALL_STATE(74)] = 4463,
  [SMALL_STATE(75)] = 4524,
  [SMALL_STATE(76)] = 4585,
  [SMALL_STATE(77)] = 4646,
  [SMALL_STATE(78)] = 4707,
  [SMALL_STATE(79)] = 4768,
  [SMALL_STATE(80)] = 4829,
  [SMALL_STATE(81)] = 4890,
  [SMALL_STATE(82)] = 4951,
  [SMALL_STATE(83)] = 5012,
  [SMALL_STATE(84)] = 5073,
  [SMALL_STATE(85)] = 5134,
  [SMALL_STATE(86)] = 5195,
  [SMALL_STATE(87)] = 5256,
  [SMALL_STATE(88)] = 5317,
  [SMALL_STATE(89)] = 5378,
  [SMALL_STATE(90)] = 5439,
  [SMALL_STATE(91)] = 5500,
  [SMALL_STATE(92)] = 5563,
  [SMALL_STATE(93)] = 5624,
  [SMALL_STATE(94)] = 5685,
  [SMALL_STATE(95)] = 5752,
  [SMALL_STATE(96)] = 5813,
  [SMALL_STATE(97)] = 5880,
  [SMALL_STATE(98)] = 5999,
  [SMALL_STATE(99)] = 6118,
  [SMALL_STATE(100)] = 6237,
  [SMALL_STATE(101)] = 6356,
  [SMALL_STATE(102)] = 6475,
  [SMALL_STATE(103)] = 6594,
  [SMALL_STATE(104)] = 6713,
  [SMALL_STATE(105)] = 6832,
  [SMALL_STATE(106)] = 6951,
  [SMALL_STATE(107)] = 7070,
  [SMALL_STATE(108)] = 7189,
  [SMALL_STATE(109)] = 7308,
  [SMALL_STATE(110)] = 7427,
  [SMALL_STATE(111)] = 7546,
  [SMALL_STATE(112)] = 7665,
  [SMALL_STATE(113)] = 7784,
  [SMALL_STATE(114)] = 7903,
  [SMALL_STATE(115)] = 8022,
  [SMALL_STATE(116)] = 8141,
  [SMALL_STATE(117)] = 8260,
  [SMALL_STATE(118)] = 8379,
  [SMALL_STATE(119)] = 8498,
  [SMALL_STATE(120)] = 8617,
  [SMALL_STATE(121)] = 8736,
  [SMALL_STATE(122)] = 8855,
  [SMALL_STATE(123)] = 8974,
  [SMALL_STATE(124)] = 9093,
  [SMALL_STATE(125)] = 9212,
  [SMALL_STATE(126)] = 9331,
  [SMALL_STATE(127)] = 9450,
  [SMALL_STATE(128)] = 9569,
  [SMALL_STATE(129)] = 9688,
  [SMALL_STATE(130)] = 9807,
  [SMALL_STATE(131)] = 9926,
  [SMALL_STATE(132)] = 9994,
  [SMALL_STATE(133)] = 10062,
  [SMALL_STATE(134)] = 10128,
  [SMALL_STATE(135)] = 10194,
  [SMALL_STATE(136)] = 10258,
  [SMALL_STATE(137)] = 10324,
  [SMALL_STATE(138)] = 10389,
  [SMALL_STATE(139)] = 10502,
  [SMALL_STATE(140)] = 10615,
  [SMALL_STATE(141)] = 10728,
  [SMALL_STATE(142)] = 10841,
  [SMALL_STATE(143)] = 10954,
  [SMALL_STATE(144)] = 11017,
  [SMALL_STATE(145)] = 11130,
  [SMALL_STATE(146)] = 11195,
  [SMALL_STATE(147)] = 11253,
  [SMALL_STATE(148)] = 11313,
  [SMALL_STATE(149)] = 11371,
  [SMALL_STATE(150)] = 11429,
  [SMALL_STATE(151)] = 11491,
  [SMALL_STATE(152)] = 11555,
  [SMALL_STATE(153)] = 11619,
  [SMALL_STATE(154)] = 11685,
  [SMALL_STATE(155)] = 11749,
  [SMALL_STATE(156)] = 11807,
  [SMALL_STATE(157)] = 11865,
  [SMALL_STATE(158)] = 11929,
  [SMALL_STATE(159)] = 11987,
  [SMALL_STATE(160)] = 12045,
  [SMALL_STATE(161)] = 12103,
  [SMALL_STATE(162)] = 12169,
  [SMALL_STATE(163)] = 12227,
  [SMALL_STATE(164)] = 12285,
  [SMALL_STATE(165)] = 12349,
  [SMALL_STATE(166)] = 12406,
  [SMALL_STATE(167)] = 12511,
  [SMALL_STATE(168)] = 12616,
  [SMALL_STATE(169)] = 12673,
  [SMALL_STATE(170)] = 12730,
  [SMALL_STATE(171)] = 12787,
  [SMALL_STATE(172)] = 12844,
  [SMALL_STATE(173)] = 12901,
  [SMALL_STATE(174)] = 13006,
  [SMALL_STATE(175)] = 13063,
  [SMALL_STATE(176)] = 13120,
  [SMALL_STATE(177)] = 13177,
  [SMALL_STATE(178)] = 13234,
  [SMALL_STATE(179)] = 13291,
  [SMALL_STATE(180)] = 13396,
  [SMALL_STATE(181)] = 13453,
  [SMALL_STATE(182)] = 13510,
  [SMALL_STATE(183)] = 13567,
  [SMALL_STATE(184)] = 13624,
  [SMALL_STATE(185)] = 13681,
  [SMALL_STATE(186)] = 13738,
  [SMALL_STATE(187)] = 13795,
  [SMALL_STATE(188)] = 13900,
  [SMALL_STATE(189)] = 13957,
  [SMALL_STATE(190)] = 14014,
  [SMALL_STATE(191)] = 14071,
  [SMALL_STATE(192)] = 14128,
  [SMALL_STATE(193)] = 14189,
  [SMALL_STATE(194)] = 14250,
  [SMALL_STATE(195)] = 14307,
  [SMALL_STATE(196)] = 14364,
  [SMALL_STATE(197)] = 14421,
  [SMALL_STATE(198)] = 14478,
  [SMALL_STATE(199)] = 14535,
  [SMALL_STATE(200)] = 14592,
  [SMALL_STATE(201)] = 14649,
  [SMALL_STATE(202)] = 14706,
  [SMALL_STATE(203)] = 14763,
  [SMALL_STATE(204)] = 14824,
  [SMALL_STATE(205)] = 14881,
  [SMALL_STATE(206)] = 14938,
  [SMALL_STATE(207)] = 15043,
  [SMALL_STATE(208)] = 15099,
  [SMALL_STATE(209)] = 15155,
  [SMALL_STATE(210)] = 15211,
  [SMALL_STATE(211)] = 15319,
  [SMALL_STATE(212)] = 15427,
  [SMALL_STATE(213)] = 15485,
  [SMALL_STATE(214)] = 15541,
  [SMALL_STATE(215)] = 15597,
  [SMALL_STATE(216)] = 15699,
  [SMALL_STATE(217)] = 15807,
  [SMALL_STATE(218)] = 15863,
  [SMALL_STATE(219)] = 15919,
  [SMALL_STATE(220)] = 15975,
  [SMALL_STATE(221)] = 16077,
  [SMALL_STATE(222)] = 16139,
  [SMALL_STATE(223)] = 16201,
  [SMALL_STATE(224)] = 16257,
  [SMALL_STATE(225)] = 16359,
  [SMALL_STATE(226)] = 16415,
  [SMALL_STATE(227)] = 16517,
  [SMALL_STATE(228)] = 16619,
  [SMALL_STATE(229)] = 16721,
  [SMALL_STATE(230)] = 16776,
  [SMALL_STATE(231)] = 16831,
  [SMALL_STATE(232)] = 16886,
  [SMALL_STATE(233)] = 16941,
  [SMALL_STATE(234)] = 16996,
  [SMALL_STATE(235)] = 17051,
  [SMALL_STATE(236)] = 17106,
  [SMALL_STATE(237)] = 17161,
  [SMALL_STATE(238)] = 17216,
  [SMALL_STATE(239)] = 17275,
  [SMALL_STATE(240)] = 17330,
  [SMALL_STATE(241)] = 17385,
  [SMALL_STATE(242)] = 17440,
  [SMALL_STATE(243)] = 17495,
  [SMALL_STATE(244)] = 17550,
  [SMALL_STATE(245)] = 17605,
  [SMALL_STATE(246)] = 17660,
  [SMALL_STATE(247)] = 17715,
  [SMALL_STATE(248)] = 17770,
  [SMALL_STATE(249)] = 17825,
  [SMALL_STATE(250)] = 17880,
  [SMALL_STATE(251)] = 17935,
  [SMALL_STATE(252)] = 17994,
  [SMALL_STATE(253)] = 18049,
  [SMALL_STATE(254)] = 18104,
  [SMALL_STATE(255)] = 18159,
  [SMALL_STATE(256)] = 18214,
  [SMALL_STATE(257)] = 18269,
  [SMALL_STATE(258)] = 18324,
  [SMALL_STATE(259)] = 18379,
  [SMALL_STATE(260)] = 18434,
  [SMALL_STATE(261)] = 18489,
  [SMALL_STATE(262)] = 18544,
  [SMALL_STATE(263)] = 18599,
  [SMALL_STATE(264)] = 18654,
  [SMALL_STATE(265)] = 18753,
  [SMALL_STATE(266)] = 18852,
  [SMALL_STATE(267)] = 18951,
  [SMALL_STATE(268)] = 19050,
  [SMALL_STATE(269)] = 19147,
  [SMALL_STATE(270)] = 19200,
  [SMALL_STATE(271)] = 19255,
  [SMALL_STATE(272)] = 19310,
  [SMALL_STATE(273)] = 19365,
  [SMALL_STATE(274)] = 19418,
  [SMALL_STATE(275)] = 19473,
  [SMALL_STATE(276)] = 19527,
  [SMALL_STATE(277)] = 19581,
  [SMALL_STATE(278)] = 19637,
  [SMALL_STATE(279)] = 19689,
  [SMALL_STATE(280)] = 19743,
  [SMALL_STATE(281)] = 19799,
  [SMALL_STATE(282)] = 19846,
  [SMALL_STATE(283)] = 19893,
  [SMALL_STATE(284)] = 19944,
  [SMALL_STATE(285)] = 19991,
  [SMALL_STATE(286)] = 20038,
  [SMALL_STATE(287)] = 20086,
  [SMALL_STATE(288)] = 20132,
  [SMALL_STATE(289)] = 20178,
  [SMALL_STATE(290)] = 20224,
  [SMALL_STATE(291)] = 20298,
  [SMALL_STATE(292)] = 20374,
  [SMALL_STATE(293)] = 20420,
  [SMALL_STATE(294)] = 20466,
  [SMALL_STATE(295)] = 20542,
  [SMALL_STATE(296)] = 20588,
  [SMALL_STATE(297)] = 20634,
  [SMALL_STATE(298)] = 20680,
  [SMALL_STATE(299)] = 20726,
  [SMALL_STATE(300)] = 20772,
  [SMALL_STATE(301)] = 20817,
  [SMALL_STATE(302)] = 20868,
  [SMALL_STATE(303)] = 20913,
  [SMALL_STATE(304)] = 20958,
  [SMALL_STATE(305)] = 21003,
  [SMALL_STATE(306)] = 21048,
  [SMALL_STATE(307)] = 21093,
  [SMALL_STATE(308)] = 21138,
  [SMALL_STATE(309)] = 21223,
  [SMALL_STATE(310)] = 21268,
  [SMALL_STATE(311)] = 21313,
  [SMALL_STATE(312)] = 21358,
  [SMALL_STATE(313)] = 21403,
  [SMALL_STATE(314)] = 21448,
  [SMALL_STATE(315)] = 21493,
  [SMALL_STATE(316)] = 21538,
  [SMALL_STATE(317)] = 21583,
  [SMALL_STATE(318)] = 21628,
  [SMALL_STATE(319)] = 21673,
  [SMALL_STATE(320)] = 21718,
  [SMALL_STATE(321)] = 21763,
  [SMALL_STATE(322)] = 21808,
  [SMALL_STATE(323)] = 21853,
  [SMALL_STATE(324)] = 21898,
  [SMALL_STATE(325)] = 21983,
  [SMALL_STATE(326)] = 22068,
  [SMALL_STATE(327)] = 22153,
  [SMALL_STATE(328)] = 22238,
  [SMALL_STATE(329)] = 22323,
  [SMALL_STATE(330)] = 22368,
  [SMALL_STATE(331)] = 22413,
  [SMALL_STATE(332)] = 22458,
  [SMALL_STATE(333)] = 22503,
  [SMALL_STATE(334)] = 22548,
  [SMALL_STATE(335)] = 22593,
  [SMALL_STATE(336)] = 22638,
  [SMALL_STATE(337)] = 22723,
  [SMALL_STATE(338)] = 22774,
  [SMALL_STATE(339)] = 22819,
  [SMALL_STATE(340)] = 22864,
  [SMALL_STATE(341)] = 22914,
  [SMALL_STATE(342)] = 22966,
  [SMALL_STATE(343)] = 23016,
  [SMALL_STATE(344)] = 23068,
  [SMALL_STATE(345)] = 23112,
  [SMALL_STATE(346)] = 23159,
  [SMALL_STATE(347)] = 23238,
  [SMALL_STATE(348)] = 23317,
  [SMALL_STATE(349)] = 23396,
  [SMALL_STATE(350)] = 23475,
  [SMALL_STATE(351)] = 23524,
  [SMALL_STATE(352)] = 23601,
  [SMALL_STATE(353)] = 23680,
  [SMALL_STATE(354)] = 23759,
  [SMALL_STATE(355)] = 23808,
  [SMALL_STATE(356)] = 23884,
  [SMALL_STATE(357)] = 23960,
  [SMALL_STATE(358)] = 24012,
  [SMALL_STATE(359)] = 24064,
  [SMALL_STATE(360)] = 24112,
  [SMALL_STATE(361)] = 24188,
  [SMALL_STATE(362)] = 24264,
  [SMALL_STATE(363)] = 24314,
  [SMALL_STATE(364)] = 24364,
  [SMALL_STATE(365)] = 24408,
  [SMALL_STATE(366)] = 24450,
  [SMALL_STATE(367)] = 24492,
  [SMALL_STATE(368)] = 24534,
  [SMALL_STATE(369)] = 24576,
  [SMALL_STATE(370)] = 24618,
  [SMALL_STATE(371)] = 24660,
  [SMALL_STATE(372)] = 24702,
  [SMALL_STATE(373)] = 24744,
  [SMALL_STATE(374)] = 24786,
  [SMALL_STATE(375)] = 24834,
  [SMALL_STATE(376)] = 24910,
  [SMALL_STATE(377)] = 24986,
  [SMALL_STATE(378)] = 25062,
  [SMALL_STATE(379)] = 25138,
  [SMALL_STATE(380)] = 25214,
  [SMALL_STATE(381)] = 25290,
  [SMALL_STATE(382)] = 25366,
  [SMALL_STATE(383)] = 25442,
  [SMALL_STATE(384)] = 25518,
  [SMALL_STATE(385)] = 25594,
  [SMALL_STATE(386)] = 25670,
  [SMALL_STATE(387)] = 25746,
  [SMALL_STATE(388)] = 25822,
  [SMALL_STATE(389)] = 25898,
  [SMALL_STATE(390)] = 25974,
  [SMALL_STATE(391)] = 26050,
  [SMALL_STATE(392)] = 26126,
  [SMALL_STATE(393)] = 26202,
  [SMALL_STATE(394)] = 26243,
  [SMALL_STATE(395)] = 26284,
  [SMALL_STATE(396)] = 26325,
  [SMALL_STATE(397)] = 26366,
  [SMALL_STATE(398)] = 26407,
  [SMALL_STATE(399)] = 26448,
  [SMALL_STATE(400)] = 26489,
  [SMALL_STATE(401)] = 26530,
  [SMALL_STATE(402)] = 26571,
  [SMALL_STATE(403)] = 26612,
  [SMALL_STATE(404)] = 26653,
  [SMALL_STATE(405)] = 26694,
  [SMALL_STATE(406)] = 26735,
  [SMALL_STATE(407)] = 26776,
  [SMALL_STATE(408)] = 26817,
  [SMALL_STATE(409)] = 26890,
  [SMALL_STATE(410)] = 26931,
  [SMALL_STATE(411)] = 26972,
  [SMALL_STATE(412)] = 27013,
  [SMALL_STATE(413)] = 27054,
  [SMALL_STATE(414)] = 27095,
  [SMALL_STATE(415)] = 27136,
  [SMALL_STATE(416)] = 27177,
  [SMALL_STATE(417)] = 27218,
  [SMALL_STATE(418)] = 27259,
  [SMALL_STATE(419)] = 27300,
  [SMALL_STATE(420)] = 27373,
  [SMALL_STATE(421)] = 27414,
  [SMALL_STATE(422)] = 27459,
  [SMALL_STATE(423)] = 27500,
  [SMALL_STATE(424)] = 27541,
  [SMALL_STATE(425)] = 27614,
  [SMALL_STATE(426)] = 27655,
  [SMALL_STATE(427)] = 27696,
  [SMALL_STATE(428)] = 27737,
  [SMALL_STATE(429)] = 27779,
  [SMALL_STATE(430)] = 27821,
  [SMALL_STATE(431)] = 27863,
  [SMALL_STATE(432)] = 27905,
  [SMALL_STATE(433)] = 27947,
  [SMALL_STATE(434)] = 27989,
  [SMALL_STATE(435)] = 28029,
  [SMALL_STATE(436)] = 28069,
  [SMALL_STATE(437)] = 28109,
  [SMALL_STATE(438)] = 28149,
  [SMALL_STATE(439)] = 28189,
  [SMALL_STATE(440)] = 28229,
  [SMALL_STATE(441)] = 28269,
  [SMALL_STATE(442)] = 28311,
  [SMALL_STATE(443)] = 28353,
  [SMALL_STATE(444)] = 28393,
  [SMALL_STATE(445)] = 28435,
  [SMALL_STATE(446)] = 28475,
  [SMALL_STATE(447)] = 28517,
  [SMALL_STATE(448)] = 28559,
  [SMALL_STATE(449)] = 28601,
  [SMALL_STATE(450)] = 28643,
  [SMALL_STATE(451)] = 28682,
  [SMALL_STATE(452)] = 28721,
  [SMALL_STATE(453)] = 28760,
  [SMALL_STATE(454)] = 28799,
  [SMALL_STATE(455)] = 28838,
  [SMALL_STATE(456)] = 28877,
  [SMALL_STATE(457)] = 28916,
  [SMALL_STATE(458)] = 28957,
  [SMALL_STATE(459)] = 28996,
  [SMALL_STATE(460)] = 29035,
  [SMALL_STATE(461)] = 29074,
  [SMALL_STATE(462)] = 29113,
  [SMALL_STATE(463)] = 29152,
  [SMALL_STATE(464)] = 29191,
  [SMALL_STATE(465)] = 29230,
  [SMALL_STATE(466)] = 29269,
  [SMALL_STATE(467)] = 29308,
  [SMALL_STATE(468)] = 29373,
  [SMALL_STATE(469)] = 29412,
  [SMALL_STATE(470)] = 29451,
  [SMALL_STATE(471)] = 29490,
  [SMALL_STATE(472)] = 29529,
  [SMALL_STATE(473)] = 29568,
  [SMALL_STATE(474)] = 29607,
  [SMALL_STATE(475)] = 29646,
  [SMALL_STATE(476)] = 29711,
  [SMALL_STATE(477)] = 29750,
  [SMALL_STATE(478)] = 29789,
  [SMALL_STATE(479)] = 29828,
  [SMALL_STATE(480)] = 29867,
  [SMALL_STATE(481)] = 29906,
  [SMALL_STATE(482)] = 29945,
  [SMALL_STATE(483)] = 30012,
  [SMALL_STATE(484)] = 30051,
  [SMALL_STATE(485)] = 30090,
  [SMALL_STATE(486)] = 30157,
  [SMALL_STATE(487)] = 30200,
  [SMALL_STATE(488)] = 30243,
  [SMALL_STATE(489)] = 30284,
  [SMALL_STATE(490)] = 30342,
  [SMALL_STATE(491)] = 30398,
  [SMALL_STATE(492)] = 30433,
  [SMALL_STATE(493)] = 30465,
  [SMALL_STATE(494)] = 30497,
  [SMALL_STATE(495)] = 30528,
  [SMALL_STATE(496)] = 30559,
  [SMALL_STATE(497)] = 30592,
  [SMALL_STATE(498)] = 30623,
  [SMALL_STATE(499)] = 30654,
  [SMALL_STATE(500)] = 30685,
  [SMALL_STATE(501)] = 30716,
  [SMALL_STATE(502)] = 30747,
  [SMALL_STATE(503)] = 30778,
  [SMALL_STATE(504)] = 30809,
  [SMALL_STATE(505)] = 30840,
  [SMALL_STATE(506)] = 30871,
  [SMALL_STATE(507)] = 30902,
  [SMALL_STATE(508)] = 30933,
  [SMALL_STATE(509)] = 30968,
  [SMALL_STATE(510)] = 30999,
  [SMALL_STATE(511)] = 31030,
  [SMALL_STATE(512)] = 31061,
  [SMALL_STATE(513)] = 31092,
  [SMALL_STATE(514)] = 31125,
  [SMALL_STATE(515)] = 31156,
  [SMALL_STATE(516)] = 31202,
  [SMALL_STATE(517)] = 31232,
  [SMALL_STATE(518)] = 31276,
  [SMALL_STATE(519)] = 31322,
  [SMALL_STATE(520)] = 31354,
  [SMALL_STATE(521)] = 31386,
  [SMALL_STATE(522)] = 31416,
  [SMALL_STATE(523)] = 31446,
  [SMALL_STATE(524)] = 31495,
  [SMALL_STATE(525)] = 31540,
  [SMALL_STATE(526)] = 31583,
  [SMALL_STATE(527)] = 31612,
  [SMALL_STATE(528)] = 31641,
  [SMALL_STATE(529)] = 31686,
  [SMALL_STATE(530)] = 31735,
  [SMALL_STATE(531)] = 31784,
  [SMALL_STATE(532)] = 31813,
  [SMALL_STATE(533)] = 31862,
  [SMALL_STATE(534)] = 31908,
  [SMALL_STATE(535)] = 31936,
  [SMALL_STATE(536)] = 31982,
  [SMALL_STATE(537)] = 32026,
  [SMALL_STATE(538)] = 32070,
  [SMALL_STATE(539)] = 32114,
  [SMALL_STATE(540)] = 32160,
  [SMALL_STATE(541)] = 32206,
  [SMALL_STATE(542)] = 32252,
  [SMALL_STATE(543)] = 32294,
  [SMALL_STATE(544)] = 32340,
  [SMALL_STATE(545)] = 32384,
  [SMALL_STATE(546)] = 32426,
  [SMALL_STATE(547)] = 32472,
  [SMALL_STATE(548)] = 32515,
  [SMALL_STATE(549)] = 32558,
  [SMALL_STATE(550)] = 32601,
  [SMALL_STATE(551)] = 32630,
  [SMALL_STATE(552)] = 32661,
  [SMALL_STATE(553)] = 32686,
  [SMALL_STATE(554)] = 32716,
  [SMALL_STATE(555)] = 32740,
  [SMALL_STATE(556)] = 32765,
  [SMALL_STATE(557)] = 32792,
  [SMALL_STATE(558)] = 32819,
  [SMALL_STATE(559)] = 32841,
  [SMALL_STATE(560)] = 32863,
  [SMALL_STATE(561)] = 32885,
  [SMALL_STATE(562)] = 32915,
  [SMALL_STATE(563)] = 32937,
  [SMALL_STATE(564)] = 32959,
  [SMALL_STATE(565)] = 32981,
  [SMALL_STATE(566)] = 33003,
  [SMALL_STATE(567)] = 33025,
  [SMALL_STATE(568)] = 33047,
  [SMALL_STATE(569)] = 33069,
  [SMALL_STATE(570)] = 33091,
  [SMALL_STATE(571)] = 33113,
  [SMALL_STATE(572)] = 33134,
  [SMALL_STATE(573)] = 33155,
  [SMALL_STATE(574)] = 33176,
  [SMALL_STATE(575)] = 33197,
  [SMALL_STATE(576)] = 33218,
  [SMALL_STATE(577)] = 33239,
  [SMALL_STATE(578)] = 33260,
  [SMALL_STATE(579)] = 33281,
  [SMALL_STATE(580)] = 33302,
  [SMALL_STATE(581)] = 33323,
  [SMALL_STATE(582)] = 33350,
  [SMALL_STATE(583)] = 33371,
  [SMALL_STATE(584)] = 33392,
  [SMALL_STATE(585)] = 33413,
  [SMALL_STATE(586)] = 33432,
  [SMALL_STATE(587)] = 33460,
  [SMALL_STATE(588)] = 33480,
  [SMALL_STATE(589)] = 33500,
  [SMALL_STATE(590)] = 33520,
  [SMALL_STATE(591)] = 33548,
  [SMALL_STATE(592)] = 33566,
  [SMALL_STATE(593)] = 33586,
  [SMALL_STATE(594)] = 33606,
  [SMALL_STATE(595)] = 33634,
  [SMALL_STATE(596)] = 33662,
  [SMALL_STATE(597)] = 33680,
  [SMALL_STATE(598)] = 33700,
  [SMALL_STATE(599)] = 33718,
  [SMALL_STATE(600)] = 33736,
  [SMALL_STATE(601)] = 33754,
  [SMALL_STATE(602)] = 33772,
  [SMALL_STATE(603)] = 33790,
  [SMALL_STATE(604)] = 33818,
  [SMALL_STATE(605)] = 33838,
  [SMALL_STATE(606)] = 33858,
  [SMALL_STATE(607)] = 33886,
  [SMALL_STATE(608)] = 33906,
  [SMALL_STATE(609)] = 33926,
  [SMALL_STATE(610)] = 33946,
  [SMALL_STATE(611)] = 33966,
  [SMALL_STATE(612)] = 33984,
  [SMALL_STATE(613)] = 34002,
  [SMALL_STATE(614)] = 34020,
  [SMALL_STATE(615)] = 34038,
  [SMALL_STATE(616)] = 34056,
  [SMALL_STATE(617)] = 34074,
  [SMALL_STATE(618)] = 34092,
  [SMALL_STATE(619)] = 34115,
  [SMALL_STATE(620)] = 34138,
  [SMALL_STATE(621)] = 34163,
  [SMALL_STATE(622)] = 34184,
  [SMALL_STATE(623)] = 34205,
  [SMALL_STATE(624)] = 34228,
  [SMALL_STATE(625)] = 34251,
  [SMALL_STATE(626)] = 34274,
  [SMALL_STATE(627)] = 34299,
  [SMALL_STATE(628)] = 34322,
  [SMALL_STATE(629)] = 34345,
  [SMALL_STATE(630)] = 34370,
  [SMALL_STATE(631)] = 34393,
  [SMALL_STATE(632)] = 34416,
  [SMALL_STATE(633)] = 34439,
  [SMALL_STATE(634)] = 34462,
  [SMALL_STATE(635)] = 34487,
  [SMALL_STATE(636)] = 34506,
  [SMALL_STATE(637)] = 34529,
  [SMALL_STATE(638)] = 34552,
  [SMALL_STATE(639)] = 34577,
  [SMALL_STATE(640)] = 34600,
  [SMALL_STATE(641)] = 34623,
  [SMALL_STATE(642)] = 34646,
  [SMALL_STATE(643)] = 34671,
  [SMALL_STATE(644)] = 34696,
  [SMALL_STATE(645)] = 34721,
  [SMALL_STATE(646)] = 34744,
  [SMALL_STATE(647)] = 34767,
  [SMALL_STATE(648)] = 34790,
  [SMALL_STATE(649)] = 34813,
  [SMALL_STATE(650)] = 34834,
  [SMALL_STATE(651)] = 34855,
  [SMALL_STATE(652)] = 34878,
  [SMALL_STATE(653)] = 34903,
  [SMALL_STATE(654)] = 34926,
  [SMALL_STATE(655)] = 34949,
  [SMALL_STATE(656)] = 34972,
  [SMALL_STATE(657)] = 34997,
  [SMALL_STATE(658)] = 35020,
  [SMALL_STATE(659)] = 35043,
  [SMALL_STATE(660)] = 35068,
  [SMALL_STATE(661)] = 35091,
  [SMALL_STATE(662)] = 35114,
  [SMALL_STATE(663)] = 35137,
  [SMALL_STATE(664)] = 35159,
  [SMALL_STATE(665)] = 35181,
  [SMALL_STATE(666)] = 35203,
  [SMALL_STATE(667)] = 35225,
  [SMALL_STATE(668)] = 35245,
  [SMALL_STATE(669)] = 35267,
  [SMALL_STATE(670)] = 35289,
  [SMALL_STATE(671)] = 35311,
  [SMALL_STATE(672)] = 35331,
  [SMALL_STATE(673)] = 35353,
  [SMALL_STATE(674)] = 35375,
  [SMALL_STATE(675)] = 35393,
  [SMALL_STATE(676)] = 35409,
  [SMALL_STATE(677)] = 35431,
  [SMALL_STATE(678)] = 35453,
  [SMALL_STATE(679)] = 35475,
  [SMALL_STATE(680)] = 35491,
  [SMALL_STATE(681)] = 35513,
  [SMALL_STATE(682)] = 35533,
  [SMALL_STATE(683)] = 35555,
  [SMALL_STATE(684)] = 35577,
  [SMALL_STATE(685)] = 35595,
  [SMALL_STATE(686)] = 35617,
  [SMALL_STATE(687)] = 35637,
  [SMALL_STATE(688)] = 35657,
  [SMALL_STATE(689)] = 35673,
  [SMALL_STATE(690)] = 35695,
  [SMALL_STATE(691)] = 35717,
  [SMALL_STATE(692)] = 35739,
  [SMALL_STATE(693)] = 35757,
  [SMALL_STATE(694)] = 35775,
  [SMALL_STATE(695)] = 35797,
  [SMALL_STATE(696)] = 35817,
  [SMALL_STATE(697)] = 35836,
  [SMALL_STATE(698)] = 35855,
  [SMALL_STATE(699)] = 35874,
  [SMALL_STATE(700)] = 35893,
  [SMALL_STATE(701)] = 35912,
  [SMALL_STATE(702)] = 35927,
  [SMALL_STATE(703)] = 35946,
  [SMALL_STATE(704)] = 35965,
  [SMALL_STATE(705)] = 35982,
  [SMALL_STATE(706)] = 35999,
  [SMALL_STATE(707)] = 36018,
  [SMALL_STATE(708)] = 36037,
  [SMALL_STATE(709)] = 36056,
  [SMALL_STATE(710)] = 36073,
  [SMALL_STATE(711)] = 36092,
  [SMALL_STATE(712)] = 36111,
  [SMALL_STATE(713)] = 36126,
  [SMALL_STATE(714)] = 36145,
  [SMALL_STATE(715)] = 36164,
  [SMALL_STATE(716)] = 36183,
  [SMALL_STATE(717)] = 36202,
  [SMALL_STATE(718)] = 36221,
  [SMALL_STATE(719)] = 36240,
  [SMALL_STATE(720)] = 36259,
  [SMALL_STATE(721)] = 36278,
  [SMALL_STATE(722)] = 36297,
  [SMALL_STATE(723)] = 36316,
  [SMALL_STATE(724)] = 36335,
  [SMALL_STATE(725)] = 36354,
  [SMALL_STATE(726)] = 36373,
  [SMALL_STATE(727)] = 36392,
  [SMALL_STATE(728)] = 36411,
  [SMALL_STATE(729)] = 36430,
  [SMALL_STATE(730)] = 36449,
  [SMALL_STATE(731)] = 36468,
  [SMALL_STATE(732)] = 36487,
  [SMALL_STATE(733)] = 36504,
  [SMALL_STATE(734)] = 36523,
  [SMALL_STATE(735)] = 36542,
  [SMALL_STATE(736)] = 36561,
  [SMALL_STATE(737)] = 36580,
  [SMALL_STATE(738)] = 36599,
  [SMALL_STATE(739)] = 36618,
  [SMALL_STATE(740)] = 36637,
  [SMALL_STATE(741)] = 36656,
  [SMALL_STATE(742)] = 36675,
  [SMALL_STATE(743)] = 36694,
  [SMALL_STATE(744)] = 36713,
  [SMALL_STATE(745)] = 36732,
  [SMALL_STATE(746)] = 36751,
  [SMALL_STATE(747)] = 36770,
  [SMALL_STATE(748)] = 36789,
  [SMALL_STATE(749)] = 36808,
  [SMALL_STATE(750)] = 36825,
  [SMALL_STATE(751)] = 36840,
  [SMALL_STATE(752)] = 36859,
  [SMALL_STATE(753)] = 36876,
  [SMALL_STATE(754)] = 36891,
  [SMALL_STATE(755)] = 36906,
  [SMALL_STATE(756)] = 36925,
  [SMALL_STATE(757)] = 36944,
  [SMALL_STATE(758)] = 36963,
  [SMALL_STATE(759)] = 36982,
  [SMALL_STATE(760)] = 37001,
  [SMALL_STATE(761)] = 37020,
  [SMALL_STATE(762)] = 37039,
  [SMALL_STATE(763)] = 37058,
  [SMALL_STATE(764)] = 37077,
  [SMALL_STATE(765)] = 37096,
  [SMALL_STATE(766)] = 37115,
  [SMALL_STATE(767)] = 37134,
  [SMALL_STATE(768)] = 37153,
  [SMALL_STATE(769)] = 37172,
  [SMALL_STATE(770)] = 37191,
  [SMALL_STATE(771)] = 37210,
  [SMALL_STATE(772)] = 37229,
  [SMALL_STATE(773)] = 37248,
  [SMALL_STATE(774)] = 37265,
  [SMALL_STATE(775)] = 37284,
  [SMALL_STATE(776)] = 37303,
  [SMALL_STATE(777)] = 37320,
  [SMALL_STATE(778)] = 37337,
  [SMALL_STATE(779)] = 37354,
  [SMALL_STATE(780)] = 37373,
  [SMALL_STATE(781)] = 37392,
  [SMALL_STATE(782)] = 37411,
  [SMALL_STATE(783)] = 37430,
  [SMALL_STATE(784)] = 37449,
  [SMALL_STATE(785)] = 37468,
  [SMALL_STATE(786)] = 37487,
  [SMALL_STATE(787)] = 37506,
  [SMALL_STATE(788)] = 37525,
  [SMALL_STATE(789)] = 37544,
  [SMALL_STATE(790)] = 37563,
  [SMALL_STATE(791)] = 37580,
  [SMALL_STATE(792)] = 37599,
  [SMALL_STATE(793)] = 37618,
  [SMALL_STATE(794)] = 37637,
  [SMALL_STATE(795)] = 37656,
  [SMALL_STATE(796)] = 37675,
  [SMALL_STATE(797)] = 37694,
  [SMALL_STATE(798)] = 37713,
  [SMALL_STATE(799)] = 37732,
  [SMALL_STATE(800)] = 37751,
  [SMALL_STATE(801)] = 37770,
  [SMALL_STATE(802)] = 37789,
  [SMALL_STATE(803)] = 37804,
  [SMALL_STATE(804)] = 37823,
  [SMALL_STATE(805)] = 37842,
  [SMALL_STATE(806)] = 37861,
  [SMALL_STATE(807)] = 37880,
  [SMALL_STATE(808)] = 37895,
  [SMALL_STATE(809)] = 37910,
  [SMALL_STATE(810)] = 37929,
  [SMALL_STATE(811)] = 37948,
  [SMALL_STATE(812)] = 37963,
  [SMALL_STATE(813)] = 37982,
  [SMALL_STATE(814)] = 38001,
  [SMALL_STATE(815)] = 38020,
  [SMALL_STATE(816)] = 38035,
  [SMALL_STATE(817)] = 38054,
  [SMALL_STATE(818)] = 38073,
  [SMALL_STATE(819)] = 38092,
  [SMALL_STATE(820)] = 38107,
  [SMALL_STATE(821)] = 38122,
  [SMALL_STATE(822)] = 38139,
  [SMALL_STATE(823)] = 38158,
  [SMALL_STATE(824)] = 38177,
  [SMALL_STATE(825)] = 38196,
  [SMALL_STATE(826)] = 38215,
  [SMALL_STATE(827)] = 38234,
  [SMALL_STATE(828)] = 38249,
  [SMALL_STATE(829)] = 38268,
  [SMALL_STATE(830)] = 38284,
  [SMALL_STATE(831)] = 38298,
  [SMALL_STATE(832)] = 38314,
  [SMALL_STATE(833)] = 38330,
  [SMALL_STATE(834)] = 38346,
  [SMALL_STATE(835)] = 38362,
  [SMALL_STATE(836)] = 38378,
  [SMALL_STATE(837)] = 38394,
  [SMALL_STATE(838)] = 38408,
  [SMALL_STATE(839)] = 38422,
  [SMALL_STATE(840)] = 38438,
  [SMALL_STATE(841)] = 38454,
  [SMALL_STATE(842)] = 38470,
  [SMALL_STATE(843)] = 38486,
  [SMALL_STATE(844)] = 38500,
  [SMALL_STATE(845)] = 38514,
  [SMALL_STATE(846)] = 38530,
  [SMALL_STATE(847)] = 38546,
  [SMALL_STATE(848)] = 38562,
  [SMALL_STATE(849)] = 38578,
  [SMALL_STATE(850)] = 38594,
  [SMALL_STATE(851)] = 38608,
  [SMALL_STATE(852)] = 38622,
  [SMALL_STATE(853)] = 38636,
  [SMALL_STATE(854)] = 38652,
  [SMALL_STATE(855)] = 38666,
  [SMALL_STATE(856)] = 38682,
  [SMALL_STATE(857)] = 38696,
  [SMALL_STATE(858)] = 38712,
  [SMALL_STATE(859)] = 38726,
  [SMALL_STATE(860)] = 38742,
  [SMALL_STATE(861)] = 38756,
  [SMALL_STATE(862)] = 38770,
  [SMALL_STATE(863)] = 38786,
  [SMALL_STATE(864)] = 38800,
  [SMALL_STATE(865)] = 38816,
  [SMALL_STATE(866)] = 38832,
  [SMALL_STATE(867)] = 38848,
  [SMALL_STATE(868)] = 38862,
  [SMALL_STATE(869)] = 38876,
  [SMALL_STATE(870)] = 38890,
  [SMALL_STATE(871)] = 38904,
  [SMALL_STATE(872)] = 38920,
  [SMALL_STATE(873)] = 38936,
  [SMALL_STATE(874)] = 38952,
  [SMALL_STATE(875)] = 38966,
  [SMALL_STATE(876)] = 38982,
  [SMALL_STATE(877)] = 38998,
  [SMALL_STATE(878)] = 39014,
  [SMALL_STATE(879)] = 39030,
  [SMALL_STATE(880)] = 39046,
  [SMALL_STATE(881)] = 39062,
  [SMALL_STATE(882)] = 39078,
  [SMALL_STATE(883)] = 39092,
  [SMALL_STATE(884)] = 39106,
  [SMALL_STATE(885)] = 39122,
  [SMALL_STATE(886)] = 39138,
  [SMALL_STATE(887)] = 39152,
  [SMALL_STATE(888)] = 39168,
  [SMALL_STATE(889)] = 39184,
  [SMALL_STATE(890)] = 39198,
  [SMALL_STATE(891)] = 39212,
  [SMALL_STATE(892)] = 39228,
  [SMALL_STATE(893)] = 39242,
  [SMALL_STATE(894)] = 39258,
  [SMALL_STATE(895)] = 39272,
  [SMALL_STATE(896)] = 39288,
  [SMALL_STATE(897)] = 39304,
  [SMALL_STATE(898)] = 39318,
  [SMALL_STATE(899)] = 39334,
  [SMALL_STATE(900)] = 39350,
  [SMALL_STATE(901)] = 39366,
  [SMALL_STATE(902)] = 39382,
  [SMALL_STATE(903)] = 39398,
  [SMALL_STATE(904)] = 39412,
  [SMALL_STATE(905)] = 39426,
  [SMALL_STATE(906)] = 39442,
  [SMALL_STATE(907)] = 39458,
  [SMALL_STATE(908)] = 39472,
  [SMALL_STATE(909)] = 39488,
  [SMALL_STATE(910)] = 39504,
  [SMALL_STATE(911)] = 39518,
  [SMALL_STATE(912)] = 39534,
  [SMALL_STATE(913)] = 39548,
  [SMALL_STATE(914)] = 39564,
  [SMALL_STATE(915)] = 39580,
  [SMALL_STATE(916)] = 39596,
  [SMALL_STATE(917)] = 39612,
  [SMALL_STATE(918)] = 39625,
  [SMALL_STATE(919)] = 39638,
  [SMALL_STATE(920)] = 39651,
  [SMALL_STATE(921)] = 39664,
  [SMALL_STATE(922)] = 39677,
  [SMALL_STATE(923)] = 39690,
  [SMALL_STATE(924)] = 39703,
  [SMALL_STATE(925)] = 39716,
  [SMALL_STATE(926)] = 39729,
  [SMALL_STATE(927)] = 39742,
  [SMALL_STATE(928)] = 39755,
  [SMALL_STATE(929)] = 39768,
  [SMALL_STATE(930)] = 39781,
  [SMALL_STATE(931)] = 39794,
  [SMALL_STATE(932)] = 39807,
  [SMALL_STATE(933)] = 39820,
  [SMALL_STATE(934)] = 39833,
  [SMALL_STATE(935)] = 39846,
  [SMALL_STATE(936)] = 39859,
  [SMALL_STATE(937)] = 39872,
  [SMALL_STATE(938)] = 39885,
  [SMALL_STATE(939)] = 39898,
  [SMALL_STATE(940)] = 39911,
  [SMALL_STATE(941)] = 39924,
  [SMALL_STATE(942)] = 39937,
  [SMALL_STATE(943)] = 39950,
  [SMALL_STATE(944)] = 39963,
  [SMALL_STATE(945)] = 39976,
  [SMALL_STATE(946)] = 39989,
  [SMALL_STATE(947)] = 40002,
  [SMALL_STATE(948)] = 40015,
  [SMALL_STATE(949)] = 40028,
  [SMALL_STATE(950)] = 40041,
  [SMALL_STATE(951)] = 40054,
  [SMALL_STATE(952)] = 40067,
  [SMALL_STATE(953)] = 40080,
  [SMALL_STATE(954)] = 40093,
  [SMALL_STATE(955)] = 40106,
  [SMALL_STATE(956)] = 40119,
  [SMALL_STATE(957)] = 40132,
  [SMALL_STATE(958)] = 40145,
  [SMALL_STATE(959)] = 40158,
  [SMALL_STATE(960)] = 40171,
  [SMALL_STATE(961)] = 40184,
  [SMALL_STATE(962)] = 40197,
  [SMALL_STATE(963)] = 40210,
  [SMALL_STATE(964)] = 40223,
  [SMALL_STATE(965)] = 40236,
  [SMALL_STATE(966)] = 40249,
  [SMALL_STATE(967)] = 40262,
  [SMALL_STATE(968)] = 40275,
  [SMALL_STATE(969)] = 40288,
  [SMALL_STATE(970)] = 40301,
  [SMALL_STATE(971)] = 40314,
  [SMALL_STATE(972)] = 40327,
  [SMALL_STATE(973)] = 40340,
  [SMALL_STATE(974)] = 40353,
  [SMALL_STATE(975)] = 40366,
  [SMALL_STATE(976)] = 40379,
  [SMALL_STATE(977)] = 40392,
  [SMALL_STATE(978)] = 40405,
  [SMALL_STATE(979)] = 40418,
  [SMALL_STATE(980)] = 40431,
  [SMALL_STATE(981)] = 40444,
  [SMALL_STATE(982)] = 40457,
  [SMALL_STATE(983)] = 40470,
  [SMALL_STATE(984)] = 40483,
  [SMALL_STATE(985)] = 40496,
  [SMALL_STATE(986)] = 40509,
  [SMALL_STATE(987)] = 40522,
  [SMALL_STATE(988)] = 40535,
  [SMALL_STATE(989)] = 40548,
  [SMALL_STATE(990)] = 40561,
  [SMALL_STATE(991)] = 40574,
  [SMALL_STATE(992)] = 40587,
  [SMALL_STATE(993)] = 40600,
  [SMALL_STATE(994)] = 40613,
  [SMALL_STATE(995)] = 40626,
  [SMALL_STATE(996)] = 40639,
  [SMALL_STATE(997)] = 40652,
  [SMALL_STATE(998)] = 40665,
  [SMALL_STATE(999)] = 40678,
  [SMALL_STATE(1000)] = 40691,
  [SMALL_STATE(1001)] = 40704,
  [SMALL_STATE(1002)] = 40717,
  [SMALL_STATE(1003)] = 40730,
  [SMALL_STATE(1004)] = 40743,
  [SMALL_STATE(1005)] = 40756,
  [SMALL_STATE(1006)] = 40769,
  [SMALL_STATE(1007)] = 40782,
  [SMALL_STATE(1008)] = 40795,
  [SMALL_STATE(1009)] = 40808,
  [SMALL_STATE(1010)] = 40821,
  [SMALL_STATE(1011)] = 40834,
  [SMALL_STATE(1012)] = 40847,
  [SMALL_STATE(1013)] = 40860,
  [SMALL_STATE(1014)] = 40873,
  [SMALL_STATE(1015)] = 40886,
  [SMALL_STATE(1016)] = 40899,
  [SMALL_STATE(1017)] = 40912,
  [SMALL_STATE(1018)] = 40925,
  [SMALL_STATE(1019)] = 40938,
  [SMALL_STATE(1020)] = 40951,
  [SMALL_STATE(1021)] = 40964,
  [SMALL_STATE(1022)] = 40977,
  [SMALL_STATE(1023)] = 40990,
  [SMALL_STATE(1024)] = 41003,
  [SMALL_STATE(1025)] = 41016,
  [SMALL_STATE(1026)] = 41029,
  [SMALL_STATE(1027)] = 41042,
  [SMALL_STATE(1028)] = 41055,
  [SMALL_STATE(1029)] = 41068,
  [SMALL_STATE(1030)] = 41081,
  [SMALL_STATE(1031)] = 41094,
  [SMALL_STATE(1032)] = 41107,
  [SMALL_STATE(1033)] = 41120,
  [SMALL_STATE(1034)] = 41133,
  [SMALL_STATE(1035)] = 41146,
  [SMALL_STATE(1036)] = 41159,
  [SMALL_STATE(1037)] = 41172,
  [SMALL_STATE(1038)] = 41185,
  [SMALL_STATE(1039)] = 41198,
  [SMALL_STATE(1040)] = 41211,
  [SMALL_STATE(1041)] = 41224,
  [SMALL_STATE(1042)] = 41237,
  [SMALL_STATE(1043)] = 41250,
  [SMALL_STATE(1044)] = 41263,
  [SMALL_STATE(1045)] = 41276,
  [SMALL_STATE(1046)] = 41289,
  [SMALL_STATE(1047)] = 41302,
  [SMALL_STATE(1048)] = 41315,
  [SMALL_STATE(1049)] = 41328,
  [SMALL_STATE(1050)] = 41341,
  [SMALL_STATE(1051)] = 41354,
  [SMALL_STATE(1052)] = 41367,
  [SMALL_STATE(1053)] = 41380,
  [SMALL_STATE(1054)] = 41393,
  [SMALL_STATE(1055)] = 41406,
  [SMALL_STATE(1056)] = 41419,
  [SMALL_STATE(1057)] = 41432,
  [SMALL_STATE(1058)] = 41445,
  [SMALL_STATE(1059)] = 41458,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1055),
  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
  [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 0, 0, 0),
  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(485),
  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360),
  [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849),
  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712),
  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653),
  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(624),
  [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355),
  [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486),
  [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(835),
  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(920),
  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(876),
  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(896),
  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(899),
  [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(827),
  [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511),
  [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47),
  [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1055),
  [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
  [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
  [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41),
  [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(586),
  [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(815),
  [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(627),
  [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628),
  [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40),
  [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
  [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1036),
  [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(993),
  [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22),
  [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
  [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125),
  [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381),
  [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(970),
  [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226),
  [79] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(47),
  [82] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(10),
  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0),
  [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(586),
  [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(815),
  [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(627),
  [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(628),
  [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(40),
  [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(62),
  [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(1036),
  [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(993),
  [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(22),
  [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(63),
  [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(125),
  [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(381),
  [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(970),
  [126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(226),
  [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(47),
  [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(10),
  [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(586),
  [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(815),
  [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(627),
  [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(628),
  [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(40),
  [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(62),
  [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(1036),
  [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(993),
  [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(22),
  [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(63),
  [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(125),
  [168] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(381),
  [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(970),
  [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(226),
  [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
  [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344),
  [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(590),
  [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(808),
  [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(632),
  [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633),
  [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
  [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1032),
  [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(949),
  [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(312),
  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
  [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378),
  [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220),
  [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(287),
  [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128),
  [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338),
  [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122),
  [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(191),
  [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130),
  [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90),
  [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126),
  [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243),
  [221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124),
  [223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146),
  [225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
  [227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(606),
  [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(820),
  [231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(645),
  [233] = {.entry = {.count = 1, .reusable = false}}, SHIFT(646),
  [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
  [237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1042),
  [239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136),
  [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198),
  [243] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129),
  [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387),
  [247] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1007),
  [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41),
  [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
  [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(146),
  [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(9),
  [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(606),
  [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(820),
  [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(645),
  [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(646),
  [271] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(44),
  [274] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(1042),
  [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(136),
  [280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(198),
  [283] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(129),
  [286] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(387),
  [289] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(1007),
  [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0),
  [294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(228),
  [297] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(146),
  [300] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(9),
  [303] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(606),
  [306] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(820),
  [309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(645),
  [312] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(646),
  [315] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(44),
  [318] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(1042),
  [321] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(136),
  [324] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(198),
  [327] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(129),
  [330] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(387),
  [333] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(1007),
  [336] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(228),
  [339] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218),
  [341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
  [343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(594),
  [345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(811),
  [347] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657),
  [349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(658),
  [351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
  [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1047),
  [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151),
  [357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(262),
  [359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123),
  [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356),
  [363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1004),
  [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224),
  [367] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(218),
  [370] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(11),
  [373] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(594),
  [376] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(811),
  [379] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(657),
  [382] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(658),
  [385] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(38),
  [388] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(1047),
  [391] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(151),
  [394] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(262),
  [397] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(123),
  [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(356),
  [403] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(1004),
  [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(224),
  [409] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(218),
  [412] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(11),
  [415] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(594),
  [418] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(811),
  [421] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(657),
  [424] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(658),
  [427] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(38),
  [430] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(1047),
  [433] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(151),
  [436] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(262),
  [439] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(123),
  [442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(356),
  [445] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(1004),
  [448] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_call_expr, 2, 10, 41), SHIFT(224),
  [451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access_expr, 2, 0, 42),
  [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access_expr, 2, 0, 42),
  [455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_field_access_expr_repeat1, 2, 0, 0),
  [457] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_field_access_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(869),
  [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_field_access_expr_repeat1, 2, 0, 0),
  [462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_upper_case_qid, 1, 0, 0),
  [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869),
  [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_upper_case_qid, 1, 0, 0),
  [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_upper_case_qid, 2, 0, 0),
  [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_upper_case_qid, 2, 0, 0),
  [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_upper_case_qid_repeat1, 2, 0, 0),
  [474] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_upper_case_qid_repeat1, 2, 0, 0), SHIFT_REPEAT(869),
  [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_upper_case_qid_repeat1, 2, 0, 0),
  [479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bin_op_expr, 2, 0, 40),
  [481] = {.entry = {.count = 1, .reusable = false}}, SHIFT(521),
  [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bin_op_expr, 2, 0, 40),
  [485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 0),
  [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1, 0, 0),
  [489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_bin_op_expr_repeat1, 2, 0, 0),
  [491] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_bin_op_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(521),
  [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_bin_op_expr_repeat1, 2, 0, 0),
  [496] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_upper_case_qid_repeat1, 2, 0, 0), SHIFT(869),
  [499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423),
  [501] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121),
  [503] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__function_call_target, 1, 0, 0), REDUCE(sym__atom, 1, 0, 0),
  [506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__atom, 1, 0, 0),
  [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_access_start, 1, 0, 0),
  [510] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__function_call_target, 1, 0, 0), REDUCE(sym__atom, 1, 0, 0),
  [513] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_qid, 3, 0, 0),
  [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_qid, 3, 0, 0),
  [517] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_expr, 1, 0, 21),
  [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_expr, 1, 0, 21),
  [521] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_access_segment, 2, 0, 0),
  [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_access_segment, 2, 0, 0),
  [525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_call_target, 1, 0, 0),
  [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_call_target, 1, 0, 0),
  [529] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_qid, 4, 0, 0),
  [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_qid, 4, 0, 0),
  [533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(310),
  [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_field_access_expr_repeat1, 1, 0, 0),
  [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_field_access_expr_repeat1, 1, 0, 0),
  [539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257),
  [541] = {.entry = {.count = 1, .reusable = false}}, SHIFT(459),
  [543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
  [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__atom, 1, 0, 0),
  [547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expr, 2, 0, 0),
  [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expr, 2, 0, 0),
  [551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expr, 3, 0, 51),
  [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expr, 3, 0, 51),
  [555] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195),
  [557] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expr, 3, 0, 54),
  [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expr, 3, 0, 54),
  [561] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value_qid, 1, 0, 0),
  [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_qid, 1, 0, 0),
  [565] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
  [567] = {.entry = {.count = 1, .reusable = false}}, SHIFT(595),
  [569] = {.entry = {.count = 1, .reusable = false}}, SHIFT(802),
  [571] = {.entry = {.count = 1, .reusable = false}}, SHIFT(651),
  [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(619),
  [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39),
  [577] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1053),
  [579] = {.entry = {.count = 1, .reusable = false}}, SHIFT(466),
  [581] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48),
  [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361),
  [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
  [587] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7),
  [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(603),
  [591] = {.entry = {.count = 1, .reusable = false}}, SHIFT(819),
  [593] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637),
  [595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(662),
  [597] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
  [599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1039),
  [601] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414),
  [603] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127),
  [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384),
  [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227),
  [609] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_call_expr_repeat1, 1, 0, 0),
  [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_expr_repeat1, 1, 0, 0),
  [613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator_as_function_expr, 1, 0, 23),
  [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator_as_function_expr, 1, 0, 23),
  [617] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_accessor_function_expr, 2, 0, 0),
  [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_accessor_function_expr, 2, 0, 0),
  [621] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number_constant_expr, 1, 0, 0),
  [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number_constant_expr, 1, 0, 0),
  [625] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__literal_expr_group, 1, 0, 0),
  [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_expr_group, 1, 0, 0),
  [629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_constant_expr, 2, 0, 4),
  [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_constant_expr, 2, 0, 4),
  [633] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_constant_expr, 3, 0, 11),
  [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_constant_expr, 3, 0, 11),
  [637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_constant_expr, 3, 0, 12),
  [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_constant_expr, 3, 0, 12),
  [641] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_negate_expr, 2, 0, 0),
  [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_negate_expr, 2, 0, 0),
  [645] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expr, 2, 0, 0),
  [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expr, 2, 0, 0),
  [649] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__operator_as_function_inner, 3, 0, 52),
  [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__operator_as_function_inner, 3, 0, 52),
  [653] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expr, 3, 0, 39),
  [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expr, 3, 0, 39),
  [657] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else_expr, 3, 0, 57),
  [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else_expr, 3, 0, 57),
  [661] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__glsl_end, 1, 0, 0),
  [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__glsl_end, 1, 0, 0),
  [665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_glsl_code_expr, 3, 0, 58),
  [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_glsl_code_expr, 3, 0, 58),
  [669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_expr, 4, 0, 75),
  [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_expr, 4, 0, 75),
  [673] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_expr, 4, 0, 81),
  [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expr, 4, 0, 81),
  [677] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_function_expr, 4, 0, 83),
  [679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_function_expr, 4, 0, 83),
  [681] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__else, 2, 0, 39),
  [683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__else, 2, 0, 39),
  [685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_else_expr, 4, 0, 84),
  [687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_else_expr, 4, 0, 84),
  [689] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_in_expr, 6, 0, 89),
  [691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_in_expr, 6, 0, 89),
  [693] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_of_expr, 6, 0, 90),
  [695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90),
  [697] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_of_expr, 7, 0, 92),
  [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 92),
  [701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_in_expr, 7, 0, 93),
  [703] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_in_expr, 7, 0, 93),
  [705] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_of_expr, 7, 0, 95),
  [707] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95),
  [709] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_of_expr, 8, 0, 92),
  [711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_expr, 8, 0, 92),
  [713] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_of_expr, 8, 0, 98),
  [715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_expr, 8, 0, 98),
  [717] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_of_expr, 9, 0, 98),
  [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_expr, 9, 0, 98),
  [721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unit_expr, 2, 0, 0),
  [723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unit_expr, 2, 0, 0),
  [725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__call_or_atom, 1, 0, 0),
  [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__call_or_atom, 1, 0, 0),
  [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 3, 0, 7),
  [731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(929),
  [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 2, 0, 7),
  [735] = {.entry = {.count = 1, .reusable = false}}, SHIFT(439),
  [737] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6),
  [739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359),
  [741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(928),
  [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 1, 0, 0),
  [745] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288),
  [747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
  [749] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276),
  [751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(943),
  [753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367),
  [755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
  [757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(342),
  [759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(930),
  [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 4, 0, 7),
  [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 2, 0, 0),
  [765] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0),
  [767] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(485),
  [770] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(360),
  [773] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(849),
  [776] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(712),
  [779] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(653),
  [782] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(624),
  [785] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(355),
  [788] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(486),
  [791] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(502),
  [794] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(896),
  [797] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(929),
  [800] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(827),
  [803] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0), SHIFT_REPEAT(511),
  [806] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_bin_op_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(521),
  [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521),
  [811] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(493),
  [814] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(375),
  [817] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0),
  [819] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(849),
  [822] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(712),
  [825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(653),
  [828] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(624),
  [831] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(355),
  [834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(486),
  [837] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(502),
  [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0),
  [842] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(511),
  [845] = {.entry = {.count = 1, .reusable = false}}, SHIFT(493),
  [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375),
  [849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_pattern, 1, 0, 1),
  [851] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_pattern, 1, 0, 1),
  [853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_pattern, 2, 0, 8),
  [855] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_pattern, 2, 0, 8),
  [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482),
  [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493),
  [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
  [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
  [865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
  [867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
  [869] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(493),
  [872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(360),
  [875] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(849),
  [878] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(712),
  [881] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(653),
  [884] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(624),
  [887] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(355),
  [890] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(486),
  [893] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(502),
  [896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0),
  [898] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(511),
  [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
  [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
  [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500),
  [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492),
  [909] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95), SHIFT(89),
  [912] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90), SHIFT(405),
  [915] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95), SHIFT(407),
  [918] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90), SHIFT(186),
  [921] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95), SHIFT(190),
  [924] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90), SHIFT(478),
  [927] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95), SHIFT(462),
  [930] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90), SHIFT(333),
  [933] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95), SHIFT(335),
  [936] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90), SHIFT(247),
  [939] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 7, 0, 95), SHIFT(249),
  [942] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_case_of_expr, 6, 0, 90), SHIFT(87),
  [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949),
  [947] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lower_pattern, 1, 0, 0),
  [949] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lower_pattern, 1, 0, 0),
  [951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration_left, 1, 0, 0),
  [953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(540),
  [955] = {.entry = {.count = 1, .reusable = false}}, SHIFT(533),
  [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration_left, 2, 0, 5),
  [959] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(493),
  [962] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(375),
  [965] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(849),
  [968] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(712),
  [971] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(653),
  [974] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(624),
  [977] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(355),
  [980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(502),
  [983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0),
  [985] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 2, 0, 0), SHIFT_REPEAT(511),
  [988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nullary_constructor_argument_pattern, 1, 0, 0),
  [990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nullary_constructor_argument_pattern, 1, 0, 0),
  [992] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__single_pattern, 1, 0, 2),
  [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_pattern, 1, 0, 2),
  [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_pattern_cons, 1, 0, 0),
  [998] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 4, 0, 30),
  [1000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 4, 0, 30),
  [1002] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0),
  [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0),
  [1006] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__single_pattern_cons, 1, 0, 0),
  [1008] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parenthesized_pattern, 3, 0, 0),
  [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parenthesized_pattern, 3, 0, 0),
  [1012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 6, 0, 59),
  [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 6, 0, 59),
  [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_pattern, 4, 0, 28),
  [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_pattern, 4, 0, 28),
  [1020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 3, 0, 13),
  [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 13),
  [1024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 5, 0, 43),
  [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 5, 0, 43),
  [1028] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list, 2, 0, 0),
  [1030] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__import_list, 2, 0, 0),
  [1032] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__import_list, 2, 0, 0), SHIFT_REPEAT(876),
  [1035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__union_argument_pattern, 1, 0, 0),
  [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__union_argument_pattern, 1, 0, 0),
  [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anything_pattern, 1, 0, 0),
  [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anything_pattern, 1, 0, 0),
  [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_pattern, 3, 0, 10),
  [1045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_pattern, 3, 0, 10),
  [1047] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__single_pattern, 3, 0, 9),
  [1049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_pattern, 3, 0, 9),
  [1051] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_union_pattern_repeat1, 1, 0, 0),
  [1053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_pattern_repeat1, 1, 0, 0),
  [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559),
  [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523),
  [1059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_ref_without_args, 1, 0, 0),
  [1061] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656),
  [1063] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1, 0, 0),
  [1065] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1, 0, 0),
  [1067] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(559),
  [1070] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(523),
  [1073] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31),
  [1075] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(656),
  [1078] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(486),
  [1081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_ref, 2, 0, 32),
  [1083] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 3),
  [1085] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 3),
  [1087] = {.entry = {.count = 1, .reusable = false}}, SHIFT(893),
  [1089] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 2),
  [1091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 2),
  [1093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859),
  [1095] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator_identifier, 1, 0, 0),
  [1097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator_identifier, 1, 0, 0),
  [1099] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cons_pattern, 3, 0, 26),
  [1101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cons_pattern, 3, 0, 26),
  [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577),
  [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530),
  [1107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(638),
  [1109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553),
  [1111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(577),
  [1114] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(530),
  [1117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(638),
  [1120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(553),
  [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 3, 0, 27),
  [1125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 3, 0, 27),
  [1127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591),
  [1129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287),
  [1131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 3, 0, 25),
  [1133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 3, 0, 25),
  [1135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344),
  [1137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607),
  [1139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532),
  [1141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(643),
  [1143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551),
  [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__top_decl_list, 2, 0, 0),
  [1147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611),
  [1149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596),
  [1151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(529),
  [1153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_variant, 2, 0, 46),
  [1155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(644),
  [1157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556),
  [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_variant, 1, 0, 21),
  [1161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 2, 0, 31), SHIFT_REPEAT(611),
  [1164] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 2, 0, 31), SHIFT_REPEAT(596),
  [1167] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 2, 0, 31), SHIFT_REPEAT(529),
  [1170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 2, 0, 31),
  [1172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_variant_repeat1, 2, 0, 31), SHIFT_REPEAT(644),
  [1175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 2, 0, 31), SHIFT_REPEAT(556),
  [1178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(607),
  [1181] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(532),
  [1184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(643),
  [1187] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 2, 0, 31), SHIFT_REPEAT(551),
  [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475),
  [1192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 1, 0, 0),
  [1194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_anonymous_function_expr_repeat1, 1, 0, 0),
  [1196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declaration_left_repeat1, 1, 0, 0),
  [1198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_declaration_left_repeat1, 1, 0, 0),
  [1200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 5, 0, 85),
  [1202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_type, 5, 0, 85),
  [1204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_variable, 1, 0, 0),
  [1206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_variable, 1, 0, 0),
  [1208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 2, 0, 0),
  [1210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_type, 2, 0, 0),
  [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850),
  [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457),
  [1216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686),
  [1218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945),
  [1220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_ref_without_args, 1, 0, 0),
  [1222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_ref_repeat1, 1, 0, 15),
  [1224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_ref_repeat1, 1, 0, 15),
  [1226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_type_expression, 1, 0, 16),
  [1228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__single_type_expression, 1, 0, 16),
  [1230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_type_expression, 3, 0, 13),
  [1232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__single_type_expression, 3, 0, 13),
  [1234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 3, 0, 44),
  [1236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_type, 3, 0, 44),
  [1238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 1, 0, 17),
  [1240] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 1, 0, 17),
  [1242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 4, 0, 64),
  [1244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_type, 4, 0, 64),
  [1246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 4, 0, 66),
  [1248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_type, 4, 0, 66),
  [1250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 4, 0, 62),
  [1252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type, 4, 0, 62),
  [1254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467),
  [1256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840),
  [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
  [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284),
  [1262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
  [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434),
  [1266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 1, 0, 0),
  [1268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_union_variant_repeat1, 1, 0, 0),
  [1270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_variant_repeat1, 1, 0, 15),
  [1272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_union_variant_repeat1, 1, 0, 15),
  [1274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365),
  [1276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
  [1278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67),
  [1280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684),
  [1282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(684),
  [1284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(469),
  [1286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674),
  [1288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674),
  [1290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
  [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392),
  [1294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449),
  [1296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_constant_expr_repeat2, 2, 0, 0),
  [1298] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_constant_expr_repeat2, 2, 0, 0), SHIFT_REPEAT(674),
  [1301] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_constant_expr_repeat2, 2, 0, 0), SHIFT_REPEAT(674),
  [1304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_expression, 1, 0, 15),
  [1306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547),
  [1308] = {.entry = {.count = 1, .reusable = false}}, SHIFT(499),
  [1310] = {.entry = {.count = 1, .reusable = false}}, SHIFT(510),
  [1312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(484),
  [1314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330),
  [1316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444),
  [1318] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65),
  [1320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923),
  [1322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942),
  [1324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_clause, 2, 0, 6),
  [1326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318),
  [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402),
  [1330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430),
  [1332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_expression_repeat1, 2, 0, 31),
  [1334] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_expression_repeat1, 2, 0, 31), SHIFT_REPEAT(547),
  [1337] = {.entry = {.count = 1, .reusable = false}}, SHIFT(322),
  [1339] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416),
  [1341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836),
  [1343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573),
  [1345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418),
  [1347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181),
  [1349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432),
  [1351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593),
  [1353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615),
  [1355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200),
  [1357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(202),
  [1359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_constant_expr_repeat1, 2, 0, 0),
  [1361] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_constant_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(684),
  [1364] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_constant_expr_repeat1, 2, 0, 0), SHIFT_REPEAT(684),
  [1367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_expression, 2, 0, 31),
  [1369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244),
  [1371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
  [1373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439),
  [1375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359),
  [1377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(560),
  [1379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260),
  [1381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481),
  [1383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441),
  [1385] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256),
  [1387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897),
  [1389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901),
  [1391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
  [1393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908),
  [1395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862),
  [1397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 4, 0, 35),
  [1399] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_declaration_repeat2, 2, 0, 70), SHIFT_REPEAT(862),
  [1402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_declaration_repeat2, 2, 0, 70),
  [1404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 6, 0, 71),
  [1406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535),
  [1408] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(897),
  [1411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_declaration_repeat1, 2, 0, 0),
  [1413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 5, 0, 48),
  [1415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 5, 0, 49),
  [1417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_constant_expr_repeat2, 1, 0, 0),
  [1419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_constant_expr_repeat2, 1, 0, 0),
  [1421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_expression_repeat1, 2, 0, 32),
  [1423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401),
  [1425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression_inner, 1, 0, 15),
  [1427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549),
  [1429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [1431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329),
  [1433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_constant_expr_repeat1, 1, 0, 0),
  [1435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_constant_expr_repeat1, 1, 0, 0),
  [1437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539),
  [1439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1020),
  [1441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposed_type, 1, 0, 0),
  [1443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression_inner, 1, 0, 0),
  [1445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465),
  [1447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229),
  [1449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__more_case_of_branches_repeat1, 2, 0, 96),
  [1451] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__more_case_of_branches_repeat1, 2, 0, 96), SHIFT_REPEAT(392),
  [1454] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_expression_repeat1, 2, 0, 31), SHIFT_REPEAT(549),
  [1457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__more_case_of_branches, 1, 6, 91),
  [1459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408),
  [1461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506),
  [1463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336),
  [1465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939),
  [1467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548),
  [1469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(845),
  [1471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223),
  [1473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
  [1475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
  [1477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
  [1479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871),
  [1481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505),
  [1483] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_pattern_repeat1, 2, 0, 60), SHIFT_REPEAT(419),
  [1486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_pattern_repeat1, 2, 0, 60),
  [1488] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_type_repeat1, 2, 0, 63), SHIFT_REPEAT(543),
  [1491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_type_repeat1, 2, 0, 63),
  [1493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914),
  [1495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__record_inner, 1, 0, 38),
  [1497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
  [1499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(470),
  [1501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
  [1503] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, 0, 65), SHIFT_REPEAT(873),
  [1506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, 0, 65),
  [1508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
  [1510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
  [1512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873),
  [1514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604),
  [1516] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1001),
  [1518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543),
  [1520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565),
  [1522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566),
  [1524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435),
  [1526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311),
  [1528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421),
  [1530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445),
  [1532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570),
  [1534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568),
  [1536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569),
  [1538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313),
  [1540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339),
  [1542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436),
  [1544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581),
  [1546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927),
  [1548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
  [1550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(558),
  [1552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_else_expr_repeat1, 3, 0, 88),
  [1554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_clause, 3, 0, 20),
  [1556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
  [1558] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_expr_repeat1, 2, 0, 76), SHIFT_REPEAT(100),
  [1561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_expr_repeat1, 2, 0, 76),
  [1563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598),
  [1565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614),
  [1567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
  [1569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231),
  [1571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
  [1573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
  [1575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__record_inner, 3, 0, 78),
  [1577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(600),
  [1579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(601),
  [1581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602),
  [1583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
  [1585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237),
  [1587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
  [1589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(617),
  [1591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419),
  [1593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504),
  [1595] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__record_inner_repeat1, 2, 0, 80), SHIFT_REPEAT(914),
  [1598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__record_inner_repeat1, 2, 0, 80),
  [1600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
  [1602] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_expr_repeat1, 2, 0, 82), SHIFT_REPEAT(114),
  [1605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_expr_repeat1, 2, 0, 82),
  [1607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_of_branch, 3, 0, 97),
  [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(587),
  [1611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(979),
  [1613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507),
  [1615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(575),
  [1617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576),
  [1619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
  [1621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
  [1623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283),
  [1625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297),
  [1627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(582),
  [1629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583),
  [1631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584),
  [1633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
  [1635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477),
  [1637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
  [1639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(572),
  [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588),
  [1643] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_value_qid_repeat1, 2, 0, 0), SHIFT_REPEAT(845),
  [1646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_value_qid_repeat1, 2, 0, 0),
  [1648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589),
  [1650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
  [1652] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_expression_repeat1, 2, 0, 31), SHIFT_REPEAT(548),
  [1655] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_pattern_repeat1, 2, 0, 29), SHIFT_REPEAT(871),
  [1658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_pattern_repeat1, 2, 0, 29),
  [1660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2, 0, 31), SHIFT_REPEAT(408),
  [1663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2, 0, 31),
  [1665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497),
  [1667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610),
  [1669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425),
  [1671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
  [1673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159),
  [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395),
  [1677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396),
  [1679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
  [1681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597),
  [1683] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exposing_list_repeat1, 2, 0, 0), SHIFT_REPEAT(581),
  [1686] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exposing_list_repeat1, 2, 0, 0),
  [1688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
  [1690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
  [1692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345),
  [1694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371),
  [1696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
  [1698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
  [1700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373),
  [1702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978),
  [1704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370),
  [1706] = {.entry = {.count = 1, .reusable = false}}, SHIFT(975),
  [1708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1021),
  [1710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1033),
  [1712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__more_case_of_branches_repeat1, 2, 0, 94),
  [1714] = {.entry = {.count = 1, .reusable = false}}, SHIFT(953),
  [1716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1009),
  [1718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1013),
  [1720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(931),
  [1722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973),
  [1724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974),
  [1726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512),
  [1728] = {.entry = {.count = 1, .reusable = false}}, SHIFT(998),
  [1730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1048),
  [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049),
  [1734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476),
  [1736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(922),
  [1738] = {.entry = {.count = 1, .reusable = false}}, SHIFT(952),
  [1740] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_let_in_expr_repeat1, 2, 0, 87), SHIFT_REPEAT(336),
  [1743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_let_in_expr_repeat1, 2, 0, 87),
  [1745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(972),
  [1747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977),
  [1749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__record_inner, 2, 0, 55),
  [1751] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__record_inner, 2, 0, 53),
  [1753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960),
  [1755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
  [1757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307),
  [1759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406),
  [1761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431),
  [1763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_base_identifier, 1, 0, 0),
  [1765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541),
  [1767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_declaration, 3, 0, 22),
  [1769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(985),
  [1771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
  [1773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461),
  [1775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442),
  [1777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1015),
  [1779] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__inner_declaration, 1, 0, 56),
  [1781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
  [1783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
  [1785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
  [1787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposed_value, 1, 0, 0),
  [1789] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_pattern_repeat1, 2, 0, 5),
  [1791] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposed_type, 2, 0, 0),
  [1793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
  [1795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433),
  [1797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposed_operator, 1, 0, 23),
  [1799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value_declaration, 3, 0, 24),
  [1801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424),
  [1803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503),
  [1805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_annotation, 3, 0, 14),
  [1807] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__inner_declaration, 1, 0, 0),
  [1809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__more_union_variants, 2, 0, 69),
  [1811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538),
  [1813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_declaration_repeat2, 1, 0, 47),
  [1815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334),
  [1817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446),
  [1819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
  [1821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_type_repeat1, 2, 0, 61),
  [1823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_let_in_expr_repeat1, 2, 0, 86),
  [1825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__dot_without_leading_whitespace, 1, 0, 0),
  [1827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_pattern_repeat1, 2, 0, 10),
  [1829] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_declaration_repeat1, 1, 0, 0),
  [1831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [1833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428),
  [1835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248),
  [1837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448),
  [1839] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_as_clause, 2, 0, 33),
  [1841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__record_inner_repeat1, 2, 0, 79),
  [1843] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_expr_repeat1, 2, 0, 74),
  [1845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_expr_repeat1, 2, 0, 39),
  [1847] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_pattern_repeat1, 2, 0, 13),
  [1849] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_else_expr_repeat1, 2, 0, 82), SHIFT_REPEAT(909),
  [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665),
  [1854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971),
  [1856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lower_type_name, 1, 0, 0),
  [1858] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1014),
  [1860] = {.entry = {.count = 1, .reusable = false}}, SHIFT(829),
  [1862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513),
  [1864] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_type, 3, 0, 14),
  [1866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, 0, 44),
  [1868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473),
  [1870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, 0, 77),
  [1872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
  [1874] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposed_union_constructors, 3, 0, 0),
  [1876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427),
  [1878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390),
  [1880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916),
  [1882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__then, 2, 0, 39),
  [1884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915),
  [1886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332),
  [1888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417),
  [1890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882),
  [1892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(984),
  [1894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
  [1896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposing_list, 5, 0, 0),
  [1898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464),
  [1900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1014),
  [1902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
  [1904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230),
  [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534),
  [1908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412),
  [1910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
  [1912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_clause, 3, 0, 19),
  [1914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585),
  [1916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372),
  [1918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposing_list, 4, 0, 67),
  [1920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
  [1922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_declaration, 6, 0, 72),
  [1924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_infix_declaration, 6, 0, 73),
  [1926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561),
  [1928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302),
  [1930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377),
  [1932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938),
  [1934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
  [1936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376),
  [1938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1059),
  [1940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
  [1942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
  [1944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201),
  [1946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321),
  [1948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
  [1950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
  [1952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
  [1954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
  [1956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298),
  [1958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209),
  [1960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(833),
  [1962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
  [1964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
  [1966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654),
  [1968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 4, 0, 37),
  [1970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295),
  [1972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(832),
  [1974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281),
  [1976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
  [1978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
  [1980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685),
  [1982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
  [1984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
  [1986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
  [1988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483),
  [1990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
  [1992] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exposing_list, 4, 0, 0),
  [1994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
  [1996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
  [1998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452),
  [2000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217),
  [2002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847),
  [2004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__record_base, 2, 0, 45),
  [2006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438),
  [2008] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_declaration, 5, 0, 50),
  [2010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if, 2, 0, 39),
  [2012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
  [2014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_clause, 4, 0, 34),
  [2016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
  [2018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__glsl_begin, 1, 0, 0),
  [2020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285),
  [2022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258),
  [2024] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [2026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944),
  [2028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
  [2030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491),
  [2032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947),
  [2034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498),
  [2036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
  [2038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(911),
  [2040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255),
  [2042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_port_annotation, 4, 0, 36),
  [2044] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 6, 0, 68),
  [2046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183),
  [2048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437),
  [2050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
  [2052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846),
  [2054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
  [2056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366),
  [2058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
  [2060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546),
  [2062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910),
  [2064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160),
  [2066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379),
  [2068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380),
  [2070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1016),
  [2072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
  [2074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382),
  [2076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383),
  [2078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
  [2080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385),
  [2082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386),
  [2084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246),
  [2086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388),
  [2088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389),
  [2090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 3, 0, 18),
  [2092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391),
  [2094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
  [2096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
  [2098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1018),
  [2100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1019),
  [2102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
  [2104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022),
  [2106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1023),
  [2108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326),
  [2110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025),
  [2112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1026),
  [2114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327),
  [2116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028),
  [2118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1029),
  [2120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917),
  [2122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1031),
  [2124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328),
  [2126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
  [2128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
  [2130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905),
  [2132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527),
  [2134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308),
  [2136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460),
  [2138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948),
  [2140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404),
  [2142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848),
  [2144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_comment, 3, 0, 0),
};

enum ts_external_scanner_symbol_identifiers {
  ts_external_token__virtual_end_decl = 0,
  ts_external_token__virtual_open_section = 1,
  ts_external_token__virtual_end_section = 2,
  ts_external_token_minus_without_trailing_whitespace = 3,
  ts_external_token_glsl_content = 4,
  ts_external_token__block_comment_content = 5,
};

static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
  [ts_external_token__virtual_end_decl] = sym__virtual_end_decl,
  [ts_external_token__virtual_open_section] = sym__virtual_open_section,
  [ts_external_token__virtual_end_section] = sym__virtual_end_section,
  [ts_external_token_minus_without_trailing_whitespace] = sym_minus_without_trailing_whitespace,
  [ts_external_token_glsl_content] = sym_glsl_content,
  [ts_external_token__block_comment_content] = sym__block_comment_content,
};

static const bool ts_external_scanner_states[11][EXTERNAL_TOKEN_COUNT] = {
  [1] = {
    [ts_external_token__virtual_end_decl] = true,
    [ts_external_token__virtual_open_section] = true,
    [ts_external_token__virtual_end_section] = true,
    [ts_external_token_minus_without_trailing_whitespace] = true,
    [ts_external_token_glsl_content] = true,
    [ts_external_token__block_comment_content] = true,
  },
  [2] = {
    [ts_external_token_minus_without_trailing_whitespace] = true,
  },
  [3] = {
    [ts_external_token__virtual_end_decl] = true,
    [ts_external_token__virtual_end_section] = true,
    [ts_external_token_minus_without_trailing_whitespace] = true,
  },
  [4] = {
    [ts_external_token__virtual_end_decl] = true,
    [ts_external_token_minus_without_trailing_whitespace] = true,
  },
  [5] = {
    [ts_external_token__virtual_end_decl] = true,
  },
  [6] = {
    [ts_external_token__virtual_end_decl] = true,
    [ts_external_token__virtual_end_section] = true,
  },
  [7] = {
    [ts_external_token__virtual_end_section] = true,
  },
  [8] = {
    [ts_external_token__virtual_open_section] = true,
  },
  [9] = {
    [ts_external_token_glsl_content] = true,
  },
  [10] = {
    [ts_external_token__block_comment_content] = true,
  },
};

#ifdef __cplusplus
extern "C" {
#endif
void *tree_sitter_elm_external_scanner_create(void);
void tree_sitter_elm_external_scanner_destroy(void *);
bool tree_sitter_elm_external_scanner_scan(void *, TSLexer *, const bool *);
unsigned tree_sitter_elm_external_scanner_serialize(void *, char *);
void tree_sitter_elm_external_scanner_deserialize(void *, const char *, unsigned);

#ifdef TREE_SITTER_HIDE_SYMBOLS
#define TS_PUBLIC
#elif defined(_WIN32)
#define TS_PUBLIC __declspec(dllexport)
#else
#define TS_PUBLIC __attribute__((visibility("default")))
#endif

TS_PUBLIC const TSLanguage *tree_sitter_elm(void) {
  static const TSLanguage language = {
    .abi_version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .supertype_count = SUPERTYPE_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = (const void*)ts_lex_modes,
    .lex_fn = ts_lex,
    .keyword_lex_fn = ts_lex_keywords,
    .keyword_capture_token = sym_lower_case_identifier,
    .external_scanner = {
      &ts_external_scanner_states[0][0],
      ts_external_scanner_symbol_map,
      tree_sitter_elm_external_scanner_create,
      tree_sitter_elm_external_scanner_destroy,
      tree_sitter_elm_external_scanner_scan,
      tree_sitter_elm_external_scanner_serialize,
      tree_sitter_elm_external_scanner_deserialize,
    },
    .primary_state_ids = ts_primary_state_ids,
    .name = "elm",
    .max_reserved_word_set_size = 0,
    .metadata = {
      .major_version = 5,
      .minor_version = 8,
      .patch_version = 0,
    },
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
