// 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))

let desugar_params params e0 = List.foldBack (fun (id, tyo) e -> Lambda (id, tyo, e)) params e0


# 18 "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
  | LT
  | GT
  | LEQ
  | GEQ
  | EQ
  | NEQ
  | 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_LT
    | TOKEN_GT
    | TOKEN_LEQ
    | TOKEN_GEQ
    | TOKEN_EQ
    | TOKEN_NEQ
    | 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_param
    | NONTERM_params
    | NONTERM_lit
    | 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 
  | LT  -> 18 
  | GT  -> 19 
  | LEQ  -> 20 
  | GEQ  -> 21 
  | EQ  -> 22 
  | NEQ  -> 23 
  | AND  -> 24 
  | OR  -> 25 
  | NOT  -> 26 
  | COLON  -> 27 
  | SEMICOLON2  -> 28 
  | COMMA  -> 29 
  | STRING _ -> 30 
  | ID _ -> 31 
  | CHAR _ -> 32 
  | FLOAT _ -> 33 
  | INT _ -> 34 

// 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_LT 
  | 19 -> TOKEN_GT 
  | 20 -> TOKEN_LEQ 
  | 21 -> TOKEN_GEQ 
  | 22 -> TOKEN_EQ 
  | 23 -> TOKEN_NEQ 
  | 24 -> TOKEN_AND 
  | 25 -> TOKEN_OR 
  | 26 -> TOKEN_NOT 
  | 27 -> TOKEN_COLON 
  | 28 -> TOKEN_SEMICOLON2 
  | 29 -> TOKEN_COMMA 
  | 30 -> TOKEN_STRING 
  | 31 -> TOKEN_ID 
  | 32 -> TOKEN_CHAR 
  | 33 -> TOKEN_FLOAT 
  | 34 -> TOKEN_INT 
  | 37 -> TOKEN_end_of_input
  | 35 -> 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_param 
    | 14 -> NONTERM_param 
    | 15 -> NONTERM_params 
    | 16 -> NONTERM_params 
    | 17 -> NONTERM_lit 
    | 18 -> NONTERM_lit 
    | 19 -> NONTERM_lit 
    | 20 -> NONTERM_lit 
    | 21 -> NONTERM_lit 
    | 22 -> NONTERM_lit 
    | 23 -> NONTERM_lit 
    | 24 -> NONTERM_expr_app_atom 
    | 25 -> NONTERM_expr_app_atom 
    | 26 -> NONTERM_expr_app_atom 
    | 27 -> NONTERM_expr_tuple_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_atoms 
    | 50 -> NONTERM_expr_tuple_atoms 
    | 51 -> NONTERM_ty 
    | 52 -> NONTERM_ty 
    | 53 -> NONTERM_ty 
    | 54 -> NONTERM_ty 
    | 55 -> NONTERM_ty_tuple 
    | 56 -> NONTERM_ty_tuple 
    | _ -> failwith "prodIdxToNonTerminal: bad production index"

let _fsyacc_endOfInputTag = 37 
let _fsyacc_tagOfErrorTerminal = 35

// 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" 
  | LT  -> "LT" 
  | GT  -> "GT" 
  | LEQ  -> "LEQ" 
  | GEQ  -> "GEQ" 
  | EQ  -> "EQ" 
  | NEQ  -> "NEQ" 
  | 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) 
  | LT  -> (null : System.Object) 
  | GT  -> (null : System.Object) 
  | LEQ  -> (null : System.Object) 
  | GEQ  -> (null : System.Object) 
  | EQ  -> (null : System.Object) 
  | NEQ  -> (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; 16us; 65535us; 0us; 6us; 2us; 4us; 12us; 55us; 17us; 18us; 21us; 22us; 25us; 26us; 29us; 30us; 32us; 33us; 35us; 36us; 51us; 55us; 77us; 78us; 84us; 85us; 87us; 88us; 104us; 105us; 106us; 107us; 108us; 109us; 32us; 65535us; 0us; 8us; 2us; 86us; 12us; 86us; 17us; 86us; 21us; 86us; 25us; 86us; 29us; 86us; 32us; 86us; 35us; 86us; 51us; 86us; 77us; 86us; 84us; 86us; 87us; 86us; 89us; 86us; 90us; 86us; 91us; 86us; 92us; 86us; 93us; 86us; 94us; 86us; 95us; 86us; 96us; 86us; 97us; 86us; 98us; 86us; 99us; 86us; 100us; 86us; 101us; 86us; 102us; 86us; 103us; 86us; 104us; 86us; 106us; 86us; 108us; 86us; 110us; 86us; 3us; 65535us; 16us; 43us; 24us; 43us; 43us; 43us; 3us; 65535us; 16us; 31us; 24us; 34us; 43us; 44us; 50us; 65535us; 0us; 53us; 2us; 53us; 10us; 53us; 11us; 53us; 12us; 53us; 17us; 53us; 21us; 53us; 25us; 53us; 29us; 53us; 32us; 53us; 35us; 53us; 51us; 53us; 58us; 53us; 59us; 53us; 60us; 53us; 61us; 53us; 62us; 53us; 63us; 53us; 64us; 53us; 65us; 53us; 66us; 53us; 67us; 53us; 68us; 53us; 69us; 53us; 70us; 53us; 71us; 53us; 72us; 53us; 73us; 53us; 77us; 53us; 84us; 53us; 87us; 53us; 89us; 53us; 90us; 53us; 91us; 53us; 92us; 53us; 93us; 53us; 94us; 53us; 95us; 53us; 96us; 53us; 97us; 53us; 98us; 53us; 99us; 53us; 100us; 53us; 101us; 53us; 102us; 53us; 103us; 53us; 104us; 53us; 106us; 53us; 108us; 53us; 110us; 53us; 50us; 65535us; 0us; 57us; 2us; 57us; 10us; 74us; 11us; 74us; 12us; 57us; 17us; 57us; 21us; 57us; 25us; 57us; 29us; 57us; 32us; 57us; 35us; 57us; 51us; 57us; 58us; 74us; 59us; 74us; 60us; 74us; 61us; 74us; 62us; 74us; 63us; 74us; 64us; 74us; 65us; 74us; 66us; 74us; 67us; 74us; 68us; 74us; 69us; 74us; 70us; 74us; 71us; 74us; 72us; 74us; 73us; 74us; 77us; 57us; 84us; 57us; 87us; 57us; 89us; 57us; 90us; 57us; 91us; 57us; 92us; 57us; 93us; 57us; 94us; 57us; 95us; 57us; 96us; 57us; 97us; 57us; 98us; 57us; 99us; 57us; 100us; 57us; 101us; 57us; 102us; 57us; 103us; 57us; 104us; 57us; 106us; 57us; 108us; 57us; 110us; 57us; 32us; 65535us; 0us; 10us; 2us; 10us; 12us; 11us; 17us; 10us; 21us; 10us; 25us; 10us; 29us; 10us; 32us; 10us; 35us; 10us; 51us; 10us; 77us; 10us; 84us; 10us; 87us; 10us; 89us; 58us; 90us; 59us; 91us; 60us; 92us; 61us; 93us; 62us; 94us; 63us; 95us; 64us; 96us; 65us; 97us; 66us; 98us; 67us; 99us; 68us; 100us; 69us; 101us; 70us; 102us; 71us; 103us; 72us; 104us; 10us; 106us; 10us; 108us; 10us; 110us; 73us; 2us; 65535us; 12us; 13us; 110us; 111us; 8us; 65535us; 19us; 20us; 27us; 28us; 40us; 41us; 81us; 82us; 116us; 113us; 119us; 114us; 121us; 115us; 122us; 115us; 8us; 65535us; 19us; 117us; 27us; 117us; 40us; 117us; 81us; 117us; 116us; 117us; 119us; 117us; 121us; 117us; 122us; 118us; |]
let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 2us; 4us; 6us; 23us; 56us; 60us; 64us; 115us; 166us; 199us; 202us; 211us; |]
let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 2us; 1us; 3us; 1us; 3us; 2us; 4us; 31us; 1us; 4us; 15us; 5us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 17us; 5us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 49us; 50us; 3us; 6us; 23us; 26us; 1us; 6us; 1us; 6us; 6us; 7us; 8us; 9us; 10us; 11us; 12us; 3us; 7us; 8us; 11us; 1us; 7us; 1us; 7us; 1us; 8us; 4us; 8us; 52us; 55us; 56us; 1us; 8us; 1us; 8us; 3us; 9us; 10us; 12us; 3us; 9us; 10us; 12us; 1us; 9us; 1us; 9us; 1us; 10us; 4us; 10us; 52us; 55us; 56us; 1us; 10us; 1us; 10us; 1us; 11us; 1us; 11us; 1us; 11us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 13us; 1us; 14us; 1us; 14us; 1us; 14us; 4us; 14us; 52us; 55us; 56us; 1us; 14us; 2us; 15us; 16us; 1us; 16us; 1us; 17us; 1us; 18us; 1us; 19us; 1us; 20us; 1us; 21us; 1us; 22us; 2us; 23us; 26us; 1us; 23us; 1us; 24us; 1us; 25us; 1us; 26us; 1us; 26us; 1us; 27us; 15us; 28us; 32us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 33us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 41us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 42us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 43us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 44us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 45us; 46us; 15us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 46us; 16us; 28us; 34us; 35us; 36us; 37us; 38us; 39us; 40us; 41us; 42us; 43us; 44us; 45us; 46us; 49us; 50us; 1us; 28us; 2us; 29us; 30us; 1us; 29us; 1us; 29us; 1us; 29us; 1us; 30us; 1us; 30us; 1us; 30us; 4us; 30us; 52us; 55us; 56us; 1us; 30us; 1us; 30us; 1us; 30us; 1us; 31us; 1us; 31us; 1us; 31us; 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; 2us; 47us; 48us; 2us; 47us; 48us; 2us; 47us; 48us; 2us; 47us; 48us; 1us; 48us; 1us; 48us; 1us; 50us; 1us; 50us; 1us; 51us; 4us; 52us; 52us; 55us; 56us; 4us; 52us; 54us; 55us; 56us; 5us; 52us; 55us; 55us; 56us; 56us; 1us; 52us; 1us; 53us; 2us; 53us; 56us; 1us; 54us; 1us; 54us; 2us; 55us; 56us; 3us; 55us; 56us; 56us; |]
let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 6us; 8us; 10us; 12us; 14us; 16us; 19us; 21us; 37us; 55us; 59us; 61us; 63us; 70us; 74us; 76us; 78us; 80us; 85us; 87us; 89us; 93us; 97us; 99us; 101us; 103us; 108us; 110us; 112us; 114us; 116us; 118us; 120us; 122us; 124us; 126us; 128us; 130us; 132us; 137us; 139us; 142us; 144us; 146us; 148us; 150us; 152us; 154us; 156us; 159us; 161us; 163us; 165us; 167us; 169us; 171us; 187us; 203us; 219us; 235us; 251us; 267us; 283us; 299us; 315us; 331us; 347us; 363us; 379us; 395us; 411us; 428us; 430us; 433us; 435us; 437us; 439us; 441us; 443us; 445us; 450us; 452us; 454us; 456us; 458us; 460us; 462us; 464us; 466us; 468us; 470us; 472us; 474us; 476us; 478us; 480us; 482us; 484us; 486us; 488us; 490us; 492us; 495us; 498us; 501us; 504us; 506us; 508us; 510us; 512us; 514us; 519us; 524us; 530us; 532us; 534us; 537us; 539us; 541us; 544us; |]
let _fsyacc_action_rows = 123
let _fsyacc_actionTableElements = [|13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 49152us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 49152us; 1us; 32768us; 0us; 5us; 0us; 16386us; 1us; 32768us; 28us; 7us; 0us; 16387us; 2us; 32768us; 8us; 87us; 28us; 9us; 0us; 16388us; 21us; 16389us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 18us; 98us; 19us; 99us; 20us; 100us; 21us; 101us; 22us; 96us; 23us; 97us; 24us; 102us; 25us; 103us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 22us; 16389us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 18us; 98us; 19us; 99us; 20us; 100us; 21us; 101us; 22us; 96us; 23us; 97us; 24us; 102us; 25us; 103us; 29us; 110us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 14us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 12us; 52us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 1us; 32768us; 12us; 14us; 0us; 16390us; 2us; 32768us; 7us; 23us; 31us; 16us; 4us; 32768us; 11us; 38us; 22us; 17us; 27us; 19us; 31us; 37us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16391us; 2us; 32768us; 11us; 119us; 31us; 112us; 3us; 32768us; 5us; 116us; 15us; 121us; 22us; 21us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16392us; 1us; 32768us; 31us; 24us; 4us; 32768us; 11us; 38us; 22us; 25us; 27us; 27us; 31us; 37us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16393us; 2us; 32768us; 11us; 119us; 31us; 112us; 3us; 32768us; 5us; 116us; 15us; 121us; 22us; 29us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16394us; 1us; 32768us; 22us; 32us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16395us; 1us; 32768us; 22us; 35us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16396us; 0us; 16397us; 1us; 32768us; 31us; 39us; 1us; 32768us; 27us; 40us; 2us; 32768us; 11us; 119us; 31us; 112us; 3us; 32768us; 5us; 116us; 12us; 42us; 15us; 121us; 0us; 16398us; 2us; 16399us; 11us; 38us; 31us; 37us; 0us; 16400us; 0us; 16401us; 0us; 16402us; 0us; 16403us; 0us; 16404us; 0us; 16405us; 0us; 16406us; 14us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 12us; 52us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16407us; 0us; 16408us; 0us; 16409us; 1us; 32768us; 12us; 56us; 0us; 16410us; 0us; 16411us; 9us; 16416us; 9us; 49us; 10us; 50us; 11us; 51us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 9us; 16417us; 9us; 49us; 10us; 50us; 11us; 51us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 11us; 16418us; 9us; 49us; 10us; 50us; 11us; 51us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 11us; 16419us; 9us; 49us; 10us; 50us; 11us; 51us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 9us; 16420us; 9us; 49us; 10us; 50us; 11us; 51us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 9us; 16421us; 9us; 49us; 10us; 50us; 11us; 51us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 21us; 16422us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 18us; 98us; 19us; 99us; 20us; 100us; 21us; 101us; 22us; 96us; 23us; 97us; 24us; 102us; 25us; 103us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 16423us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 16424us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 16425us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 16426us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 16427us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 16428us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 19us; 16429us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 18us; 98us; 19us; 99us; 20us; 100us; 21us; 101us; 22us; 96us; 23us; 97us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 20us; 16430us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 18us; 98us; 19us; 99us; 20us; 100us; 21us; 101us; 22us; 96us; 23us; 97us; 24us; 102us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 22us; 16433us; 9us; 49us; 10us; 50us; 11us; 51us; 13us; 91us; 14us; 92us; 15us; 93us; 16us; 94us; 17us; 95us; 18us; 98us; 19us; 99us; 20us; 100us; 21us; 101us; 22us; 96us; 23us; 97us; 24us; 102us; 25us; 103us; 29us; 110us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16412us; 2us; 32768us; 11us; 79us; 31us; 76us; 1us; 32768us; 5us; 77us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16413us; 1us; 32768us; 31us; 80us; 1us; 32768us; 27us; 81us; 2us; 32768us; 11us; 119us; 31us; 112us; 3us; 32768us; 5us; 116us; 12us; 83us; 15us; 121us; 1us; 32768us; 5us; 84us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16414us; 1us; 32768us; 8us; 87us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16415us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 1us; 32768us; 2us; 106us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 1us; 16431us; 3us; 108us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 12us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16432us; 13us; 32768us; 1us; 104us; 4us; 75us; 6us; 15us; 9us; 49us; 10us; 50us; 11us; 51us; 14us; 90us; 26us; 89us; 30us; 47us; 31us; 54us; 32us; 48us; 33us; 46us; 34us; 45us; 0us; 16434us; 0us; 16435us; 2us; 16436us; 5us; 116us; 15us; 121us; 3us; 32768us; 5us; 116us; 12us; 120us; 15us; 121us; 0us; 16439us; 2us; 32768us; 11us; 119us; 31us; 112us; 0us; 16437us; 0us; 16437us; 2us; 32768us; 11us; 119us; 31us; 112us; 0us; 16438us; 2us; 32768us; 11us; 119us; 31us; 112us; 2us; 32768us; 11us; 119us; 31us; 112us; |]
let _fsyacc_actionTableRowOffsets = [|0us; 14us; 15us; 29us; 30us; 32us; 33us; 35us; 36us; 39us; 40us; 62us; 85us; 100us; 102us; 103us; 106us; 111us; 125us; 126us; 129us; 133us; 147us; 148us; 150us; 155us; 169us; 170us; 173us; 177us; 191us; 192us; 194us; 208us; 209us; 211us; 225us; 226us; 227us; 229us; 231us; 234us; 238us; 239us; 242us; 243us; 244us; 245us; 246us; 247us; 248us; 249us; 264us; 265us; 266us; 267us; 269us; 270us; 271us; 281us; 291us; 303us; 315us; 325us; 335us; 357us; 371us; 385us; 399us; 413us; 427us; 441us; 461us; 482us; 505us; 506us; 509us; 511us; 525us; 526us; 528us; 530us; 533us; 537us; 539us; 553us; 554us; 556us; 570us; 571us; 585us; 599us; 613us; 627us; 641us; 655us; 669us; 683us; 697us; 711us; 725us; 739us; 753us; 767us; 781us; 795us; 797us; 811us; 813us; 827us; 828us; 842us; 843us; 844us; 847us; 851us; 852us; 855us; 856us; 857us; 860us; 861us; 864us; |]
let _fsyacc_reductionSymbolCounts = [|1us; 1us; 2us; 2us; 2us; 1us; 3us; 4us; 6us; 5us; 7us; 5us; 6us; 1us; 5us; 1us; 2us; 1us; 1us; 1us; 1us; 1us; 1us; 2us; 1us; 1us; 3us; 1us; 2us; 4us; 8us; 3us; 2us; 2us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 4us; 6us; 1us; 3us; 1us; 3us; 1us; 3us; 3us; 5us; |]
let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 3us; 4us; 4us; 5us; 5us; 5us; 5us; 5us; 5us; 6us; 6us; 7us; 7us; 8us; 8us; 8us; 8us; 8us; 8us; 8us; 9us; 9us; 9us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 11us; 11us; 12us; 12us; 12us; 12us; 13us; 13us; |]
let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 49152us; 65535us; 16386us; 65535us; 16387us; 65535us; 16388us; 65535us; 65535us; 65535us; 65535us; 16390us; 65535us; 65535us; 65535us; 16391us; 65535us; 65535us; 65535us; 16392us; 65535us; 65535us; 65535us; 16393us; 65535us; 65535us; 65535us; 16394us; 65535us; 65535us; 16395us; 65535us; 65535us; 16396us; 16397us; 65535us; 65535us; 65535us; 65535us; 16398us; 65535us; 16400us; 16401us; 16402us; 16403us; 16404us; 16405us; 16406us; 65535us; 16407us; 16408us; 16409us; 65535us; 16410us; 16411us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16412us; 65535us; 65535us; 65535us; 16413us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16414us; 65535us; 65535us; 16415us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16432us; 65535us; 16434us; 16435us; 65535us; 65535us; 65535us; 65535us; 16437us; 65535us; 65535us; 16438us; 65535us; 65535us; |]
let _fsyacc_reductions ()  =    [| 
# 346 "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));
# 355 "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));
# 364 "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 ));
# 375 "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 ));
# 386 "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 ));
# 397 "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));
# 408 "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));
# 419 "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
                (
                   (
# 60 "Parser.fsy"
                                                               (false, _2, None, _4) 
                   )
# 60 "Parser.fsy"
                 : 'binding));
# 431 "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
                (
                   (
# 61 "Parser.fsy"
                                                               (false, _2, Some _4, _6) 
                   )
# 61 "Parser.fsy"
                 : 'binding));
# 444 "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
                (
                   (
# 62 "Parser.fsy"
                                                               (true, _3, None, _5) 
                   )
# 62 "Parser.fsy"
                 : 'binding));
# 456 "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
                (
                   (
# 63 "Parser.fsy"
                                                               (true, _3, Some _5, _7) 
                   )
# 63 "Parser.fsy"
                 : 'binding));
# 469 "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 : 'params)) in
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 65 "Parser.fsy"
                                                               (false, _2, None, desugar_params _3 _5) 
                   )
# 65 "Parser.fsy"
                 : 'binding));
# 482 "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 : 'params)) in
            let _6 = (let data = parseState.GetInput(6) in (Microsoft.FSharp.Core.Operators.unbox data : 'expr)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 66 "Parser.fsy"
                                                               (true, _3, None, desugar_params _4 _6 )
                   )
# 66 "Parser.fsy"
                 : 'binding));
# 495 "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
                (
                   (
# 69 "Parser.fsy"
                                                               (_1, None) 
                   )
# 69 "Parser.fsy"
                 : 'param));
# 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 _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 70 "Parser.fsy"
                                                               (_2, Some _4) 
                   )
# 70 "Parser.fsy"
                 : 'param));
# 518 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'param)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 73 "Parser.fsy"
                                                               [_1] 
                   )
# 73 "Parser.fsy"
                 : 'params));
# 529 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'param)) in
            let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'params)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 74 "Parser.fsy"
                                                               _1 :: _2 
                   )
# 74 "Parser.fsy"
                 : 'params));
# 541 "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
                (
                   (
# 77 "Parser.fsy"
                                                               LInt _1 
                   )
# 77 "Parser.fsy"
                 : 'lit));
# 552 "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
                (
                   (
# 78 "Parser.fsy"
                                                               LFloat _1 
                   )
# 78 "Parser.fsy"
                 : 'lit));
# 563 "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
                (
                   (
# 79 "Parser.fsy"
                                                               LString _1 
                   )
# 79 "Parser.fsy"
                 : 'lit));
# 574 "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
                (
                   (
# 80 "Parser.fsy"
                                                               LChar _1 
                   )
# 80 "Parser.fsy"
                 : 'lit));
# 585 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 81 "Parser.fsy"
                                                               LBool true 
                   )
# 81 "Parser.fsy"
                 : 'lit));
# 595 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 82 "Parser.fsy"
                                                               LBool false 
                   )
# 82 "Parser.fsy"
                 : 'lit));
# 605 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 83 "Parser.fsy"
                                                               LUnit 
                   )
# 83 "Parser.fsy"
                 : 'lit));
# 615 "Parser.fs"
        (fun (parseState : FSharp.Text.Parsing.IParseState) ->
            let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'lit)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 86 "Parser.fsy"
                                                               Lit _1 
                   )
# 86 "Parser.fsy"
                 : 'expr_app_atom));
# 626 "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
                (
                   (
# 87 "Parser.fsy"
                                                               Var _1 
                   )
# 87 "Parser.fsy"
                 : 'expr_app_atom));
# 637 "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
                (
                   (
# 88 "Parser.fsy"
                                                               _2 
                   )
# 88 "Parser.fsy"
                 : 'expr_app_atom));
# 648 "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
                (
                   (
# 91 "Parser.fsy"
                                                                       _1 
                   )
# 91 "Parser.fsy"
                 : 'expr_tuple_atom));
# 659 "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
                (
                   (
# 92 "Parser.fsy"
                                                                       App (_1, _2) 
                   )
# 92 "Parser.fsy"
                 : 'expr_tuple_atom));
# 671 "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
                (
                   (
# 94 "Parser.fsy"
                                                                       Lambda (_2, None, _4) 
                   )
# 94 "Parser.fsy"
                 : 'expr_tuple_atom));
# 683 "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
                (
                   (
# 95 "Parser.fsy"
                                                                       Lambda (_3, Some _5, _8) 
                   )
# 95 "Parser.fsy"
                 : 'expr_tuple_atom));
# 696 "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
                (
                   (
# 97 "Parser.fsy"
                                                                       LetIn (_1, _3) 
                   )
# 97 "Parser.fsy"
                 : 'expr_tuple_atom));
# 708 "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
                (
                   (
# 99 "Parser.fsy"
                                                     UnOp ("not", _2) 
                   )
# 99 "Parser.fsy"
                 : 'expr_tuple_atom));
# 719 "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
                (
                   (
# 100 "Parser.fsy"
                                                                 UnOp ("-", _2) 
                   )
# 100 "Parser.fsy"
                 : 'expr_tuple_atom));
# 730 "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
                (
                   (
# 102 "Parser.fsy"
                                                                       BinOp (_1, "+", _3) 
                   )
# 102 "Parser.fsy"
                 : 'expr_tuple_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_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
                (
                   (
# 103 "Parser.fsy"
                                                                       BinOp (_1, "-", _3) 
                   )
# 103 "Parser.fsy"
                 : 'expr_tuple_atom));
# 754 "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
                (
                   (
# 104 "Parser.fsy"
                                                                       BinOp (_1, "*", _3) 
                   )
# 104 "Parser.fsy"
                 : 'expr_tuple_atom));
# 766 "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));
# 778 "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));
# 790 "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));
# 802 "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));
# 814 "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));
# 826 "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));
# 838 "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));
# 850 "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));
# 862 "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, "and", _3) 
                   )
# 114 "Parser.fsy"
                 : 'expr_tuple_atom));
# 874 "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
                (
                   (
# 115 "Parser.fsy"
                                                                       BinOp (_1, "or", _3) 
                   )
# 115 "Parser.fsy"
                 : 'expr_tuple_atom));
# 886 "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
                (
                   (
# 117 "Parser.fsy"
                                                                       IfThenElse (_2, _4, None) 
                   )
# 117 "Parser.fsy"
                 : 'expr_tuple_atom));
# 898 "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
                (
                   (
# 118 "Parser.fsy"
                                                                       IfThenElse (_2, _4, Some _6) 
                   )
# 118 "Parser.fsy"
                 : 'expr_tuple_atom));
# 911 "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
                (
                   (
# 121 "Parser.fsy"
                                                                       [_1] 
                   )
# 121 "Parser.fsy"
                 : 'expr_tuple_atoms));
# 922 "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
                (
                   (
# 122 "Parser.fsy"
                                                                       _1 :: _3 
                   )
# 122 "Parser.fsy"
                 : 'expr_tuple_atoms));
# 934 "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
                (
                   (
# 126 "Parser.fsy"
                                                               TyName _1 
                   )
# 126 "Parser.fsy"
                 : 'ty));
# 945 "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
                (
                   (
# 127 "Parser.fsy"
                                                               TyArrow (_1, _3) 
                   )
# 127 "Parser.fsy"
                 : 'ty));
# 957 "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
                (
                   (
# 128 "Parser.fsy"
                                                               TyTuple _1 
                   )
# 128 "Parser.fsy"
                 : 'ty));
# 968 "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
                (
                   (
# 129 "Parser.fsy"
                                                               _2 
                   )
# 129 "Parser.fsy"
                 : 'ty));
# 979 "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
                (
                   (
# 132 "Parser.fsy"
                                                               [_1; _3] 
                   )
# 132 "Parser.fsy"
                 : 'ty_tuple));
# 991 "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
            let _5 = (let data = parseState.GetInput(5) in (Microsoft.FSharp.Core.Operators.unbox data : 'ty_tuple)) in
            Microsoft.FSharp.Core.Operators.box
                (
                   (
# 133 "Parser.fsy"
                                                               _1 :: _3 :: _5 
                   )
# 133 "Parser.fsy"
                 : 'ty_tuple));
|]
# 1005 "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 = 38;
    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))
