// Implementation file for parser generated by fsyacc
module TinyML.Parser
#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type
open FSharp.Text.Lexing
open FSharp.Text.Parsing.ParseHelpers
# 1 "Parser.fsy"


open TinyML
open FSharp.Common.Parsing.LexYacc
open TinyML.Ast

let parse_error_rich = Some (fun ctx -> raise (ParseErrorContextException ctx))


# 16 "Parser.fs"
// This type is the type of tokens accepted by the parser
type token = 
  | EOF
  | IF
  | THEN
  | ELSE
  | FUN
  | ARROW
  | LET
  | REC
  | IN
  | TRUE
  | FALSE
  | BRA
  | KET
  | PLUS
  | MINUS
  | STAR
  | SLASH
  | PERCENT
  | PLUS_DOT
  | MINUS_DOT
  | STAR_DOT
  | SLASH_DOT
  | PERCENT_DOT
  | LT
  | GT
  | LEQ
  | GEQ
  | EQ
  | NEQ
  | LT_DOT
  | GT_DOT
  | LEQ_DOT
  | GEQ_DOT
  | EQ_DOT
  | NEQ_DOT
  | AND
  | OR
  | NOT
  | COLON
  | SEMICOLON2
  | COMMA
  | STRING of (System.String)
  | ID of (System.String)
  | CHAR of (System.Char)
  | FLOAT of (System.Double)
  | INT of (System.Int32)
// This type is used to give symbolic names to token indexes, useful for error messages
type tokenId = 
    | TOKEN_EOF
    | TOKEN_IF
    | TOKEN_THEN
    | TOKEN_ELSE
    | TOKEN_FUN
    | TOKEN_ARROW
    | TOKEN_LET
    | TOKEN_REC
    | TOKEN_IN
    | TOKEN_TRUE
    | TOKEN_FALSE
    | TOKEN_BRA
    | TOKEN_KET
    | TOKEN_PLUS
    | TOKEN_MINUS
    | TOKEN_STAR
    | TOKEN_SLASH
    | TOKEN_PERCENT
    | TOKEN_PLUS_DOT
    | TOKEN_MINUS_DOT
    | TOKEN_STAR_DOT
    | TOKEN_SLASH_DOT
    | TOKEN_PERCENT_DOT
    | TOKEN_LT
    | TOKEN_GT
    | TOKEN_LEQ
    | TOKEN_GEQ
    | TOKEN_EQ
    | TOKEN_NEQ
    | TOKEN_LT_DOT
    | TOKEN_GT_DOT
    | TOKEN_LEQ_DOT
    | TOKEN_GEQ_DOT
    | TOKEN_EQ_DOT
    | TOKEN_NEQ_DOT
    | TOKEN_AND
    | TOKEN_OR
    | TOKEN_NOT
    | TOKEN_COLON
    | TOKEN_SEMICOLON2
    | TOKEN_COMMA
    | TOKEN_STRING
    | TOKEN_ID
    | TOKEN_CHAR
    | TOKEN_FLOAT
    | TOKEN_INT
    | TOKEN_end_of_input
    | TOKEN_error
// This type is used to give symbolic names to token indexes, useful for error messages
type nonTerminalId = 
    | NONTERM__startinteractive
    | NONTERM__startprogram
    | NONTERM_program
    | NONTERM_interactive
    | NONTERM_expr
    | NONTERM_binding
    | NONTERM_parms
    | NONTERM_expr_app_atom
    | NONTERM_expr_tuple_atom
    | NONTERM_expr_tuple_atoms
    | NONTERM_ty
    | NONTERM_ty_tuple

// This function maps tokens to integer indexes
let tagOfToken (t:token) = 
  match t with
  | EOF  -> 0 
  | IF  -> 1 
  | THEN  -> 2 
  | ELSE  -> 3 
  | FUN  -> 4 
  | ARROW  -> 5 
  | LET  -> 6 
  | REC  -> 7 
  | IN  -> 8 
  | TRUE  -> 9 
  | FALSE  -> 10 
  | BRA  -> 11 
  | KET  -> 12 
  | PLUS  -> 13 
  | MINUS  -> 14 
  | STAR  -> 15 
  | SLASH  -> 16 
  | PERCENT  -> 17 
  | PLUS_DOT  -> 18 
  | MINUS_DOT  -> 19 
  | STAR_DOT  -> 20 
  | SLASH_DOT  -> 21 
  | PERCENT_DOT  -> 22 
  | LT  -> 23 
  | GT  -> 24 
  | LEQ  -> 25 
  | GEQ  -> 26 
  | EQ  -> 27 
  | NEQ  -> 28 
  | LT_DOT  -> 29 
  | GT_DOT  -> 30 
  | LEQ_DOT  -> 31 
  | GEQ_DOT  -> 32 
  | EQ_DOT  -> 33 
  | NEQ_DOT  -> 34 
  | AND  -> 35 
  | OR  -> 36 
  | NOT  -> 37 
  | COLON  -> 38 
  | SEMICOLON2  -> 39 
  | COMMA  -> 40 
  | STRING _ -> 41 
  | ID _ -> 42 
  | CHAR _ -> 43 
  | FLOAT _ -> 44 
  | INT _ -> 45 

// This function maps integer indexes to symbolic token ids
let tokenTagToTokenId (tokenIdx:int) = 
  match tokenIdx with
  | 0 -> TOKEN_EOF 
  | 1 -> TOKEN_IF 
  | 2 -> TOKEN_THEN 
  | 3 -> TOKEN_ELSE 
  | 4 -> TOKEN_FUN 
  | 5 -> TOKEN_ARROW 
  | 6 -> TOKEN_LET 
  | 7 -> TOKEN_REC 
  | 8 -> TOKEN_IN 
  | 9 -> TOKEN_TRUE 
  | 10 -> TOKEN_FALSE 
  | 11 -> TOKEN_BRA 
  | 12 -> TOKEN_KET 
  | 13 -> TOKEN_PLUS 
  | 14 -> TOKEN_MINUS 
  | 15 -> TOKEN_STAR 
  | 16 -> TOKEN_SLASH 
  | 17 -> TOKEN_PERCENT 
  | 18 -> TOKEN_PLUS_DOT 
  | 19 -> TOKEN_MINUS_DOT 
  | 20 -> TOKEN_STAR_DOT 
  | 21 -> TOKEN_SLASH_DOT 
  | 22 -> TOKEN_PERCENT_DOT 
  | 23 -> TOKEN_LT 
  | 24 -> TOKEN_GT 
  | 25 -> TOKEN_LEQ 
  | 26 -> TOKEN_GEQ 
  | 27 -> TOKEN_EQ 
  | 28 -> TOKEN_NEQ 
  | 29 -> TOKEN_LT_DOT 
  | 30 -> TOKEN_GT_DOT 
  | 31 -> TOKEN_LEQ_DOT 
  | 32 -> TOKEN_GEQ_DOT 
  | 33 -> TOKEN_EQ_DOT 
  | 34 -> TOKEN_NEQ_DOT 
  | 35 -> TOKEN_AND 
  | 36 -> TOKEN_OR 
  | 37 -> TOKEN_NOT 
  | 38 -> TOKEN_COLON 
  | 39 -> TOKEN_SEMICOLON2 
  | 40 -> TOKEN_COMMA 
  | 41 -> TOKEN_STRING 
  | 42 -> TOKEN_ID 
  | 43 -> TOKEN_CHAR 
  | 44 -> TOKEN_FLOAT 
  | 45 -> TOKEN_INT 
  | 48 -> TOKEN_end_of_input
  | 46 -> TOKEN_error
  | _ -> failwith "tokenTagToTokenId: bad token"

/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
let prodIdxToNonTerminal (prodIdx:int) = 
  match prodIdx with
    | 0 -> NONTERM__startinteractive 
    | 1 -> NONTERM__startprogram 
    | 2 -> NONTERM_program 
    | 3 -> NONTERM_interactive 
    | 4 -> NONTERM_interactive 
    | 5 -> NONTERM_expr 
    | 6 -> NONTERM_expr 
    | 7 -> NONTERM_binding 
    | 8 -> NONTERM_binding 
    | 9 -> NONTERM_binding 
    | 10 -> NONTERM_binding 
    | 11 -> NONTERM_binding 
    | 12 -> NONTERM_binding 
    | 13 -> NONTERM_binding 
    | 14 -> NONTERM_binding 
    | 15 -> NONTERM_parms 
    | 16 -> NONTERM_parms 
    | 17 -> NONTERM_parms 
    | 18 -> NONTERM_parms 
    | 19 -> NONTERM_expr_app_atom 
    | 20 -> NONTERM_expr_app_atom 
    | 21 -> NONTERM_expr_app_atom 
    | 22 -> NONTERM_expr_app_atom 
    | 23 -> NONTERM_expr_app_atom 
    | 24 -> NONTERM_expr_app_atom 
    | 25 -> NONTERM_expr_app_atom 
    | 26 -> NONTERM_expr_app_atom 
    | 27 -> NONTERM_expr_app_atom 
    | 28 -> NONTERM_expr_tuple_atom 
    | 29 -> NONTERM_expr_tuple_atom 
    | 30 -> NONTERM_expr_tuple_atom 
    | 31 -> NONTERM_expr_tuple_atom 
    | 32 -> NONTERM_expr_tuple_atom 
    | 33 -> NONTERM_expr_tuple_atom 
    | 34 -> NONTERM_expr_tuple_atom 
    | 35 -> NONTERM_expr_tuple_atom 
    | 36 -> NONTERM_expr_tuple_atom 
    | 37 -> NONTERM_expr_tuple_atom 
    | 38 -> NONTERM_expr_tuple_atom 
    | 39 -> NONTERM_expr_tuple_atom 
    | 40 -> NONTERM_expr_tuple_atom 
    | 41 -> NONTERM_expr_tuple_atom 
    | 42 -> NONTERM_expr_tuple_atom 
    | 43 -> NONTERM_expr_tuple_atom 
    | 44 -> NONTERM_expr_tuple_atom 
    | 45 -> NONTERM_expr_tuple_atom 
    | 46 -> NONTERM_expr_tuple_atom 
    | 47 -> NONTERM_expr_tuple_atom 
    | 48 -> NONTERM_expr_tuple_atom 
    | 49 -> NONTERM_expr_tuple_atom 
    | 50 -> NONTERM_expr_tuple_atom 
    | 51 -> NONTERM_expr_tuple_atom 
    | 52 -> NONTERM_expr_tuple_atom 
    | 53 -> NONTERM_expr_tuple_atom 
    | 54 -> NONTERM_expr_tuple_atom 
    | 55 -> NONTERM_expr_tuple_atom 
    | 56 -> NONTERM_expr_tuple_atom 
    | 57 -> NONTERM_expr_tuple_atom 
    | 58 -> NONTERM_expr_tuple_atom 
    | 59 -> NONTERM_expr_tuple_atom 
    | 60 -> NONTERM_expr_tuple_atom 
    | 61 -> NONTERM_expr_tuple_atom 
    | 62 -> NONTERM_expr_tuple_atoms 
    | 63 -> NONTERM_expr_tuple_atoms 
    | 64 -> NONTERM_ty 
    | 65 -> NONTERM_ty 
    | 66 -> NONTERM_ty 
    | 67 -> NONTERM_ty 
    | 68 -> NONTERM_ty_tuple 
    | 69 -> NONTERM_ty_tuple 
    | _ -> failwith "prodIdxToNonTerminal: bad production index"

let _fsyacc_endOfInputTag = 48 
let _fsyacc_tagOfErrorTerminal = 46

// This function gets the name of a token as a string
let token_to_string (t:token) = 
  match t with 
  | EOF  -> "EOF" 
  | IF  -> "IF" 
  | THEN  -> "THEN" 
  | ELSE  -> "ELSE" 
  | FUN  -> "FUN" 
  | ARROW  -> "ARROW" 
  | LET  -> "LET" 
  | REC  -> "REC" 
  | IN  -> "IN" 
  | TRUE  -> "TRUE" 
  | FALSE  -> "FALSE" 
  | BRA  -> "BRA" 
  | KET  -> "KET" 
  | PLUS  -> "PLUS" 
  | MINUS  -> "MINUS" 
  | STAR  -> "STAR" 
  | SLASH  -> "SLASH" 
  | PERCENT  -> "PERCENT" 
  | PLUS_DOT  -> "PLUS_DOT" 
  | MINUS_DOT  -> "MINUS_DOT" 
  | STAR_DOT  -> "STAR_DOT" 
  | SLASH_DOT  -> "SLASH_DOT" 
  | PERCENT_DOT  -> "PERCENT_DOT" 
  | LT  -> "LT" 
  | GT  -> "GT" 
  | LEQ  -> "LEQ" 
  | GEQ  -> "GEQ" 
  | EQ  -> "EQ" 
  | NEQ  -> "NEQ" 
  | LT_DOT  -> "LT_DOT" 
  | GT_DOT  -> "GT_DOT" 
  | LEQ_DOT  -> "LEQ_DOT" 
  | GEQ_DOT  -> "GEQ_DOT" 
  | EQ_DOT  -> "EQ_DOT" 
  | NEQ_DOT  -> "NEQ_DOT" 
  | AND  -> "AND" 
  | OR  -> "OR" 
  | NOT  -> "NOT" 
  | COLON  -> "COLON" 
  | SEMICOLON2  -> "SEMICOLON2" 
  | COMMA  -> "COMMA" 
  | STRING _ -> "STRING" 
  | ID _ -> "ID" 
  | CHAR _ -> "CHAR" 
  | FLOAT _ -> "FLOAT" 
  | INT _ -> "INT" 

// This function gets the data carried by a token as an object
let _fsyacc_dataOfToken (t:token) = 
  match t with 
  | EOF  -> (null : System.Object) 
  | IF  -> (null : System.Object) 
  | THEN  -> (null : System.Object) 
  | ELSE  -> (null : System.Object) 
  | FUN  -> (null : System.Object) 
  | ARROW  -> (null : System.Object) 
  | LET  -> (null : System.Object) 
  | REC  -> (null : System.Object) 
  | IN  -> (null : System.Object) 
  | TRUE  -> (null : System.Object) 
  | FALSE  -> (null : System.Object) 
  | BRA  -> (null : System.Object) 
  | KET  -> (null : System.Object) 
  | PLUS  -> (null : System.Object) 
  | MINUS  -> (null : System.Object) 
  | STAR  -> (null : System.Object) 
  | SLASH  -> (null : System.Object) 
  | PERCENT  -> (null : System.Object) 
  | PLUS_DOT  -> (null : System.Object) 
  | MINUS_DOT  -> (null : System.Object) 
  | STAR_DOT  -> (null : System.Object) 
  | SLASH_DOT  -> (null : System.Object) 
  | PERCENT_DOT  -> (null : System.Object) 
  | LT  -> (null : System.Object) 
  | GT  -> (null : System.Object) 
  | LEQ  -> (null : System.Object) 
  | GEQ  -> (null : System.Object) 
  | EQ  -> (null : System.Object) 
  | NEQ  -> (null : System.Object) 
  | LT_DOT  -> (null : System.Object) 
  | GT_DOT  -> (null : System.Object) 
  | LEQ_DOT  -> (null : System.Object) 
  | GEQ_DOT  -> (null : System.Object) 
  | EQ_DOT  -> (null : System.Object) 
  | NEQ_DOT  -> (null : System.Object) 
  | AND  -> (null : System.Object) 
  | OR  -> (null : System.Object) 
  | NOT  -> (null : System.Object) 
  | COLON  -> (null : System.Object) 
  | SEMICOLON2  -> (null : System.Object) 
  | COMMA  -> (null : System.Object) 
  | STRING _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x 
  | ID _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x 
  | CHAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x 
  | FLOAT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x 
  | INT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x 
let _fsyacc_gotos = [| 0us; 65535us; 0us; 65535us; 1us; 65535us; 2us; 3us; 1us; 65535us; 0us; 1us; 18us; 65535us; 0us; 6us; 2us; 4us; 12us; 62us; 17us; 18us; 20us; 21us; 24us; 25us; 28us; 29us; 32us; 33us; 35us; 36us; 39us; 40us; 43us; 44us; 59us; 62us; 96us; 97us; 103us; 104us; 106us; 107us; 135us; 136us; 137us; 138us; 139us; 140us; 46us; 65535us; 0us; 8us; 2us; 105us; 12us; 105us; 17us; 105us; 20us; 105us; 24us; 105us; 28us; 105us; 32us; 105us; 35us; 105us; 39us; 105us; 43us; 105us; 59us; 105us; 96us; 105us; 103us; 105us; 106us; 105us; 108us; 105us; 109us; 105us; 110us; 105us; 111us; 105us; 112us; 105us; 113us; 105us; 114us; 105us; 115us; 105us; 116us; 105us; 117us; 105us; 118us; 105us; 119us; 105us; 120us; 105us; 121us; 105us; 122us; 105us; 123us; 105us; 124us; 105us; 125us; 105us; 126us; 105us; 127us; 105us; 128us; 105us; 129us; 105us; 130us; 105us; 131us; 105us; 132us; 105us; 133us; 105us; 134us; 105us; 135us; 105us; 137us; 105us; 139us; 105us; 141us; 105us; 4us; 65535us; 16us; 19us; 31us; 34us; 45us; 51us; 50us; 52us; 76us; 65535us; 0us; 64us; 2us; 64us; 10us; 93us; 11us; 93us; 12us; 64us; 17us; 64us; 20us; 64us; 24us; 64us; 28us; 64us; 32us; 64us; 35us; 64us; 39us; 64us; 43us; 64us; 59us; 64us; 65us; 93us; 66us; 93us; 67us; 93us; 68us; 93us; 69us; 93us; 70us; 93us; 71us; 93us; 72us; 93us; 73us; 93us; 74us; 93us; 75us; 93us; 76us; 93us; 77us; 93us; 78us; 93us; 79us; 93us; 80us; 93us; 81us; 93us; 82us; 93us; 83us; 93us; 84us; 93us; 85us; 93us; 86us; 93us; 87us; 93us; 88us; 93us; 89us; 93us; 90us; 93us; 91us; 93us; 92us; 93us; 96us; 64us; 103us; 64us; 106us; 64us; 108us; 64us; 109us; 64us; 110us; 64us; 111us; 64us; 112us; 64us; 113us; 64us; 114us; 64us; 115us; 64us; 116us; 64us; 117us; 64us; 118us; 64us; 119us; 64us; 120us; 64us; 121us; 64us; 122us; 64us; 123us; 64us; 124us; 64us; 125us; 64us; 126us; 64us; 127us; 64us; 128us; 64us; 129us; 64us; 130us; 64us; 131us; 64us; 132us; 64us; 133us; 64us; 134us; 64us; 135us; 64us; 137us; 64us; 139us; 64us; 141us; 64us; 46us; 65535us; 0us; 10us; 2us; 10us; 12us; 11us; 17us; 10us; 20us; 10us; 24us; 10us; 28us; 10us; 32us; 10us; 35us; 10us; 39us; 10us; 43us; 10us; 59us; 10us; 96us; 10us; 103us; 10us; 106us; 10us; 108us; 65us; 109us; 66us; 110us; 67us; 111us; 68us; 112us; 69us; 113us; 70us; 114us; 71us; 115us; 72us; 116us; 73us; 117us; 74us; 118us; 75us; 119us; 76us; 120us; 77us; 121us; 78us; 122us; 79us; 123us; 80us; 124us; 81us; 125us; 82us; 126us; 83us; 127us; 84us; 128us; 85us; 129us; 86us; 130us; 87us; 131us; 88us; 132us; 89us; 133us; 90us; 134us; 91us; 135us; 10us; 137us; 10us; 139us; 10us; 141us; 92us; 2us; 65535us; 12us; 13us; 141us; 142us; 9us; 65535us; 22us; 23us; 26us; 27us; 37us; 38us; 41us; 42us; 48us; 49us; 100us; 101us; 147us; 144us; 150us; 145us; 152us; 146us; 9us; 65535us; 22us; 148us; 26us; 148us; 37us; 148us; 41us; 148us; 48us; 148us; 100us; 148us; 147us; 148us; 150us; 148us; 152us; 149us; |]
let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 4us; 6us; 25us; 72us; 77us; 154us; 201us; 204us; 214us; |]
let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 2us; 1us; 3us; 1us; 3us; 2us; 4us; 32us; 1us; 4us; 26us; 5us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 28us; 5us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 62us; 63us; 3us; 6us; 25us; 27us; 1us; 6us; 1us; 6us; 8us; 7us; 8us; 9us; 10us; 11us; 12us; 13us; 14us; 4us; 7us; 8us; 9us; 10us; 1us; 7us; 1us; 7us; 2us; 8us; 10us; 1us; 8us; 1us; 8us; 1us; 9us; 4us; 9us; 65us; 68us; 69us; 1us; 9us; 1us; 9us; 1us; 10us; 4us; 10us; 65us; 68us; 69us; 1us; 10us; 1us; 10us; 4us; 11us; 12us; 13us; 14us; 4us; 11us; 12us; 13us; 14us; 1us; 11us; 1us; 11us; 2us; 12us; 13us; 1us; 12us; 1us; 12us; 1us; 13us; 4us; 13us; 65us; 68us; 69us; 1us; 13us; 1us; 13us; 1us; 14us; 4us; 14us; 65us; 68us; 69us; 1us; 14us; 1us; 14us; 2us; 15us; 17us; 2us; 16us; 18us; 2us; 16us; 18us; 2us; 16us; 18us; 5us; 16us; 18us; 65us; 68us; 69us; 2us; 16us; 18us; 1us; 17us; 1us; 18us; 1us; 19us; 1us; 20us; 1us; 21us; 1us; 22us; 1us; 23us; 1us; 24us; 2us; 25us; 27us; 1us; 25us; 1us; 26us; 1us; 27us; 1us; 27us; 1us; 28us; 26us; 29us; 33us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 34us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 54us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 55us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 56us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 57us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 58us; 59us; 26us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 59us; 27us; 29us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 47us; 48us; 49us; 50us; 51us; 52us; 53us; 54us; 55us; 56us; 57us; 58us; 59us; 62us; 63us; 1us; 29us; 2us; 30us; 31us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 31us; 1us; 31us; 1us; 31us; 4us; 31us; 65us; 68us; 69us; 1us; 31us; 1us; 31us; 1us; 31us; 1us; 32us; 1us; 32us; 1us; 32us; 1us; 33us; 1us; 34us; 1us; 35us; 1us; 36us; 1us; 37us; 1us; 38us; 1us; 39us; 1us; 40us; 1us; 41us; 1us; 42us; 1us; 43us; 1us; 44us; 1us; 45us; 1us; 46us; 1us; 47us; 1us; 48us; 1us; 49us; 1us; 50us; 1us; 51us; 1us; 52us; 1us; 53us; 1us; 54us; 1us; 55us; 1us; 56us; 1us; 57us; 1us; 58us; 1us; 59us; 2us; 60us; 61us; 2us; 60us; 61us; 2us; 60us; 61us; 2us; 60us; 61us; 1us; 61us; 1us; 61us; 1us; 63us; 1us; 63us; 1us; 64us; 4us; 65us; 65us; 68us; 69us; 4us; 65us; 67us; 68us; 69us; 3us; 65us; 68us; 69us; 1us; 65us; 1us; 66us; 2us; 66us; 69us; 1us; 67us; 1us; 67us; 1us; 69us; |]
let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 10us; 12us; 14us; 16us; 19us; 21us; 48us; 77us; 81us; 83us; 85us; 94us; 99us; 101us; 103us; 106us; 108us; 110us; 112us; 117us; 119us; 121us; 123us; 128us; 130us; 132us; 137us; 142us; 144us; 146us; 149us; 151us; 153us; 155us; 160us; 162us; 164us; 166us; 171us; 173us; 175us; 178us; 181us; 184us; 187us; 193us; 196us; 198us; 200us; 202us; 204us; 206us; 208us; 210us; 212us; 215us; 217us; 219us; 221us; 223us; 225us; 252us; 279us; 306us; 333us; 360us; 387us; 414us; 441us; 468us; 495us; 522us; 549us; 576us; 603us; 630us; 657us; 684us; 711us; 738us; 765us; 792us; 819us; 846us; 873us; 900us; 927us; 954us; 982us; 984us; 987us; 989us; 991us; 993us; 995us; 997us; 999us; 1004us; 1006us; 1008us; 1010us; 1012us; 1014us; 1016us; 1018us; 1020us; 1022us; 1024us; 1026us; 1028us; 1030us; 1032us; 1034us; 1036us; 1038us; 1040us; 1042us; 1044us; 1046us; 1048us; 1050us; 1052us; 1054us; 1056us; 1058us; 1060us; 1062us; 1064us; 1066us; 1068us; 1070us; 1073us; 1076us; 1079us; 1082us; 1084us; 1086us; 1088us; 1090us; 1092us; 1097us; 1102us; 1106us; 1108us; 1110us; 1113us; 1115us; 1117us; |]
let _fsyacc_action_rows = 153
let _fsyacc_actionTableElements = [|14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 49152us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 49152us; 1us; 32768us; 0us; 5us; 0us; 16386us; 1us; 32768us; 39us; 7us; 0us; 16387us; 2us; 32768us; 8us; 106us; 39us; 9us; 0us; 16388us; 32us; 16389us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 33us; 16389us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 40us; 141us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 15us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 12us; 60us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 1us; 32768us; 12us; 14us; 0us; 16390us; 2us; 32768us; 7us; 30us; 42us; 16us; 4us; 32768us; 11us; 46us; 27us; 17us; 38us; 22us; 42us; 45us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16391us; 2us; 32768us; 27us; 20us; 38us; 26us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16392us; 2us; 32768us; 11us; 150us; 42us; 143us; 3us; 16452us; 5us; 147us; 15us; 152us; 27us; 24us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16393us; 2us; 32768us; 11us; 150us; 42us; 143us; 3us; 16452us; 5us; 147us; 15us; 152us; 27us; 28us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16394us; 1us; 32768us; 42us; 31us; 4us; 32768us; 11us; 46us; 27us; 32us; 38us; 41us; 42us; 45us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16395us; 2us; 32768us; 27us; 35us; 38us; 37us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16396us; 2us; 32768us; 11us; 150us; 42us; 143us; 3us; 16452us; 5us; 147us; 15us; 152us; 27us; 39us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16397us; 2us; 32768us; 11us; 150us; 42us; 143us; 3us; 16452us; 5us; 147us; 15us; 152us; 27us; 43us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16398us; 2us; 16399us; 11us; 46us; 42us; 45us; 1us; 32768us; 42us; 47us; 1us; 32768us; 38us; 48us; 2us; 32768us; 11us; 150us; 42us; 143us; 3us; 16452us; 5us; 147us; 12us; 50us; 15us; 152us; 2us; 16400us; 11us; 46us; 42us; 45us; 0us; 16401us; 0us; 16402us; 0us; 16403us; 0us; 16404us; 0us; 16405us; 0us; 16406us; 0us; 16407us; 0us; 16408us; 15us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 12us; 60us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16409us; 0us; 16410us; 1us; 32768us; 12us; 63us; 0us; 16411us; 0us; 16412us; 16us; 16417us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 16us; 16418us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 16us; 16419us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 20us; 16420us; 9us; 57us; 10us; 58us; 11us; 59us; 15us; 115us; 16us; 117us; 17us; 119us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 20us; 16421us; 9us; 57us; 10us; 58us; 11us; 59us; 15us; 115us; 16us; 117us; 17us; 119us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 20us; 16422us; 9us; 57us; 10us; 58us; 11us; 59us; 15us; 115us; 16us; 117us; 17us; 119us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 20us; 16423us; 9us; 57us; 10us; 58us; 11us; 59us; 15us; 115us; 16us; 117us; 17us; 119us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 16us; 16424us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 16us; 16425us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 16us; 16426us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 16us; 16427us; 9us; 57us; 10us; 58us; 11us; 59us; 17us; 119us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16428us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16429us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 24us; 16430us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16431us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 24us; 16432us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16433us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 24us; 16434us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16435us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 24us; 16436us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16437us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 24us; 16438us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16439us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 24us; 16440us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 32us; 16441us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 30us; 16442us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 31us; 16443us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 33us; 16446us; 9us; 57us; 10us; 58us; 11us; 59us; 13us; 111us; 14us; 113us; 15us; 115us; 16us; 117us; 17us; 119us; 18us; 112us; 19us; 114us; 20us; 116us; 21us; 118us; 22us; 120us; 23us; 125us; 24us; 127us; 25us; 129us; 26us; 131us; 27us; 121us; 28us; 123us; 29us; 126us; 30us; 128us; 31us; 130us; 32us; 132us; 33us; 122us; 34us; 124us; 35us; 133us; 36us; 134us; 40us; 141us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16413us; 2us; 32768us; 11us; 98us; 42us; 95us; 1us; 32768us; 5us; 96us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16414us; 1us; 32768us; 42us; 99us; 1us; 32768us; 38us; 100us; 2us; 32768us; 11us; 150us; 42us; 143us; 3us; 16452us; 5us; 147us; 12us; 102us; 15us; 152us; 1us; 32768us; 5us; 103us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16415us; 1us; 32768us; 8us; 106us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16416us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 1us; 32768us; 2us; 137us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 1us; 16444us; 3us; 139us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 12us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16445us; 14us; 32768us; 1us; 135us; 4us; 94us; 6us; 15us; 9us; 57us; 10us; 58us; 11us; 59us; 14us; 109us; 19us; 110us; 37us; 108us; 41us; 55us; 42us; 61us; 43us; 56us; 44us; 54us; 45us; 53us; 0us; 16447us; 0us; 16448us; 2us; 16449us; 5us; 147us; 15us; 152us; 3us; 16452us; 5us; 147us; 12us; 151us; 15us; 152us; 2us; 16452us; 5us; 147us; 15us; 152us; 2us; 32768us; 11us; 150us; 42us; 143us; 0us; 16450us; 0us; 16450us; 2us; 32768us; 11us; 150us; 42us; 143us; 0us; 16451us; 2us; 32768us; 11us; 150us; 42us; 143us; |]
let _fsyacc_actionTableRowOffsets = [|0us; 15us; 16us; 31us; 32us; 34us; 35us; 37us; 38us; 41us; 42us; 75us; 109us; 125us; 127us; 128us; 131us; 136us; 151us; 152us; 155us; 170us; 171us; 174us; 178us; 193us; 194us; 197us; 201us; 216us; 217us; 219us; 224us; 239us; 240us; 243us; 258us; 259us; 262us; 266us; 281us; 282us; 285us; 289us; 304us; 305us; 308us; 310us; 312us; 315us; 319us; 322us; 323us; 324us; 325us; 326us; 327us; 328us; 329us; 330us; 346us; 347us; 348us; 350us; 351us; 352us; 369us; 386us; 403us; 424us; 445us; 466us; 487us; 504us; 521us; 538us; 555us; 588us; 621us; 646us; 679us; 704us; 737us; 762us; 795us; 820us; 853us; 878us; 911us; 936us; 969us; 1000us; 1032us; 1066us; 1067us; 1070us; 1072us; 1087us; 1088us; 1090us; 1092us; 1095us; 1099us; 1101us; 1116us; 1117us; 1119us; 1134us; 1135us; 1150us; 1165us; 1180us; 1195us; 1210us; 1225us; 1240us; 1255us; 1270us; 1285us; 1300us; 1315us; 1330us; 1345us; 1360us; 1375us; 1390us; 1405us; 1420us; 1435us; 1450us; 1465us; 1480us; 1495us; 1510us; 1525us; 1540us; 1555us; 1557us; 1572us; 1574us; 1589us; 1590us; 1605us; 1606us; 1607us; 1610us; 1614us; 1617us; 1620us; 1621us; 1622us; 1625us; 1626us; |]
let _fsyacc_reductionSymbolCounts = [|1us; 1us; 2us; 2us; 2us; 1us; 3us; 4us; 5us; 6us; 7us; 5us; 6us; 8us; 7us; 1us; 5us; 2us; 6us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 3us; 1us; 2us; 4us; 8us; 3us; 2us; 2us; 2us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 4us; 6us; 1us; 3us; 1us; 3us; 1us; 3us; 1us; 3us; |]
let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 3us; 4us; 4us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 6us; 6us; 6us; 6us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 7us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 9us; 9us; 10us; 10us; 10us; 10us; 11us; 11us; |]
let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 16386us; 65535us; 16387us; 65535us; 16388us; 65535us; 65535us; 65535us; 65535us; 16390us; 65535us; 65535us; 65535us; 16391us; 65535us; 65535us; 16392us; 65535us; 65535us; 65535us; 16393us; 65535us; 65535us; 65535us; 16394us; 65535us; 65535us; 65535us; 16395us; 65535us; 65535us; 16396us; 65535us; 65535us; 65535us; 16397us; 65535us; 65535us; 65535us; 16398us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16401us; 16402us; 16403us; 16404us; 16405us; 16406us; 16407us; 16408us; 65535us; 16409us; 16410us; 65535us; 16411us; 16412us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16413us; 65535us; 65535us; 65535us; 16414us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16415us; 65535us; 65535us; 16416us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16445us; 65535us; 16447us; 16448us; 65535us; 65535us; 65535us; 65535us; 16450us; 65535us; 65535us; 16451us; 65535us; |]
let _fsyacc_reductions ()  =    [| 
# 421 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data :  TinyML.Ast.interactive )) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
                      raise (FSharp.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1))
                   )
                 : '_startinteractive));
# 430 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data :  TinyML.Ast.expr )) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
                      raise (FSharp.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1))
                   )
                 : '_startprogram));
# 439 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 49 "Parser.fsy"
                                                              _1 
                   )
# 49 "Parser.fsy"
                 :  TinyML.Ast.expr ));
# 450 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 52 "Parser.fsy"
                                                               IExpr _1 
                   )
# 52 "Parser.fsy"
                 :  TinyML.Ast.interactive ));
# 461 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'binding)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 53 "Parser.fsy"
                                                               IBinding _1 
                   )
# 53 "Parser.fsy"
                 :  TinyML.Ast.interactive ));
# 472 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 56 "Parser.fsy"
                                                                   _1 
                   )
# 56 "Parser.fsy"
                 : 'expr));
# 483 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atoms)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 57 "Parser.fsy"
                                                                   Tuple _2 
                   )
# 57 "Parser.fsy"
                 : 'expr));
# 494 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 61 "Parser.fsy"
                                                                (false, _2, None, _4) 
                   )
# 61 "Parser.fsy"
                 : 'binding));
# 506 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parms)) in
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 62 "Parser.fsy"
                                                                (false, _2, None, fold_params _3 _5) 
                   )
# 62 "Parser.fsy"
                 : 'binding));
# 519 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 64 "Parser.fsy"
                                                                (false, _2, Some _4, _6) 
                   )
# 64 "Parser.fsy"
                 : 'binding));
# 532 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'parms)) in
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 65 "Parser.fsy"
                                                                (false, _2, Some _5, fold_params _3 _7) 
                   )
# 65 "Parser.fsy"
                 : 'binding));
# 546 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 67 "Parser.fsy"
                                                                (true, _3, None, _5) 
                   )
# 67 "Parser.fsy"
                 : 'binding));
# 558 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'parms)) in
            let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 68 "Parser.fsy"
                                                                (true, _3, None, fold_params _4 _6 )
                   )
# 68 "Parser.fsy"
                 : 'binding));
# 571 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'parms)) in
            let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 70 "Parser.fsy"
                                                                (true, _3, Some _6, fold_params _4 _8) 
                   )
# 70 "Parser.fsy"
                 : 'binding));
# 585 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _7 = (let data = parseState.GetInput(7) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 71 "Parser.fsy"
                                                                (true, _3, Some _5, _7) 
                   )
# 71 "Parser.fsy"
                 : 'binding));
# 598 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 74 "Parser.fsy"
                                                         [_1, None] 
                   )
# 74 "Parser.fsy"
                 : 'parms));
# 609 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 75 "Parser.fsy"
                                                         [_2, Some _4]
                   )
# 75 "Parser.fsy"
                 : 'parms));
# 621 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'parms)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 76 "Parser.fsy"
                                                         (_1, None) :: _2 
                   )
# 76 "Parser.fsy"
                 : 'parms));
# 633 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'parms)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 77 "Parser.fsy"
                                                         (_2, Some _4) :: _6
                   )
# 77 "Parser.fsy"
                 : 'parms));
# 646 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Int32)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 80 "Parser.fsy"
                                                               Lit (LInt _1) 
                   )
# 80 "Parser.fsy"
                 : 'expr_app_atom));
# 657 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Double)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 81 "Parser.fsy"
                                                               Lit (LFloat _1) 
                   )
# 81 "Parser.fsy"
                 : 'expr_app_atom));
# 668 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 82 "Parser.fsy"
                                                               Lit (LString _1) 
                   )
# 82 "Parser.fsy"
                 : 'expr_app_atom));
# 679 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Char)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 83 "Parser.fsy"
                                                               Lit (LChar _1) 
                   )
# 83 "Parser.fsy"
                 : 'expr_app_atom));
# 690 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 84 "Parser.fsy"
                                                               Lit (LBool true) 
                   )
# 84 "Parser.fsy"
                 : 'expr_app_atom));
# 700 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 85 "Parser.fsy"
                                                               Lit (LBool false) 
                   )
# 85 "Parser.fsy"
                 : 'expr_app_atom));
# 710 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 86 "Parser.fsy"
                                                               Lit LUnit 
                   )
# 86 "Parser.fsy"
                 : 'expr_app_atom));
# 720 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 88 "Parser.fsy"
                                                               Var _1 
                   )
# 88 "Parser.fsy"
                 : 'expr_app_atom));
# 731 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 90 "Parser.fsy"
                                                               _2 
                   )
# 90 "Parser.fsy"
                 : 'expr_app_atom));
# 742 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_app_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 93 "Parser.fsy"
                                                                       _1 
                   )
# 93 "Parser.fsy"
                 : 'expr_tuple_atom));
# 753 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_app_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 94 "Parser.fsy"
                                                                       App (_1, _2) 
                   )
# 94 "Parser.fsy"
                 : 'expr_tuple_atom));
# 765 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 96 "Parser.fsy"
                                                                       Lambda (_2, None, _4) 
                   )
# 96 "Parser.fsy"
                 : 'expr_tuple_atom));
# 777 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _8 = (let data = parseState.GetInput(8) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 97 "Parser.fsy"
                                                                       Lambda (_3, Some _5, _8) 
                   )
# 97 "Parser.fsy"
                 : 'expr_tuple_atom));
# 790 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'binding)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 99 "Parser.fsy"
                                                                       LetIn (_1, _3) 
                   )
# 99 "Parser.fsy"
                 : 'expr_tuple_atom));
# 802 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 101 "Parser.fsy"
                                                                 UnOp ("not", _2) 
                   )
# 101 "Parser.fsy"
                 : 'expr_tuple_atom));
# 813 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 102 "Parser.fsy"
                                                                             UnOp ("-", _2) 
                   )
# 102 "Parser.fsy"
                 : 'expr_tuple_atom));
# 824 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 103 "Parser.fsy"
                                                                             UnOp ("-.", _2) 
                   )
# 103 "Parser.fsy"
                 : 'expr_tuple_atom));
# 835 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 105 "Parser.fsy"
                                                                    BinOp (_1, "+", _3) 
                   )
# 105 "Parser.fsy"
                 : 'expr_tuple_atom));
# 847 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 106 "Parser.fsy"
                                                                          BinOp (_1, "+.", _3) 
                   )
# 106 "Parser.fsy"
                 : 'expr_tuple_atom));
# 859 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 107 "Parser.fsy"
                                                                     BinOp (_1, "-", _3) 
                   )
# 107 "Parser.fsy"
                 : 'expr_tuple_atom));
# 871 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 108 "Parser.fsy"
                                                                        BinOp (_1, "-.", _3) 
                   )
# 108 "Parser.fsy"
                 : 'expr_tuple_atom));
# 883 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 109 "Parser.fsy"
                                                                    BinOp (_1, "*", _3) 
                   )
# 109 "Parser.fsy"
                 : 'expr_tuple_atom));
# 895 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 110 "Parser.fsy"
                                                                       BinOp (_1, "*.", _3) 
                   )
# 110 "Parser.fsy"
                 : 'expr_tuple_atom));
# 907 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 111 "Parser.fsy"
                                                                     BinOp (_1, "/", _3) 
                   )
# 111 "Parser.fsy"
                 : 'expr_tuple_atom));
# 919 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 112 "Parser.fsy"
                                                                        BinOp (_1, "/.", _3) 
                   )
# 112 "Parser.fsy"
                 : 'expr_tuple_atom));
# 931 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 113 "Parser.fsy"
                                                                          BinOp (_1, "%", _3) 
                   )
# 113 "Parser.fsy"
                 : 'expr_tuple_atom));
# 943 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 114 "Parser.fsy"
                                                                             BinOp (_1, "%.", _3) 
                   )
# 114 "Parser.fsy"
                 : 'expr_tuple_atom));
# 955 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 116 "Parser.fsy"
                                                                       BinOp (_1, "=", _3) 
                   )
# 116 "Parser.fsy"
                 : 'expr_tuple_atom));
# 967 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 117 "Parser.fsy"
                                                                       BinOp (_1, "=.", _3) 
                   )
# 117 "Parser.fsy"
                 : 'expr_tuple_atom));
# 979 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 118 "Parser.fsy"
                                                                        BinOp (_1, "<>", _3) 
                   )
# 118 "Parser.fsy"
                 : 'expr_tuple_atom));
# 991 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 119 "Parser.fsy"
                                                                        BinOp (_1, "<>.", _3) 
                   )
# 119 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1003 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 120 "Parser.fsy"
                                                                       BinOp (_1, "<", _3) 
                   )
# 120 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1015 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 121 "Parser.fsy"
                                                                       BinOp (_1, "<.", _3) 
                   )
# 121 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1027 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 122 "Parser.fsy"
                                                                       BinOp (_1, ">", _3) 
                   )
# 122 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1039 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 123 "Parser.fsy"
                                                                       BinOp (_1, ">.", _3) 
                   )
# 123 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1051 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 124 "Parser.fsy"
                                                                        BinOp (_1, "<=", _3) 
                   )
# 124 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1063 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 125 "Parser.fsy"
                                                                        BinOp (_1, "<=.", _3) 
                   )
# 125 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1075 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 126 "Parser.fsy"
                                                                        BinOp (_1, ">=", _3) 
                   )
# 126 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1087 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 127 "Parser.fsy"
                                                                        BinOp (_1, ">=.", _3) 
                   )
# 127 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1099 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 128 "Parser.fsy"
                                                                             BinOp (_1, "and", _3) 
                   )
# 128 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1111 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 129 "Parser.fsy"
                                                                         BinOp (_1, "or", _3) 
                   )
# 129 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1123 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 131 "Parser.fsy"
                                                                                   IfThenElse (_2, _4, None) 
                   )
# 131 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1135 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 132 "Parser.fsy"
                                                                                   IfThenElse (_2, _4, Some _6) 
                   )
# 132 "Parser.fsy"
                 : 'expr_tuple_atom));
# 1148 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 135 "Parser.fsy"
                                                                       [_1] 
                   )
# 135 "Parser.fsy"
                 : 'expr_tuple_atoms));
# 1159 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atom)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr_tuple_atoms)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 136 "Parser.fsy"
                                                                       _1 :: _3 
                   )
# 136 "Parser.fsy"
                 : 'expr_tuple_atoms));
# 1171 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.String)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 140 "Parser.fsy"
                                                               TyName _1 
                   )
# 140 "Parser.fsy"
                 : 'ty));
# 1182 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 141 "Parser.fsy"
                                                               TyArrow (_1, _3) 
                   )
# 141 "Parser.fsy"
                 : 'ty));
# 1194 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty_tuple)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 142 "Parser.fsy"
                                                               TyTuple _1 
                   )
# 142 "Parser.fsy"
                 : 'ty));
# 1205 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 143 "Parser.fsy"
                                                               _2 
                   )
# 143 "Parser.fsy"
                 : 'ty));
# 1216 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 146 "Parser.fsy"
                                                               [_1] 
                   )
# 146 "Parser.fsy"
                 : 'ty_tuple));
# 1227 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty_tuple)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 147 "Parser.fsy"
                                                               _1 :: _3 
                   )
# 147 "Parser.fsy"
                 : 'ty_tuple));
|]
# 1240 "Parser.fs"
let tables () : FSharp.Text.Parsing.Tables<_> = 
  { reductions= _fsyacc_reductions ();
    endOfInputTag = _fsyacc_endOfInputTag;
    tagOfToken = tagOfToken;
    dataOfToken = _fsyacc_dataOfToken; 
    actionTableElements = _fsyacc_actionTableElements;
    actionTableRowOffsets = _fsyacc_actionTableRowOffsets;
    stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements;
    stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets;
    reductionSymbolCounts = _fsyacc_reductionSymbolCounts;
    immediateActions = _fsyacc_immediateActions;
    gotos = _fsyacc_gotos;
    sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets;
    tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal;
    parseError = (fun (ctxt:FSharp.Text.Parsing.ParseErrorContext<_>) -> 
                              match parse_error_rich with 
                              | Some f -> f ctxt
                              | None -> parse_error ctxt.Message);
    numTerminals = 49;
    productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable  }
let engine lexer lexbuf startState = (tables ()).Interpret(lexer, lexbuf, startState)
let interactive lexer lexbuf :  TinyML.Ast.interactive  =
    Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 0))
let program lexer lexbuf :  TinyML.Ast.expr  =
    Microsoft.FSharp.Core.Operators.unbox ((tables ()).Interpret(lexer, lexbuf, 2))
