// auto-generated: "lalrpop 0.20.0"
// sha3: 662c73877f80e7b198ae52fe57df6a62119db188313aecfccb3723e23a5f47d3
use crate::lexer;
use crate::{
    common::{
        unquote_block_string, unquote_string, IdRange, OperationType, TypeWrappers, WrappingType,
    },
    type_system::{ids::*, storage::*, writer::TypeSystemAstWriter, DirectiveLocation},
    Span,
};
#[allow(unused_extern_crates)]
extern crate lalrpop_util as __lalrpop_util;
#[allow(unused_imports)]
use self::__lalrpop_util::state_machine as __state_machine;
extern crate alloc;
extern crate core;

#[rustfmt::skip]
#[allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens, clippy::all)]
mod __parse__TypeSystemDocument {

    use crate::lexer;
    use crate::{
    Span,
    type_system::{
        storage::*, ids::*, writer::TypeSystemAstWriter,
        DirectiveLocation,
    },
    common::{
        OperationType, IdRange, WrappingType, TypeWrappers,
        unquote_string, unquote_block_string
    }
};
    #[allow(unused_extern_crates)]
    extern crate lalrpop_util as __lalrpop_util;
    #[allow(unused_imports)]
    use self::__lalrpop_util::state_machine as __state_machine;
    extern crate core;
    extern crate alloc;
    use super::__ToTriple;
    #[allow(dead_code)]
    pub(crate) enum __Symbol<'input>
     {
        Variant0(lexer::Token<'input>),
        Variant1(&'input str),
        Variant2(core::option::Option<lexer::Token<'input>>),
        Variant3(usize),
        Variant4(ArgumentId),
        Variant5(alloc::vec::Vec<ArgumentId>),
        Variant6(Vec<ArgumentId>),
        Variant7(core::option::Option<Vec<ArgumentId>>),
        Variant8(Vec<()>),
        Variant9(core::option::Option<Vec<()>>),
        Variant10(ValueId),
        Variant11(core::option::Option<ValueId>),
        Variant12(()),
        Variant13(alloc::vec::Vec<()>),
        Variant14(DirectiveDefinitionRecord),
        Variant15(DirectiveLocation),
        Variant16(Vec<DirectiveLocation>),
        Variant17(IdRange<DirectiveId>),
        Variant18(EnumDefinitionRecord),
        Variant19(StringId),
        Variant20(EnumValueDefinitionId),
        Variant21(alloc::vec::Vec<EnumValueDefinitionId>),
        Variant22(Vec<EnumValueDefinitionId>),
        Variant23(core::option::Option<Vec<EnumValueDefinitionId>>),
        Variant24(Vec<StringId>),
        Variant25(core::option::Option<Vec<StringId>>),
        Variant26(InputObjectDefinitionRecord),
        Variant27(InterfaceDefinitionRecord),
        Variant28(ObjectDefinitionRecord),
        Variant29((StringId, ValueId)),
        Variant30(alloc::vec::Vec<(StringId, ValueId)>),
        Variant31(bool),
        Variant32(core::option::Option<bool>),
        Variant33(RootOperationTypeDefinitionRecord),
        Variant34(alloc::vec::Vec<RootOperationTypeDefinitionRecord>),
        Variant35(ScalarDefinitionRecord),
        Variant36(SchemaDefinitionRecord),
        Variant37(StringLiteralId),
        Variant38(core::option::Option<StringLiteralId>),
        Variant39(TypeId),
        Variant40(DefinitionId),
        Variant41(UnionDefinitionRecord),
        Variant42(alloc::vec::Vec<ValueId>),
        Variant43(WrappingType),
        Variant44(alloc::vec::Vec<WrappingType>),
    }
    const __ACTION: &[i16] = &[
        // State 0
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 102, 0, 0, 0, 103, 104, 5, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 8, 105, 0, 0, 9, 10,
        // State 1
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 102, 0, 0, 0, 103, 104, 5, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 8, 105, 0, 0, 9, 10,
        // State 2
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 104, 5, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 8, 105, 0, 0, 9, 10,
        // State 3
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 4
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 8, 105, 0, 0, 9, 10,
        // State 5
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 6
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 7
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 8
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 9
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 10
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 11
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 12
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 13
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 26, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 14
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, 0, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 15
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, 141, 0, 0, 0, 142, 0, 0, 0,
        // State 16
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 26, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 17
        0, 0, 0, 0, 0, 0, -40, 21, 0, 0, -40, 0, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 18
        0, 0, 0, 0, -41, 0, -41, 21, 0, 0, -41, -41, 0, -41, -41, 0, 0, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
        // State 19
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 31, 0, 0, -43, 0, 0, 0, -43, -43, -43, 0, 0, 0, -43, -43, 0, 0, 0, 0, 0, -43, -43, 0, 0, -43, -43,
        // State 20
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 21
        0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 146, 0, 0, 0, 0, 0, 0,
        // State 22
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 36, 0, 0, -95, 0, 0, 0, -95, -95, -95, 0, 0, 0, -95, -95, 0, 0, 0, 0, 0, -95, -95, 0, 0, -95, -95,
        // State 23
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 37, 0, 0, -105, 0, 0, 0, -105, -105, -105, 0, 0, 0, -105, -105, 0, 0, 0, 0, 0, -105, -105, 0, 0, -105, -105,
        // State 24
        0, 0, 39, 0, 0, 0, 0, 21, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 25
        0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 26
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, 141, 0, 0, 0, 142, 0, 0, 0,
        // State 27
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 37, 0, 0, -111, 0, 0, 0, -111, -111, -111, 0, 0, 0, -111, -111, 0, 0, 0, 0, 0, -111, -111, 0, 0, -111, -111,
        // State 28
        0, 0, 39, 0, 0, 0, 0, 21, 0, 0, -40, -40, 0, 0, -40, 0, 0, 0, -40, -40, -40, 0, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40,
        // State 29
        0, 0, 0, 0, 0, 0, 45, 0, 0, 0, -154, 0, 0, 0, -154, 0, 0, 0, -154, -154, -154, 0, 0, 0, -154, -154, 0, 0, 0, 0, 0, -154, -154, 0, 0, -154, -154,
        // State 30
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 156, 103, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 158, 0, 0, 159, 0, 0, 160, 0,
        // State 31
        0, 0, 0, 49, -27, 0, -27, -27, 0, 0, -27, -27, 0, -27, -27, 0, 0, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
        // State 32
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 146, 0, 0, 0, 0, 0, 0,
        // State 33
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 102, 0, 0, 110, 103, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 34
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 54, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 35
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 102, 0, 0, 110, 103, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 36
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 102, 0, 0, 110, 103, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 37
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 37, 0, 0, -104, 0, 0, 0, -104, -104, -104, 0, 0, 0, -104, -104, 0, 0, 0, 0, 0, -104, -104, 0, 0, -104, -104,
        // State 38
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 39
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 40
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 41
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 42
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 43
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 37, 0, 0, -110, 0, 0, 0, -110, -110, -110, 0, 0, 0, -110, -110, 0, 0, 0, 0, 0, -110, -110, 0, 0, -110, -110,
        // State 44
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 60, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 45
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, -40, 0, 0, -40, 0, 0, -40, 0,
        // State 46
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 102, 0, 0, 156, 103, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 158, 0, 0, 159, 0, 0, 160, 0,
        // State 47
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 158, 0, 0, 159, 0, 0, 160, 0,
        // State 48
        0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 49
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 54, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 50
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 54, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 51
        0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 109, 0, 0, 0, 102, 0, 0, 110, 103, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 52
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 53
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 54
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 189, 102, 0, 0, 110, 103, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 55
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 191, 102, 0, 0, 110, 103, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 56
        0, 0, 0, 34, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 57
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 58
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 59
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 60
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, -40, -40, 0, 0, -40, -40, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, -40, 0, 0, -40, 0, 0, -40, 0,
        // State 61
        0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 62
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 54, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 63
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 64
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 65
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 66
        0, 0, 0, 34, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 67
        0, 76, 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, 0, 0, 203, 204, 205, 156, 206, 0, 0, 207, 0, 0, 157, 0, 0, 208, 0, 158, 0, 0, 159, 0, 209, 160, 0,
        // State 68
        211, 0, 0, 0, -135, 0, -135, -135, 0, 212, -135, 0, 0, -135, -135, 0, 0, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
        // State 69
        0, 0, 0, 0, -40, 0, 81, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 70
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 71
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 72
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 73
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 74
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 75
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 76
        0, 76, 0, 0, 0, 0, 0, 0, 77, 218, 0, 78, 0, 0, 203, 204, 205, 156, 206, 0, 0, 207, 0, 0, 157, 0, 0, 208, 0, 158, 0, 0, 159, 0, 209, 160, 0,
        // State 77
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 221, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 78
        211, 0, 0, 0, -136, 0, -136, -136, 0, 212, -136, 0, 0, -136, -136, 0, 0, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
        // State 79
        0, 0, 0, 0, -40, 0, 0, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 80
        0, 76, 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, 0, 0, 203, 204, 205, 156, 206, 0, 0, 207, 0, 0, 157, 0, 0, 208, 0, 158, 0, 0, 159, 0, 209, 160, 0,
        // State 81
        0, 0, 0, 0, -40, 0, 81, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 82
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 83
        0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 109, 0, 0, 0, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 84
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 85
        0, 76, 0, 0, 0, 0, 0, 0, 77, 229, 0, 78, 0, 0, 203, 204, 205, 156, 206, 0, 0, 207, 0, 0, 157, 0, 0, 208, 0, 158, 0, 0, 159, 0, 209, 160, 0,
        // State 86
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 231, 0, 0, 0, 110, 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
        // State 87
        0, 0, 0, 0, -40, 0, 0, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 88
        0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -40, 0, 0, -40, -40, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
        // State 89
        0, 76, 0, 0, 0, 0, 0, 0, 77, 0, 0, 78, 0, 0, 203, 204, 205, 156, 206, 0, 0, 207, 0, 0, 157, 0, 0, 208, 0, 158, 0, 0, 159, 0, 209, 160, 0,
        // State 90
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, -24, 0, 0, 0, -24, -24, -24, 0, 0, 0, -24, -24, 0, 0, 0, 0, 0, -24, -24, 0, 0, -24, -24,
        // State 91
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 0, 0, 0, -151, 0, 0, 0, -151, -151, -151, 0, 0, 0, -151, -151, 0, 0, 0, 0, 0, -151, -151, 0, 0, -151, -151,
        // State 92
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, -142, 0, 0, 0, -142, -142, -142, 0, 0, 0, -142, -142, 0, 0, 0, 0, 0, -142, -142, 0, 0, -142, -142,
        // State 93
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, -143, 0, 0, 0, -143, -143, -143, 0, 0, 0, -143, -143, 0, 0, 0, 0, 0, -143, -143, 0, 0, -143, -143,
        // State 94
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, -140, 0, 0, 0, -140, -140, -140, 0, 0, 0, -140, -140, 0, 0, 0, 0, 0, -140, -140, 0, 0, -140, -140,
        // State 95
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, -139, 0, 0, 0, -139, -139, -139, 0, 0, 0, -139, -139, 0, 0, 0, 0, 0, -139, -139, 0, 0, -139, -139,
        // State 96
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138, 0, 0, 0, -138, 0, 0, 0, -138, -138, -138, 0, 0, 0, -138, -138, 0, 0, 0, 0, 0, -138, -138, 0, 0, -138, -138,
        // State 97
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -137, 0, 0, 0, -137, 0, 0, 0, -137, -137, -137, 0, 0, 0, -137, -137, 0, 0, 0, 0, 0, -137, -137, 0, 0, -137, -137,
        // State 98
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, -23, 0, 0, 0, -23, -23, -23, 0, 0, 0, -23, -23, 0, 0, 0, 0, 0, -23, -23, 0, 0, -23, -23,
        // State 99
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 100
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, -141, 0, 0, 0, -141, -141, -141, 0, 0, 0, -141, -141, 0, 0, 0, 0, 0, -141, -141, 0, 0, -141, -141,
        // State 101
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, -131, 0, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
        // State 102
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, -130, 0, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
        // State 103
        0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 104
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 105
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, -25, 0, 0, 0, -25, -25, -25, 0, 0, 0, -25, -25, 0, 0, 0, 0, 0, -25, -25, 0, 0, -25, -25,
        // State 106
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, -22, 0, 0, 0, -22, -22, -22, 0, 0, 0, -22, -22, 0, 0, 0, 0, 0, -22, -22, 0, 0, -22, -22,
        // State 107
        0, -106, 0, -106, -106, -106, -106, -106, -106, -106, -106, -106, 0, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
        // State 108
        -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
        // State 109
        -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
        // State 110
        -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
        // State 111
        -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
        // State 112
        -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
        // State 113
        -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
        // State 114
        -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
        // State 115
        -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
        // State 116
        -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
        // State 117
        -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
        // State 118
        -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
        // State 119
        -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
        // State 120
        -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
        // State 121
        -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
        // State 122
        -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
        // State 123
        -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
        // State 124
        -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
        // State 125
        -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
        // State 126
        -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
        // State 127
        -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
        // State 128
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, -149, 0, 0, 0, -149, -149, -149, 0, 0, 0, -149, -149, 0, 0, 0, 0, 0, -149, -149, 0, 0, -149, -149,
        // State 129
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0, 0, 0, -150, 0, 0, 0, -150, -150, -150, 0, 0, 0, -150, -150, 0, 0, 0, 0, 0, -150, -150, 0, 0, -150, -150,
        // State 130
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, -147, 0, 0, 0, -147, -147, -147, 0, 0, 0, -147, -147, 0, 0, 0, 0, 0, -147, -147, 0, 0, -147, -147,
        // State 131
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0, 0, -146, 0, 0, 0, -146, -146, -146, 0, 0, 0, -146, -146, 0, 0, 0, 0, 0, -146, -146, 0, 0, -146, -146,
        // State 132
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, 0, 0, 0, -145, 0, 0, 0, -145, -145, -145, 0, 0, 0, -145, -145, 0, 0, 0, 0, 0, -145, -145, 0, 0, -145, -145,
        // State 133
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, -144, 0, 0, 0, -144, -144, -144, 0, 0, 0, -144, -144, 0, 0, 0, 0, 0, -144, -144, 0, 0, -144, -144,
        // State 134
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -148, 0, 0, 0, -148, 0, 0, 0, -148, -148, -148, 0, 0, 0, -148, -148, 0, 0, 0, 0, 0, -148, -148, 0, 0, -148, -148,
        // State 135
        0, 0, 0, 0, -30, 0, -30, -30, 0, 0, -30, -30, 0, -30, -30, 0, 0, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
        // State 136
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, -127, 0, 0, 0, -127, -127, -127, 0, 0, 0, -127, -127, 0, 0, 0, 0, 0, -127, -127, 0, 0, -127, -127,
        // State 137
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, 0, -125, 0, 0, 0, -125, 0, 0, 0,
        // State 138
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, 0, 0, -128, -128, -128, 0, 0, 0, -128, -128, 0, 0, 0, 0, 0, -128, -128, 0, 0, -128, -128,
        // State 139
        0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 140
        0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 141
        0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 142
        0, 0, 0, 0, -31, 0, -31, -31, 0, 0, -31, -31, 0, -31, -31, 0, 0, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
        // State 143
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, -42, 0, 0, 0, -42, -42, -42, 0, 0, 0, -42, -42, 0, 0, 0, 0, 0, -42, -42, 0, 0, -42, -42,
        // State 144
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 145
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 146
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, -94, 0, 0, 0, -94, -94, -94, 0, 0, 0, -94, -94, 0, 0, 0, 0, 0, -94, -94, 0, 0, -94, -94,
        // State 147
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0, -103, 0, 0, 0, -103, -103, -103, 0, 0, 0, -103, -103, 0, 0, 0, 0, 0, -103, -103, 0, 0, -103, -103,
        // State 148
        -107, 0, -107, 0, -107, 0, -107, -107, 0, -107, -107, -107, -107, -107, -107, 0, 0, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
        // State 149
        0, 0, -88, 0, 0, 0, 0, -88, 0, 0, -88, -88, 0, 0, -88, 0, 0, 0, -88, -88, -88, 0, 0, 0, -88, -88, 0, 0, 0, 0, 0, -88, -88, 0, 0, -88, -88,
        // State 150
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 0, 0, -126, 0, 0, 0, -126, 0, 0, 0,
        // State 151
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, -129, 0, 0, 0, -129, -129, -129, 0, 0, 0, -129, -129, 0, 0, 0, 0, 0, -129, -129, 0, 0, -129, -129,
        // State 152
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -109, 0, 0, 0, -109, 0, 0, 0, -109, -109, -109, 0, 0, 0, -109, -109, 0, 0, 0, 0, 0, -109, -109, 0, 0, -109, -109,
        // State 153
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 0, 59, 0, -153, 0, 0, 0, -153, -153, -153, 0, 0, 0, -153, -153, 0, 0, 0, 0, 0, -153, -153, 0, 0, -153, -153,
        // State 154
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, -51, 0, 0, -51, -51, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, -51, 0, 0, -51, 0, 0, -51, 0,
        // State 155
        0, -44, 0, 0, -44, 0, 0, -44, -44, -44, -44, -44, 0, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
        // State 156
        0, -48, 0, 0, -48, 0, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
        // State 157
        0, -46, 0, 0, -46, 0, 0, -46, -46, -46, -46, -46, 0, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
        // State 158
        0, -45, 0, 0, -45, 0, 0, -45, -45, -45, -45, -45, 0, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
        // State 159
        0, -47, 0, 0, -47, 0, 0, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
        // State 160
        0, 0, 0, 0, -26, 0, -26, -26, 0, 0, -26, -26, 0, -26, -26, 0, 0, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
        // State 161
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 162
        0, 0, 0, 0, -100, 0, 0, 0, 0, 0, -100, 0, 0, -100, -100, 0, 0, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
        // State 163
        0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 164
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, -39, 0, -39, 0, 0, 0, -39, -39, -39, 0, 0, 0, -39, -39, 0, 0, 0, 0, 0, -39, -39, 0, 0, -39, -39,
        // State 165
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, 65, 0, -35, 0, 0, 0, -35, -35, -35, 0, 0, 0, -35, -35, 0, 0, 0, 0, 0, -35, -35, 0, 0, -35, -35,
        // State 166
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, -36, 0, -36, 0, 0, 0, -36, -36, -36, 0, 0, 0, -36, -36, 0, 0, 0, 0, 0, -36, -36, 0, 0, -36, -36,
        // State 167
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, -60, -60, 0, 0, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
        // State 168
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, 0, 0, -102, 0, 0, 0, -102, -102, -102, 0, 0, 0, -102, -102, 0, 0, 0, 0, 0, -102, -102, 0, 0, -102, -102,
        // State 169
        0, 0, -86, 0, 0, 0, 0, -86, 0, 0, -86, -86, 0, 0, -86, 0, 0, 0, -86, -86, -86, 0, 0, 0, -86, -86, 0, 0, 0, 0, 0, -86, -86, 0, 0, -86, -86,
        // State 170
        0, 0, -87, 0, 0, 0, 0, -87, 0, 0, -87, -87, 0, 0, -87, 0, 0, 0, -87, -87, -87, 0, 0, 0, -87, -87, 0, 0, 0, 0, 0, -87, -87, 0, 0, -87, -87,
        // State 171
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, -121, 0, 0, 0, -121, 0, 0, 0,
        // State 172
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, -120, 0, 0, 0, -120, 0, 0, 0,
        // State 173
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, -122, 0, 0, 0, -122, 0, 0, 0,
        // State 174
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, 0, -108, 0, 0, 0, -108, -108, -108, 0, 0, 0, -108, -108, 0, 0, 0, 0, 0, -108, -108, 0, 0, -108, -108,
        // State 175
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, -157, 0, -157, 0, 0, 0, -157, -157, -157, 0, 0, 0, -157, -157, 0, 0, 0, 0, 0, -157, -157, 0, 0, -157, -157,
        // State 176
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, -50, 0, 0, -50, -50, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, -50, 0, 0, -50, 0, 0, -50, 0,
        // State 177
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, -52, 0, 0, -52, -52, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, -52, 0, 0, -52, 0, 0, -52, 0,
        // State 178
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, -53, 0, 0, 0, -53, -53, -53, 0, 0, 0, -53, -53, 0, 0, 0, 0, 0, -53, -53, 0, 0, -53, -53,
        // State 179
        0, 0, 0, 0, -10, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 0, -10, 0, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
        // State 180
        0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 181
        0, 0, 0, 0, -12, 0, -12, -12, 0, 0, -12, -12, 0, -12, -12, 0, 0, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
        // State 182
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 65, 0, -33, 0, 0, 0, -33, -33, -33, 0, 0, 0, -33, -33, 0, 0, 0, 0, 0, -33, -33, 0, 0, -33, -33,
        // State 183
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0, 65, 0, -34, 0, 0, 0, -34, -34, -34, 0, 0, 0, -34, -34, 0, 0, 0, 0, 0, -34, -34, 0, 0, -34, -34,
        // State 184
        0, 0, 0, 0, -101, 0, 0, 0, 0, 0, -101, 0, 0, -101, -101, 0, 0, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
        // State 185
        0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, -16, 0, 0, 0, 0, 0, 0,
        // State 186
        0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 187
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0, -38, 0, -38, 0, 0, 0, -38, -38, -38, 0, 0, 0, -38, -38, 0, 0, 0, 0, 0, -38, -38, 0, 0, -38, -38,
        // State 188
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, -91, 0, 0, 0, -91, -91, -91, 0, 0, 0, -91, -91, 0, 0, 0, 0, 0, -91, -91, 0, 0, -91, -91,
        // State 189
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, -61, -61, 0, 0, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
        // State 190
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, -62, 0, 0, 0, -62, -62, -62, 0, 0, 0, -62, -62, 0, 0, 0, 0, 0, -62, -62, 0, 0, -62, -62,
        // State 191
        0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 192
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155, 0, -155, 0, -155, 0, 0, 0, -155, -155, -155, 0, 0, 0, -155, -155, 0, 0, 0, 0, 0, -155, -155, 0, 0, -155, -155,
        // State 193
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -156, 0, -156, 0, -156, 0, 0, 0, -156, -156, -156, 0, 0, 0, -156, -156, 0, 0, 0, 0, 0, -156, -156, 0, 0, -156, -156,
        // State 194
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, -49, 0, 0, -49, -49, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, -49, 0, 0, -49, 0, 0, -49, 0,
        // State 195
        0, 0, 0, 0, -11, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, -11, 0, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
        // State 196
        0, 0, 0, 0, -13, 0, -13, -13, 0, 0, -13, -13, 0, -13, -13, 0, 0, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
        // State 197
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 65, 0, -32, 0, 0, 0, -32, -32, -32, 0, 0, 0, -32, -32, 0, 0, 0, 0, 0, -32, -32, 0, 0, -32, -32,
        // State 198
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0, -37, 0, -37, 0, 0, 0, -37, -37, -37, 0, 0, 0, -37, -37, 0, 0, 0, 0, 0, -37, -37, 0, 0, -37, -37,
        // State 199
        0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 200
        0, -172, 0, 0, -172, 0, 0, -172, -172, -172, -172, -172, 0, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
        // State 201
        0, 0, 0, 0, -7, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, -7, 0, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
        // State 202
        0, -164, 0, 0, -164, 0, 0, -164, -164, -164, -164, -164, 0, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
        // State 203
        0, -162, 0, 0, -162, 0, 0, -162, -162, -162, -162, -162, 0, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
        // State 204
        0, -161, 0, 0, -161, 0, 0, -161, -161, -161, -161, -161, 0, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
        // State 205
        0, -163, 0, 0, -163, 0, 0, -163, -163, -163, -163, -163, 0, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
        // State 206
        0, -166, 0, 0, -166, 0, 0, -166, -166, -166, -166, -166, 0, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
        // State 207
        0, -167, 0, 0, -167, 0, 0, -167, -167, -167, -167, -167, 0, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
        // State 208
        0, -165, 0, 0, -165, 0, 0, -165, -165, -165, -165, -165, 0, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
        // State 209
        -181, 0, 0, 0, -181, 0, -181, -181, 0, -181, -181, 0, 0, -181, -181, 0, 0, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
        // State 210
        -177, 0, 0, 0, -177, 0, -177, -177, 0, -177, -177, 0, 0, -177, -177, 0, 0, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
        // State 211
        -178, 0, 0, 0, -178, 0, -178, -178, 0, -178, -178, 0, 0, -178, -178, 0, 0, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
        // State 212
        0, 0, 0, 0, -99, 0, 0, 0, 0, 0, -99, 0, 0, -99, -99, 0, 0, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99,
        // State 213
        0, 0, 0, 0, -134, 0, -134, -134, 0, 0, -134, 0, 0, -134, -134, 0, 0, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
        // State 214
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, -59, -59, 0, 0, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
        // State 215
        0, -160, 0, 0, -160, 0, 0, -160, -160, -160, -160, -160, 0, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
        // State 216
        0, -175, 0, 0, 0, 0, 0, 0, -175, -175, 0, -175, 0, 0, -175, -175, -175, -175, -175, 0, 0, -175, 0, 0, -175, 0, 0, -175, 0, -175, 0, 0, -175, 0, -175, -175, 0,
        // State 217
        0, -168, 0, 0, -168, 0, 0, -168, -168, -168, -168, -168, 0, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
        // State 218
        0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        // State 219
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, -115, 0, 0, 0, -115, 0, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
        // State 220
        0, -170, 0, 0, -170, 0, 0, -170, -170, -170, -170, -170, 0, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
        // State 221
        -182, 0, 0, 0, -182, 0, -182, -182, 0, -182, -182, 0, 0, -182, -182, 0, 0, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
        // State 222
        0, 0, 0, 0, -97, 0, 0, 0, 0, 0, -97, 0, 0, -97, -97, 0, 0, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
        // State 223
        0, 0, 0, 0, -19, 0, 0, -19, 0, 0, -19, 0, 0, -19, -19, 0, 0, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
        // State 224
        0, 0, 0, 0, -98, 0, 0, 0, 0, 0, -98, 0, 0, -98, -98, 0, 0, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98,
        // State 225
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, -57, -57, 0, 0, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
        // State 226
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, -58, -58, 0, 0, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
        // State 227
        0, -176, 0, 0, 0, 0, 0, 0, -176, -176, 0, -176, 0, 0, -176, -176, -176, -176, -176, 0, 0, -176, 0, 0, -176, 0, 0, -176, 0, -176, 0, 0, -176, 0, -176, -176, 0,
        // State 228
        0, -169, 0, 0, -169, 0, 0, -169, -169, -169, -169, -169, 0, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
        // State 229
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, -116, 0, 0, 0, -116, 0, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
        // State 230
        0, -171, 0, 0, -171, 0, 0, -171, -171, -171, -171, -171, 0, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
        // State 231
        0, 0, 0, 0, -96, 0, 0, 0, 0, 0, -96, 0, 0, -96, -96, 0, 0, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96,
        // State 232
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, -56, -56, 0, 0, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
        // State 233
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, -112, 0, 0, 0, -112, 0, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
    ];
    fn __action(state: i16, integer: usize) -> i16 {
        __ACTION[(state as usize) * 37 + integer]
    }
    const __EOF_ACTION: &[i16] = &[
        // State 0
        0,
        // State 1
        -152,
        // State 2
        0,
        // State 3
        0,
        // State 4
        0,
        // State 5
        0,
        // State 6
        0,
        // State 7
        0,
        // State 8
        0,
        // State 9
        0,
        // State 10
        -40,
        // State 11
        0,
        // State 12
        -40,
        // State 13
        -40,
        // State 14
        -40,
        // State 15
        0,
        // State 16
        -40,
        // State 17
        -40,
        // State 18
        -41,
        // State 19
        -43,
        // State 20
        0,
        // State 21
        0,
        // State 22
        -95,
        // State 23
        -105,
        // State 24
        -40,
        // State 25
        0,
        // State 26
        0,
        // State 27
        -111,
        // State 28
        -40,
        // State 29
        -154,
        // State 30
        0,
        // State 31
        -27,
        // State 32
        0,
        // State 33
        0,
        // State 34
        0,
        // State 35
        0,
        // State 36
        0,
        // State 37
        -104,
        // State 38
        0,
        // State 39
        0,
        // State 40
        0,
        // State 41
        0,
        // State 42
        0,
        // State 43
        -110,
        // State 44
        0,
        // State 45
        0,
        // State 46
        0,
        // State 47
        0,
        // State 48
        0,
        // State 49
        0,
        // State 50
        0,
        // State 51
        0,
        // State 52
        0,
        // State 53
        0,
        // State 54
        0,
        // State 55
        0,
        // State 56
        0,
        // State 57
        0,
        // State 58
        0,
        // State 59
        0,
        // State 60
        0,
        // State 61
        0,
        // State 62
        0,
        // State 63
        0,
        // State 64
        0,
        // State 65
        0,
        // State 66
        0,
        // State 67
        0,
        // State 68
        0,
        // State 69
        0,
        // State 70
        0,
        // State 71
        0,
        // State 72
        0,
        // State 73
        0,
        // State 74
        0,
        // State 75
        0,
        // State 76
        0,
        // State 77
        0,
        // State 78
        0,
        // State 79
        0,
        // State 80
        0,
        // State 81
        0,
        // State 82
        0,
        // State 83
        0,
        // State 84
        0,
        // State 85
        0,
        // State 86
        0,
        // State 87
        0,
        // State 88
        0,
        // State 89
        0,
        // State 90
        -24,
        // State 91
        -151,
        // State 92
        -142,
        // State 93
        -143,
        // State 94
        -140,
        // State 95
        -139,
        // State 96
        -138,
        // State 97
        -137,
        // State 98
        -23,
        // State 99
        -183,
        // State 100
        -141,
        // State 101
        0,
        // State 102
        0,
        // State 103
        0,
        // State 104
        0,
        // State 105
        -25,
        // State 106
        -22,
        // State 107
        -106,
        // State 108
        -77,
        // State 109
        -65,
        // State 110
        -81,
        // State 111
        -80,
        // State 112
        -73,
        // State 113
        -84,
        // State 114
        -75,
        // State 115
        -71,
        // State 116
        -76,
        // State 117
        -68,
        // State 118
        -74,
        // State 119
        -83,
        // State 120
        -67,
        // State 121
        -82,
        // State 122
        -79,
        // State 123
        -66,
        // State 124
        -69,
        // State 125
        -72,
        // State 126
        -70,
        // State 127
        -78,
        // State 128
        -149,
        // State 129
        -150,
        // State 130
        -147,
        // State 131
        -146,
        // State 132
        -145,
        // State 133
        -144,
        // State 134
        -148,
        // State 135
        -30,
        // State 136
        -127,
        // State 137
        0,
        // State 138
        -128,
        // State 139
        0,
        // State 140
        0,
        // State 141
        0,
        // State 142
        -31,
        // State 143
        -42,
        // State 144
        0,
        // State 145
        0,
        // State 146
        -94,
        // State 147
        -103,
        // State 148
        -107,
        // State 149
        -88,
        // State 150
        0,
        // State 151
        -129,
        // State 152
        -109,
        // State 153
        -153,
        // State 154
        0,
        // State 155
        0,
        // State 156
        0,
        // State 157
        0,
        // State 158
        0,
        // State 159
        0,
        // State 160
        -26,
        // State 161
        0,
        // State 162
        0,
        // State 163
        0,
        // State 164
        -39,
        // State 165
        -35,
        // State 166
        -36,
        // State 167
        0,
        // State 168
        -102,
        // State 169
        -86,
        // State 170
        -87,
        // State 171
        0,
        // State 172
        0,
        // State 173
        0,
        // State 174
        -108,
        // State 175
        -157,
        // State 176
        0,
        // State 177
        0,
        // State 178
        -53,
        // State 179
        0,
        // State 180
        0,
        // State 181
        -12,
        // State 182
        -33,
        // State 183
        -34,
        // State 184
        0,
        // State 185
        0,
        // State 186
        0,
        // State 187
        -38,
        // State 188
        -91,
        // State 189
        0,
        // State 190
        -62,
        // State 191
        0,
        // State 192
        -155,
        // State 193
        -156,
        // State 194
        0,
        // State 195
        0,
        // State 196
        -13,
        // State 197
        -32,
        // State 198
        -37,
        // State 199
        0,
        // State 200
        0,
        // State 201
        0,
        // State 202
        0,
        // State 203
        0,
        // State 204
        0,
        // State 205
        0,
        // State 206
        0,
        // State 207
        0,
        // State 208
        0,
        // State 209
        0,
        // State 210
        0,
        // State 211
        0,
        // State 212
        0,
        // State 213
        0,
        // State 214
        0,
        // State 215
        0,
        // State 216
        0,
        // State 217
        0,
        // State 218
        0,
        // State 219
        0,
        // State 220
        0,
        // State 221
        0,
        // State 222
        0,
        // State 223
        0,
        // State 224
        0,
        // State 225
        0,
        // State 226
        0,
        // State 227
        0,
        // State 228
        0,
        // State 229
        0,
        // State 230
        0,
        // State 231
        0,
        // State 232
        0,
        // State 233
        0,
    ];
    fn __goto(state: i16, nt: usize) -> i16 {
        match nt {
            4 => match state {
                61 => 195,
                _ => 179,
            },
            6 => 61,
            7 => 160,
            9 => match state {
                56 => 191,
                66 => 199,
                _ => 32,
            },
            11 => match state {
                81 => 87,
                _ => 79,
            },
            13 => match state {
                1 => 105,
                _ => 90,
            },
            14 => 1,
            15 => match state {
                18 => 142,
                _ => 135,
            },
            17 => 18,
            18 => 91,
            19 => match state {
                53 => 187,
                64 => 198,
                _ => 164,
            },
            20 => match state {
                49 => 182,
                50 => 183,
                62 => 197,
                _ => 165,
            },
            21 => match state {
                12 => 22,
                13 => 23,
                16 => 27,
                17 => 29,
                24 => 37,
                28 => 43,
                14 => 136,
                45 => 176,
                60 => 194,
                69 => 212,
                73 => 214,
                79 => 222,
                81 => 224,
                82 => 225,
                84 => 226,
                87 => 231,
                88 => 232,
                _ => 19,
            },
            22 => match state {
                4 => 128,
                _ => 92,
            },
            23 => match state {
                30 | 46 => 45,
                47 => 60,
                _ => 200,
            },
            24 => match state {
                46 => 177,
                _ => 154,
            },
            25 => 46,
            26 => 143,
            28 => match state {
                55 => 189,
                _ => 167,
            },
            29 => 55,
            30 => match state {
                27 => 152,
                37 => 168,
                43 => 174,
                _ => 147,
            },
            32 => match state {
                25 | 38..=42 | 44 | 58..=59 | 63 | 65 | 70..=72 | 74 | 83 => 148,
                34 | 49..=50 | 53 | 62 | 64 => 166,
                _ => 107,
            },
            34 => match state {
                16 => 28,
                _ => 24,
            },
            36 => 146,
            38 => match state {
                4 => 129,
                _ => 93,
            },
            39 => match state {
                51 | 54 => 184,
                _ => 162,
            },
            40 => match state {
                35 => 54,
                _ => 51,
            },
            41 => match state {
                4 => 130,
                _ => 94,
            },
            42 => match state {
                3 => 10,
                5 => 12,
                6 => 13,
                7 => 14,
                8 => 16,
                9 => 17,
                11 => 21,
                20 => 31,
                36 | 55 => 56,
                57 => 66,
                48 | 61 => 180,
                52 => 186,
                75 => 215,
                77 | 86 => 218,
                _ => 163,
            },
            43 => match state {
                25 => 149,
                38 => 169,
                39 => 170,
                40 => 171,
                41 => 172,
                42 => 173,
                44 => 175,
                58 => 192,
                59 => 193,
                _ => 68,
            },
            44 => match state {
                4 => 131,
                _ => 95,
            },
            45 => match state {
                86 => 229,
                _ => 219,
            },
            47 => 86,
            48 => match state {
                32 => 161,
                _ => 144,
            },
            50 => match state {
                26 => 150,
                _ => 137,
            },
            52 => 26,
            53 => match state {
                4 => 132,
                _ => 96,
            },
            54 => match state {
                4 => 133,
                _ => 97,
            },
            55 => match state {
                0..=1 => 2,
                30 | 46 => 47,
                36 | 55 => 57,
                _ => 52,
            },
            57 => match state {
                65 => 73,
                71 => 81,
                72 => 82,
                74 => 84,
                83 => 88,
                70 => 213,
                _ => 69,
            },
            58 => match state {
                2 => 106,
                _ => 98,
            },
            59 => 99,
            60 => match state {
                4 => 134,
                _ => 100,
            },
            61 => 153,
            63 => match state {
                76 => 216,
                80 => 223,
                85 => 227,
                89 => 233,
                _ => 201,
            },
            65 => 85,
            66 => match state {
                78 => 221,
                _ => 209,
            },
            68 => 78,
            _ => 0,
        }
    }
    const __TERMINAL: &[&str] = &[
        r###""!""###,
        r###""$""###,
        r###""&""###,
        r###""(""###,
        r###"")""###,
        r###"":""###,
        r###""=""###,
        r###""@""###,
        r###""[""###,
        r###""]""###,
        r###""enum""###,
        r###""{""###,
        r###""|""###,
        r###""}""###,
        r###"BlockStringLiteral"###,
        r###"FloatLiteral"###,
        r###"IntegerLiteral"###,
        r###"RawIdent"###,
        r###"StringLiteral"###,
        r###"directive"###,
        r###"extend"###,
        r###"false"###,
        r###"fragment"###,
        r###"implements"###,
        r###"input"###,
        r###"interface"###,
        r###"mutation"###,
        r###"null"###,
        r###"on"###,
        r###"query"###,
        r###"repeatable"###,
        r###"scalar"###,
        r###"schema"###,
        r###"subscription"###,
        r###"true"###,
        r###"ty"###,
        r###"union"###,
    ];
    fn __expected_tokens(__state: i16) -> alloc::vec::Vec<alloc::string::String> {
        __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
            let next_state = __action(__state, index);
            if next_state == 0 {
                None
            } else {
                Some(alloc::string::ToString::to_string(terminal))
            }
        }).collect()
    }
    fn __expected_tokens_from_states<
        'input,
        '__1,
    >(
        __states: &[i16],
        _: core::marker::PhantomData<(&'input ())>,
    ) -> alloc::vec::Vec<alloc::string::String>
    {
        __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
            if __accepts(None, __states, Some(index), core::marker::PhantomData::<(&())>) {
                Some(alloc::string::ToString::to_string(terminal))
            } else {
                None
            }
        }).collect()
    }
    pub(crate) struct __StateMachine<'input, '__1>
    where
    {
        input: &'input str,
        ast: &'__1 mut TypeSystemAstWriter,
        __phantom: core::marker::PhantomData<(&'input ())>,
    }
    impl<'input, '__1> __state_machine::ParserDefinition for __StateMachine<'input, '__1>
    where
    {
        type Location = usize;
        type Error = crate::parser::AdditionalErrors;
        type Token = lexer::Token<'input>;
        type TokenIndex = usize;
        type Symbol = __Symbol<'input>;
        type Success = ();
        type StateIndex = i16;
        type Action = i16;
        type ReduceIndex = i16;
        type NonterminalIndex = usize;

        #[inline]
        fn start_location(&self) -> Self::Location {
              Default::default()
        }

        #[inline]
        fn start_state(&self) -> Self::StateIndex {
              0
        }

        #[inline]
        fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
            __token_to_integer(token, core::marker::PhantomData::<(&())>)
        }

        #[inline]
        fn action(&self, state: i16, integer: usize) -> i16 {
            __action(state, integer)
        }

        #[inline]
        fn error_action(&self, state: i16) -> i16 {
            __action(state, 37 - 1)
        }

        #[inline]
        fn eof_action(&self, state: i16) -> i16 {
            __EOF_ACTION[state as usize]
        }

        #[inline]
        fn goto(&self, state: i16, nt: usize) -> i16 {
            __goto(state, nt)
        }

        fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
            __token_to_symbol(token_index, token, core::marker::PhantomData::<(&())>)
        }

        fn expected_tokens(&self, state: i16) -> alloc::vec::Vec<alloc::string::String> {
            __expected_tokens(state)
        }

        fn expected_tokens_from_states(&self, states: &[i16]) -> alloc::vec::Vec<alloc::string::String> {
            __expected_tokens_from_states(states, core::marker::PhantomData::<(&())>)
        }

        #[inline]
        fn uses_error_recovery(&self) -> bool {
            false
        }

        #[inline]
        fn error_recovery_symbol(
            &self,
            recovery: __state_machine::ErrorRecovery<Self>,
        ) -> Self::Symbol {
            panic!("error recovery not enabled for this grammar")
        }

        fn reduce(
            &mut self,
            action: i16,
            start_location: Option<&Self::Location>,
            states: &mut alloc::vec::Vec<i16>,
            symbols: &mut alloc::vec::Vec<__state_machine::SymbolTriple<Self>>,
        ) -> Option<__state_machine::ParseResult<Self>> {
            __reduce(
                self.input,
                self.ast,
                action,
                start_location,
                states,
                symbols,
                core::marker::PhantomData::<(&())>,
            )
        }

        fn simulate_reduce(&self, action: i16) -> __state_machine::SimulatedReduce<Self> {
            __simulate_reduce(action, core::marker::PhantomData::<(&())>)
        }
    }
    fn __token_to_integer<
        'input,
    >(
        __token: &lexer::Token<'input>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> Option<usize>
    {
        match *__token {
            lexer::Token::Exclamation if true => Some(0),
            lexer::Token::Dollar if true => Some(1),
            lexer::Token::Ampersand if true => Some(2),
            lexer::Token::OpenParen if true => Some(3),
            lexer::Token::CloseParen if true => Some(4),
            lexer::Token::Colon if true => Some(5),
            lexer::Token::Equals if true => Some(6),
            lexer::Token::At if true => Some(7),
            lexer::Token::OpenBracket if true => Some(8),
            lexer::Token::CloseBracket if true => Some(9),
            lexer::Token::Enum if true => Some(10),
            lexer::Token::OpenBrace if true => Some(11),
            lexer::Token::Pipe if true => Some(12),
            lexer::Token::CloseBrace if true => Some(13),
            lexer::Token::BlockStringLiteral(_) if true => Some(14),
            lexer::Token::FloatLiteral(_) if true => Some(15),
            lexer::Token::IntegerLiteral(_) if true => Some(16),
            lexer::Token::Identifier(_) if true => Some(17),
            lexer::Token::StringLiteral(_) if true => Some(18),
            lexer::Token::Directive if true => Some(19),
            lexer::Token::Extend if true => Some(20),
            lexer::Token::False if true => Some(21),
            lexer::Token::Fragment if true => Some(22),
            lexer::Token::Implements if true => Some(23),
            lexer::Token::Input if true => Some(24),
            lexer::Token::Interface if true => Some(25),
            lexer::Token::Mutation if true => Some(26),
            lexer::Token::Null if true => Some(27),
            lexer::Token::On if true => Some(28),
            lexer::Token::Query if true => Some(29),
            lexer::Token::Repeatable if true => Some(30),
            lexer::Token::Scalar if true => Some(31),
            lexer::Token::Schema if true => Some(32),
            lexer::Token::Subscription if true => Some(33),
            lexer::Token::True if true => Some(34),
            lexer::Token::Type if true => Some(35),
            lexer::Token::Union if true => Some(36),
            _ => None,
        }
    }
    fn __token_to_symbol<
        'input,
    >(
        __token_index: usize,
        __token: lexer::Token<'input>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> __Symbol<'input>
    {
        match __token_index {
            0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 => __Symbol::Variant0(__token),
            14 | 15 | 16 | 17 | 18 => match __token {
                lexer::Token::BlockStringLiteral(__tok0) | lexer::Token::FloatLiteral(__tok0) | lexer::Token::IntegerLiteral(__tok0) | lexer::Token::Identifier(__tok0) | lexer::Token::StringLiteral(__tok0) if true => __Symbol::Variant1(__tok0),
                _ => unreachable!(),
            },
            _ => unreachable!(),
        }
    }
    fn __simulate_reduce<
        'input,
        '__1,
    >(
        __reduce_index: i16,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> __state_machine::SimulatedReduce<__StateMachine<'input, '__1>>
    {
        match __reduce_index {
            0 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 0,
                }
            }
            1 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 0,
                }
            }
            2 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 1,
                }
            }
            3 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 1,
                }
            }
            4 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 2,
                }
            }
            5 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 3,
                }
            }
            6 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 4,
                }
            }
            7 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 5,
                }
            }
            8 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 5,
                }
            }
            9 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 6,
                }
            }
            10 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 6,
                }
            }
            11 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 7,
                }
            }
            12 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 7,
                }
            }
            13 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 8,
                }
            }
            14 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 8,
                }
            }
            15 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 9,
                }
            }
            16 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 10,
                }
            }
            17 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 10,
                }
            }
            18 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 11,
                }
            }
            19 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 12,
                }
            }
            20 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 12,
                }
            }
            21 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 13,
                }
            }
            22 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 13,
                }
            }
            23 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 14,
                }
            }
            24 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 14,
                }
            }
            25 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 15,
                }
            }
            26 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 15,
                }
            }
            27 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 16,
                }
            }
            28 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 16,
                }
            }
            29 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 17,
                }
            }
            30 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 17,
                }
            }
            31 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 7,
                    nonterminal_produced: 18,
                }
            }
            32 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 6,
                    nonterminal_produced: 18,
                }
            }
            33 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 6,
                    nonterminal_produced: 18,
                }
            }
            34 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 18,
                }
            }
            35 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 19,
                }
            }
            36 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 20,
                }
            }
            37 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 20,
                }
            }
            38 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 20,
                }
            }
            39 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 21,
                }
            }
            40 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 21,
                }
            }
            41 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 22,
                }
            }
            42 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 22,
                }
            }
            43 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 23,
                }
            }
            44 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 23,
                }
            }
            45 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 23,
                }
            }
            46 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 23,
                }
            }
            47 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 23,
                }
            }
            48 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 24,
                }
            }
            49 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 24,
                }
            }
            50 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 25,
                }
            }
            51 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 25,
                }
            }
            52 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 26,
                }
            }
            53 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 27,
                }
            }
            54 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 27,
                }
            }
            55 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 6,
                    nonterminal_produced: 28,
                }
            }
            56 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 28,
                }
            }
            57 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 28,
                }
            }
            58 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 28,
                }
            }
            59 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 29,
                }
            }
            60 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 29,
                }
            }
            61 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 30,
                }
            }
            62 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 31,
                }
            }
            63 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 31,
                }
            }
            64 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            65 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            66 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            67 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            68 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            69 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            70 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            71 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            72 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            73 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            74 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            75 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            76 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            77 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            78 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            79 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            80 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            81 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            82 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            83 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 32,
                }
            }
            84 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 33,
                }
            }
            85 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 34,
                }
            }
            86 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 34,
                }
            }
            87 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 34,
                }
            }
            88 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 35,
                }
            }
            89 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 35,
                }
            }
            90 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 36,
                }
            }
            91 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 37,
                }
            }
            92 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 37,
                }
            }
            93 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 38,
                }
            }
            94 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 38,
                }
            }
            95 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 6,
                    nonterminal_produced: 39,
                }
            }
            96 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 39,
                }
            }
            97 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 39,
                }
            }
            98 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 39,
                }
            }
            99 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 40,
                }
            }
            100 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 40,
                }
            }
            101 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 41,
                }
            }
            102 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 41,
                }
            }
            103 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 41,
                }
            }
            104 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 41,
                }
            }
            105 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 42,
                }
            }
            106 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 43,
                }
            }
            107 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 5,
                    nonterminal_produced: 44,
                }
            }
            108 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 44,
                }
            }
            109 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 44,
                }
            }
            110 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 44,
                }
            }
            111 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 45,
                }
            }
            112 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 46,
                }
            }
            113 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 46,
                }
            }
            114 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 47,
                }
            }
            115 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 47,
                }
            }
            116 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 48,
                }
            }
            117 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 49,
                }
            }
            118 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 49,
                }
            }
            119 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 50,
                }
            }
            120 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 50,
                }
            }
            121 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 50,
                }
            }
            122 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 51,
                }
            }
            123 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 51,
                }
            }
            124 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 52,
                }
            }
            125 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 52,
                }
            }
            126 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 53,
                }
            }
            127 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 54,
                }
            }
            128 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 54,
                }
            }
            129 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 55,
                }
            }
            130 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 55,
                }
            }
            131 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 56,
                }
            }
            132 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 56,
                }
            }
            133 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 57,
                }
            }
            134 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 57,
                }
            }
            135 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 57,
                }
            }
            136 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            137 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            138 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            139 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            140 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            141 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            142 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            143 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            144 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            145 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            146 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            147 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            148 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            149 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 58,
                }
            }
            150 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 58,
                }
            }
            151 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 59,
                }
            }
            152 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 4,
                    nonterminal_produced: 60,
                }
            }
            153 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 60,
                }
            }
            154 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 61,
                }
            }
            155 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 61,
                }
            }
            156 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 61,
                }
            }
            157 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 62,
                }
            }
            158 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 62,
                }
            }
            159 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 63,
                }
            }
            160 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            161 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            162 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            163 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            164 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            165 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            166 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            167 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 63,
                }
            }
            168 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 63,
                }
            }
            169 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 63,
                }
            }
            170 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 3,
                    nonterminal_produced: 63,
                }
            }
            171 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 63,
                }
            }
            172 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 64,
                }
            }
            173 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 64,
                }
            }
            174 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 65,
                }
            }
            175 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 65,
                }
            }
            176 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 66,
                }
            }
            177 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 66,
                }
            }
            178 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 0,
                    nonterminal_produced: 67,
                }
            }
            179 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 67,
                }
            }
            180 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 1,
                    nonterminal_produced: 68,
                }
            }
            181 => {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop: 2,
                    nonterminal_produced: 68,
                }
            }
            182 => __state_machine::SimulatedReduce::Accept,
            _ => panic!("invalid reduction index {}", __reduce_index)
        }
    }
    pub struct TypeSystemDocumentParser {
        _priv: (),
    }

    impl TypeSystemDocumentParser {
        pub fn new() -> TypeSystemDocumentParser {
            TypeSystemDocumentParser {
                _priv: (),
            }
        }

        #[allow(dead_code)]
        pub fn parse<
            'input,
            __TOKEN: __ToTriple<'input, >,
            __TOKENS: IntoIterator<Item=__TOKEN>,
        >(
            &self,
            input: &'input str,
            ast: &mut TypeSystemAstWriter,
            __tokens0: __TOKENS,
        ) -> Result<(), __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>>
        {
            let __tokens = __tokens0.into_iter();
            let mut __tokens = __tokens.map(|t| __ToTriple::to_triple(t));
            __state_machine::Parser::drive(
                __StateMachine {
                    input,
                    ast,
                    __phantom: core::marker::PhantomData::<(&())>,
                },
                __tokens,
            )
        }
    }
    fn __accepts<
        'input,
        '__1,
    >(
        __error_state: Option<i16>,
        __states: &[i16],
        __opt_integer: Option<usize>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> bool
    {
        let mut __states = __states.to_vec();
        __states.extend(__error_state);
        loop {
            let mut __states_len = __states.len();
            let __top = __states[__states_len - 1];
            let __action = match __opt_integer {
                None => __EOF_ACTION[__top as usize],
                Some(__integer) => __action(__top, __integer),
            };
            if __action == 0 { return false; }
            if __action > 0 { return true; }
            let (__to_pop, __nt) = match __simulate_reduce(-(__action + 1), core::marker::PhantomData::<(&())>) {
                __state_machine::SimulatedReduce::Reduce {
                    states_to_pop, nonterminal_produced
                } => (states_to_pop, nonterminal_produced),
                __state_machine::SimulatedReduce::Accept => return true,
            };
            __states_len -= __to_pop;
            __states.truncate(__states_len);
            let __top = __states[__states_len - 1];
            let __next_state = __goto(__top, __nt);
            __states.push(__next_state);
        }
    }
    pub(crate) fn __reduce<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __action: i16,
        __lookahead_start: Option<&usize>,
        __states: &mut alloc::vec::Vec<i16>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> Option<Result<(),__lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>>>
    {
        let (__pop_states, __nonterminal) = match __action {
            0 => {
                __reduce0(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            1 => {
                __reduce1(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            2 => {
                __reduce2(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            3 => {
                __reduce3(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            4 => {
                __reduce4(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            5 => {
                __reduce5(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            6 => {
                __reduce6(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            7 => {
                __reduce7(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            8 => {
                __reduce8(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            9 => {
                __reduce9(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            10 => {
                __reduce10(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            11 => {
                __reduce11(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            12 => {
                __reduce12(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            13 => {
                __reduce13(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            14 => {
                __reduce14(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            15 => {
                __reduce15(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            16 => {
                __reduce16(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            17 => {
                __reduce17(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            18 => {
                __reduce18(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            19 => {
                __reduce19(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            20 => {
                __reduce20(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            21 => {
                __reduce21(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            22 => {
                __reduce22(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            23 => {
                __reduce23(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            24 => {
                __reduce24(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            25 => {
                __reduce25(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            26 => {
                __reduce26(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            27 => {
                __reduce27(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            28 => {
                __reduce28(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            29 => {
                __reduce29(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            30 => {
                __reduce30(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            31 => {
                __reduce31(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            32 => {
                __reduce32(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            33 => {
                __reduce33(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            34 => {
                __reduce34(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            35 => {
                __reduce35(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            36 => {
                __reduce36(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            37 => {
                __reduce37(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            38 => {
                __reduce38(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            39 => {
                __reduce39(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            40 => {
                __reduce40(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            41 => {
                __reduce41(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            42 => {
                __reduce42(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            43 => {
                __reduce43(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            44 => {
                __reduce44(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            45 => {
                __reduce45(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            46 => {
                __reduce46(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            47 => {
                __reduce47(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            48 => {
                __reduce48(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            49 => {
                __reduce49(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            50 => {
                __reduce50(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            51 => {
                __reduce51(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            52 => {
                __reduce52(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            53 => {
                __reduce53(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            54 => {
                __reduce54(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            55 => {
                __reduce55(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            56 => {
                __reduce56(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            57 => {
                __reduce57(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            58 => {
                __reduce58(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            59 => {
                __reduce59(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            60 => {
                __reduce60(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            61 => {
                __reduce61(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            62 => {
                __reduce62(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            63 => {
                __reduce63(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            64 => {
                __reduce64(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            65 => {
                __reduce65(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            66 => {
                __reduce66(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            67 => {
                __reduce67(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            68 => {
                __reduce68(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            69 => {
                __reduce69(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            70 => {
                __reduce70(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            71 => {
                __reduce71(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            72 => {
                __reduce72(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            73 => {
                __reduce73(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            74 => {
                __reduce74(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            75 => {
                __reduce75(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            76 => {
                __reduce76(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            77 => {
                __reduce77(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            78 => {
                __reduce78(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            79 => {
                __reduce79(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            80 => {
                __reduce80(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            81 => {
                __reduce81(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            82 => {
                __reduce82(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            83 => {
                __reduce83(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            84 => {
                __reduce84(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            85 => {
                __reduce85(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            86 => {
                __reduce86(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            87 => {
                __reduce87(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            88 => {
                __reduce88(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            89 => {
                __reduce89(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            90 => {
                __reduce90(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            91 => {
                __reduce91(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            92 => {
                __reduce92(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            93 => {
                __reduce93(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            94 => {
                __reduce94(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            95 => {
                __reduce95(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            96 => {
                __reduce96(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            97 => {
                __reduce97(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            98 => {
                __reduce98(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            99 => {
                __reduce99(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            100 => {
                __reduce100(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            101 => {
                __reduce101(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            102 => {
                __reduce102(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            103 => {
                __reduce103(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            104 => {
                __reduce104(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            105 => {
                __reduce105(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            106 => {
                __reduce106(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            107 => {
                __reduce107(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            108 => {
                __reduce108(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            109 => {
                __reduce109(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            110 => {
                __reduce110(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            111 => {
                __reduce111(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            112 => {
                __reduce112(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            113 => {
                __reduce113(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            114 => {
                __reduce114(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            115 => {
                __reduce115(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            116 => {
                __reduce116(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            117 => {
                __reduce117(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            118 => {
                __reduce118(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            119 => {
                __reduce119(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            120 => {
                __reduce120(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            121 => {
                __reduce121(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            122 => {
                __reduce122(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            123 => {
                __reduce123(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            124 => {
                __reduce124(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            125 => {
                __reduce125(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            126 => {
                __reduce126(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            127 => {
                __reduce127(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            128 => {
                __reduce128(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            129 => {
                // StringValue = StringLiteral => ActionFn(168);
                let __sym0 = __pop_Variant1(__symbols);
                let __start = __sym0.0;
                let __end = __sym0.2;
                let __nt = match super::__action168::<>(input, ast, __sym0) {
                    Ok(v) => v,
                    Err(e) => return Some(Err(e)),
                };
                __symbols.push((__start, __Symbol::Variant37(__nt), __end));
                (1, 55)
            }
            130 => {
                __reduce130(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            131 => {
                __reduce131(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            132 => {
                __reduce132(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            133 => {
                __reduce133(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            134 => {
                __reduce134(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            135 => {
                __reduce135(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            136 => {
                __reduce136(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            137 => {
                __reduce137(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            138 => {
                __reduce138(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            139 => {
                __reduce139(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            140 => {
                __reduce140(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            141 => {
                __reduce141(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            142 => {
                __reduce142(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            143 => {
                __reduce143(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            144 => {
                __reduce144(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            145 => {
                __reduce145(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            146 => {
                __reduce146(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            147 => {
                __reduce147(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            148 => {
                __reduce148(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            149 => {
                __reduce149(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            150 => {
                __reduce150(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            151 => {
                __reduce151(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            152 => {
                __reduce152(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            153 => {
                __reduce153(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            154 => {
                __reduce154(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            155 => {
                __reduce155(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            156 => {
                __reduce156(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            157 => {
                __reduce157(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            158 => {
                __reduce158(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            159 => {
                __reduce159(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            160 => {
                __reduce160(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            161 => {
                __reduce161(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            162 => {
                // Value = StringLiteral => ActionFn(170);
                let __sym0 = __pop_Variant1(__symbols);
                let __start = __sym0.0;
                let __end = __sym0.2;
                let __nt = match super::__action170::<>(input, ast, __sym0) {
                    Ok(v) => v,
                    Err(e) => return Some(Err(e)),
                };
                __symbols.push((__start, __Symbol::Variant10(__nt), __end));
                (1, 63)
            }
            163 => {
                __reduce163(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            164 => {
                __reduce164(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            165 => {
                __reduce165(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            166 => {
                __reduce166(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            167 => {
                __reduce167(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            168 => {
                __reduce168(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            169 => {
                __reduce169(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            170 => {
                __reduce170(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            171 => {
                __reduce171(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            172 => {
                __reduce172(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            173 => {
                __reduce173(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            174 => {
                __reduce174(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            175 => {
                __reduce175(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            176 => {
                __reduce176(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            177 => {
                __reduce177(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            178 => {
                __reduce178(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            179 => {
                __reduce179(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            180 => {
                __reduce180(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            181 => {
                __reduce181(input, ast, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
            }
            182 => {
                // __TypeSystemDocument = TypeSystemDocument => ActionFn(0);
                let __sym0 = __pop_Variant12(__symbols);
                let __start = __sym0.0;
                let __end = __sym0.2;
                let __nt = super::__action0::<>(input, ast, __sym0);
                return Some(Ok(__nt));
            }
            _ => panic!("invalid action code {}", __action)
        };
        let __states_len = __states.len();
        __states.truncate(__states_len - __pop_states);
        let __state = *__states.last().unwrap();
        let __next_state = __goto(__state, __nonterminal);
        __states.push(__next_state);
        None
    }
    #[inline(never)]
    fn __symbol_type_mismatch() -> ! {
        panic!("symbol type mismatch")
    }
    fn __pop_Variant12<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, (), usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant29<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, (StringId, ValueId), usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant29(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant4<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, ArgumentId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant40<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, DefinitionId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant40(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant14<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, DirectiveDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant15<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, DirectiveLocation, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant18<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, EnumDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant18(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant20<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, EnumValueDefinitionId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant20(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant17<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, IdRange<DirectiveId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant17(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant26<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, InputObjectDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant26(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant27<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, InterfaceDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant27(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant28<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, ObjectDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant28(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant33<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, RootOperationTypeDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant33(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant35<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, ScalarDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant35(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant36<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, SchemaDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant36(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant19<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, StringId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant19(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant37<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, StringLiteralId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant37(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant39<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, TypeId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant39(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant41<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, UnionDefinitionRecord, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant41(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant10<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, ValueId, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant8<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, Vec<()>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant6<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, Vec<ArgumentId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant16<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, Vec<DirectiveLocation>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant22<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, Vec<EnumValueDefinitionId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant22(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant24<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, Vec<StringId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant24(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant43<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, WrappingType, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant43(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant13<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<()>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant30<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<(StringId, ValueId)>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant30(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant5<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<ArgumentId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant21<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<EnumValueDefinitionId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant21(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant34<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<RootOperationTypeDefinitionRecord>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant34(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant42<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<ValueId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant42(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant44<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, alloc::vec::Vec<WrappingType>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant44(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant31<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, bool, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant31(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant38<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<StringLiteralId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant38(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant11<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<ValueId>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant9<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<Vec<()>>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant7<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<Vec<ArgumentId>>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant23<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<Vec<EnumValueDefinitionId>>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant23(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant25<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<Vec<StringId>>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant25(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant32<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<bool>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant32(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant2<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, core::option::Option<lexer::Token<'input>>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant0<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, lexer::Token<'input>, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant3<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, usize, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    fn __pop_Variant1<
      'input,
    >(
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
    ) -> (usize, &'input str, usize)
     {
        match __symbols.pop() {
            Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
            _ => __symbol_type_mismatch()
        }
    }
    pub(crate) fn __reduce0<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // "&"? = "&" => ActionFn(127);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action127::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant2(__nt), __end));
        (1, 0)
    }
    pub(crate) fn __reduce1<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // "&"? =  => ActionFn(128);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action128::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant2(__nt), __end));
        (0, 0)
    }
    pub(crate) fn __reduce2<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // "|"? = "|" => ActionFn(117);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action117::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant2(__nt), __end));
        (1, 1)
    }
    pub(crate) fn __reduce3<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // "|"? =  => ActionFn(118);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action118::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant2(__nt), __end));
        (0, 1)
    }
    pub(crate) fn __reduce4<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // @L =  => ActionFn(134);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action134::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant3(__nt), __end));
        (0, 2)
    }
    pub(crate) fn __reduce5<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // @R =  => ActionFn(133);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action133::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant3(__nt), __end));
        (0, 3)
    }
    pub(crate) fn __reduce6<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Argument = Name, ":", Value => ActionFn(74);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant10(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action74::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant4(__nt), __end));
        (3, 4)
    }
    pub(crate) fn __reduce7<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Argument* =  => ActionFn(95);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action95::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant5(__nt), __end));
        (0, 5)
    }
    pub(crate) fn __reduce8<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Argument* = Argument+ => ActionFn(96);
        let __sym0 = __pop_Variant5(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action96::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant5(__nt), __end));
        (1, 5)
    }
    pub(crate) fn __reduce9<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Argument+ = Argument => ActionFn(151);
        let __sym0 = __pop_Variant4(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action151::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant5(__nt), __end));
        (1, 6)
    }
    pub(crate) fn __reduce10<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Argument+ = Argument+, Argument => ActionFn(152);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant4(__symbols);
        let __sym0 = __pop_Variant5(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action152::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant5(__nt), __end));
        (2, 6)
    }
    pub(crate) fn __reduce11<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Arguments = "(", ")" => ActionFn(181);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action181::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant6(__nt), __end));
        (2, 7)
    }
    pub(crate) fn __reduce12<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Arguments = "(", Argument+, ")" => ActionFn(182);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant5(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action182::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant6(__nt), __end));
        (3, 7)
    }
    pub(crate) fn __reduce13<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Arguments? = Arguments => ActionFn(97);
        let __sym0 = __pop_Variant6(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action97::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant7(__nt), __end));
        (1, 8)
    }
    pub(crate) fn __reduce14<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Arguments? =  => ActionFn(98);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action98::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant7(__nt), __end));
        (0, 8)
    }
    pub(crate) fn __reduce15<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ArgumentsDefinition = "(", InputValueDefinition+, ")" => ActionFn(29);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant13(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action29::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant8(__nt), __end));
        (3, 9)
    }
    pub(crate) fn __reduce16<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ArgumentsDefinition? = ArgumentsDefinition => ActionFn(123);
        let __sym0 = __pop_Variant8(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action123::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant9(__nt), __end));
        (1, 10)
    }
    pub(crate) fn __reduce17<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ArgumentsDefinition? =  => ActionFn(124);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action124::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant9(__nt), __end));
        (0, 10)
    }
    pub(crate) fn __reduce18<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefaultValue = "=", Value => ActionFn(45);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant10(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action45::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (2, 11)
    }
    pub(crate) fn __reduce19<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefaultValue? = DefaultValue => ActionFn(107);
        let __sym0 = __pop_Variant10(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action107::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant11(__nt), __end));
        (1, 12)
    }
    pub(crate) fn __reduce20<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefaultValue? =  => ActionFn(108);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action108::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant11(__nt), __end));
        (0, 12)
    }
    pub(crate) fn __reduce21<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefinitionAndDescription = StringValue, TypeSystemDefinition => ActionFn(217);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant40(__symbols);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action217::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (2, 13)
    }
    pub(crate) fn __reduce22<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefinitionAndDescription = TypeSystemDefinition => ActionFn(218);
        let __sym0 = __pop_Variant40(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action218::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (1, 13)
    }
    pub(crate) fn __reduce23<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefinitionAndDescription+ = DefinitionAndDescription => ActionFn(139);
        let __sym0 = __pop_Variant12(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action139::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (1, 14)
    }
    pub(crate) fn __reduce24<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DefinitionAndDescription+ = DefinitionAndDescription+, DefinitionAndDescription => ActionFn(140);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant12(__symbols);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action140::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (2, 14)
    }
    pub(crate) fn __reduce25<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directive = "@", Name, Arguments => ActionFn(183);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant6(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action183::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (3, 15)
    }
    pub(crate) fn __reduce26<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directive = "@", Name => ActionFn(184);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action184::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (2, 15)
    }
    pub(crate) fn __reduce27<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directive* =  => ActionFn(99);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action99::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (0, 16)
    }
    pub(crate) fn __reduce28<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directive* = Directive+ => ActionFn(100);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action100::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (1, 16)
    }
    pub(crate) fn __reduce29<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directive+ = Directive => ActionFn(149);
        let __sym0 = __pop_Variant12(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action149::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (1, 17)
    }
    pub(crate) fn __reduce30<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directive+ = Directive+, Directive => ActionFn(150);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant12(__symbols);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action150::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (2, 17)
    }
    pub(crate) fn __reduce31<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveDefinition = directive, "@", Name, ArgumentsDefinition, Repeatable, on, DirectiveLocations => ActionFn(211);
        assert!(__symbols.len() >= 7);
        let __sym6 = __pop_Variant16(__symbols);
        let __sym5 = __pop_Variant0(__symbols);
        let __sym4 = __pop_Variant31(__symbols);
        let __sym3 = __pop_Variant8(__symbols);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym6.2;
        let __nt = super::__action211::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5, __sym6);
        __symbols.push((__start, __Symbol::Variant14(__nt), __end));
        (7, 18)
    }
    pub(crate) fn __reduce32<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveDefinition = directive, "@", Name, ArgumentsDefinition, on, DirectiveLocations => ActionFn(212);
        assert!(__symbols.len() >= 6);
        let __sym5 = __pop_Variant16(__symbols);
        let __sym4 = __pop_Variant0(__symbols);
        let __sym3 = __pop_Variant8(__symbols);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym5.2;
        let __nt = super::__action212::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
        __symbols.push((__start, __Symbol::Variant14(__nt), __end));
        (6, 18)
    }
    pub(crate) fn __reduce33<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveDefinition = directive, "@", Name, Repeatable, on, DirectiveLocations => ActionFn(213);
        assert!(__symbols.len() >= 6);
        let __sym5 = __pop_Variant16(__symbols);
        let __sym4 = __pop_Variant0(__symbols);
        let __sym3 = __pop_Variant31(__symbols);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym5.2;
        let __nt = super::__action213::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
        __symbols.push((__start, __Symbol::Variant14(__nt), __end));
        (6, 18)
    }
    pub(crate) fn __reduce34<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveDefinition = directive, "@", Name, on, DirectiveLocations => ActionFn(214);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant16(__symbols);
        let __sym3 = __pop_Variant0(__symbols);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action214::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant14(__nt), __end));
        (5, 18)
    }
    pub(crate) fn __reduce35<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveLocation = Ident => ActionFn(43);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action43::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant15(__nt), __end));
        (1, 19)
    }
    pub(crate) fn __reduce36<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveLocations = DirectiveLocations, "|", DirectiveLocation => ActionFn(41);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant15(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant16(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action41::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant16(__nt), __end));
        (3, 20)
    }
    pub(crate) fn __reduce37<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveLocations = "|", DirectiveLocation => ActionFn(155);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant15(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action155::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant16(__nt), __end));
        (2, 20)
    }
    pub(crate) fn __reduce38<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // DirectiveLocations = DirectiveLocation => ActionFn(156);
        let __sym0 = __pop_Variant15(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action156::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant16(__nt), __end));
        (1, 20)
    }
    pub(crate) fn __reduce39<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directives =  => ActionFn(191);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action191::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant17(__nt), __end));
        (0, 21)
    }
    pub(crate) fn __reduce40<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Directives = Directive+ => ActionFn(192);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action192::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant17(__nt), __end));
        (1, 21)
    }
    pub(crate) fn __reduce41<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumDefinition = "enum", Name, Directives, EnumValuesDefinition => ActionFn(193);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant22(__symbols);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action193::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant18(__nt), __end));
        (4, 22)
    }
    pub(crate) fn __reduce42<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumDefinition = "enum", Name, Directives => ActionFn(194);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action194::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant18(__nt), __end));
        (3, 22)
    }
    pub(crate) fn __reduce43<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValue = RawIdent => ActionFn(66);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action66::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 23)
    }
    pub(crate) fn __reduce44<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValue = schema => ActionFn(67);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action67::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 23)
    }
    pub(crate) fn __reduce45<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValue = query => ActionFn(68);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action68::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 23)
    }
    pub(crate) fn __reduce46<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValue = ty => ActionFn(69);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action69::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 23)
    }
    pub(crate) fn __reduce47<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValue = input => ActionFn(70);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action70::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 23)
    }
    pub(crate) fn __reduce48<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValueDefinition = StringValue, EnumValue, Directives => ActionFn(219);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action219::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant20(__nt), __end));
        (3, 24)
    }
    pub(crate) fn __reduce49<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValueDefinition = EnumValue, Directives => ActionFn(220);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant17(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action220::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant20(__nt), __end));
        (2, 24)
    }
    pub(crate) fn __reduce50<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValueDefinition+ = EnumValueDefinition => ActionFn(113);
        let __sym0 = __pop_Variant20(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action113::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant21(__nt), __end));
        (1, 25)
    }
    pub(crate) fn __reduce51<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValueDefinition+ = EnumValueDefinition+, EnumValueDefinition => ActionFn(114);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant20(__symbols);
        let __sym0 = __pop_Variant21(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action114::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant21(__nt), __end));
        (2, 25)
    }
    pub(crate) fn __reduce52<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValuesDefinition = "{", EnumValueDefinition+, "}" => ActionFn(35);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant21(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action35::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant22(__nt), __end));
        (3, 26)
    }
    pub(crate) fn __reduce53<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValuesDefinition? = EnumValuesDefinition => ActionFn(115);
        let __sym0 = __pop_Variant22(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action115::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant23(__nt), __end));
        (1, 27)
    }
    pub(crate) fn __reduce54<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // EnumValuesDefinition? =  => ActionFn(116);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action116::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant23(__nt), __end));
        (0, 27)
    }
    pub(crate) fn __reduce55<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldDefinition = StringValue, Name, ArgumentsDefinition, ":", Type, Directives => ActionFn(221);
        assert!(__symbols.len() >= 6);
        let __sym5 = __pop_Variant17(__symbols);
        let __sym4 = __pop_Variant39(__symbols);
        let __sym3 = __pop_Variant0(__symbols);
        let __sym2 = __pop_Variant8(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym5.2;
        let __nt = super::__action221::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (6, 28)
    }
    pub(crate) fn __reduce56<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldDefinition = Name, ArgumentsDefinition, ":", Type, Directives => ActionFn(222);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant17(__symbols);
        let __sym3 = __pop_Variant39(__symbols);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant8(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action222::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (5, 28)
    }
    pub(crate) fn __reduce57<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldDefinition = StringValue, Name, ":", Type, Directives => ActionFn(223);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant17(__symbols);
        let __sym3 = __pop_Variant39(__symbols);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action223::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (5, 28)
    }
    pub(crate) fn __reduce58<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldDefinition = Name, ":", Type, Directives => ActionFn(224);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant17(__symbols);
        let __sym2 = __pop_Variant39(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action224::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (4, 28)
    }
    pub(crate) fn __reduce59<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldDefinition+ = FieldDefinition => ActionFn(125);
        let __sym0 = __pop_Variant12(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action125::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (1, 29)
    }
    pub(crate) fn __reduce60<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldDefinition+ = FieldDefinition+, FieldDefinition => ActionFn(126);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant12(__symbols);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action126::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (2, 29)
    }
    pub(crate) fn __reduce61<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldsDefinition = "{", FieldDefinition+, "}" => ActionFn(27);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant13(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action27::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant8(__nt), __end));
        (3, 30)
    }
    pub(crate) fn __reduce62<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldsDefinition? = FieldsDefinition => ActionFn(129);
        let __sym0 = __pop_Variant8(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action129::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant9(__nt), __end));
        (1, 31)
    }
    pub(crate) fn __reduce63<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // FieldsDefinition? =  => ActionFn(130);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action130::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant9(__nt), __end));
        (0, 31)
    }
    pub(crate) fn __reduce64<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = RawIdent => ActionFn(75);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action75::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce65<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = schema => ActionFn(76);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action76::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce66<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = query => ActionFn(77);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action77::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce67<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = mutation => ActionFn(78);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action78::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce68<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = subscription => ActionFn(79);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action79::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce69<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = ty => ActionFn(80);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action80::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce70<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = input => ActionFn(81);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action81::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce71<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = true => ActionFn(82);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action82::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce72<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = false => ActionFn(83);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action83::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce73<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = null => ActionFn(84);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action84::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce74<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = implements => ActionFn(85);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action85::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce75<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = interface => ActionFn(86);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action86::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce76<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = "enum" => ActionFn(87);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action87::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce77<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = union => ActionFn(88);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action88::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce78<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = scalar => ActionFn(89);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action89::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce79<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = extend => ActionFn(90);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action90::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce80<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = directive => ActionFn(91);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action91::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce81<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = repeatable => ActionFn(92);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action92::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce82<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = on => ActionFn(93);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action93::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce83<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Ident = fragment => ActionFn(94);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action94::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant1(__nt), __end));
        (1, 32)
    }
    pub(crate) fn __reduce84<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ImplementItem = "&", NamedType => ActionFn(26);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action26::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (2, 33)
    }
    pub(crate) fn __reduce85<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ImplementsInterfaces = ImplementsInterfaces, "&", NamedType => ActionFn(24);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant24(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action24::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant24(__nt), __end));
        (3, 34)
    }
    pub(crate) fn __reduce86<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ImplementsInterfaces = implements, "&", NamedType => ActionFn(153);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action153::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant24(__nt), __end));
        (3, 34)
    }
    pub(crate) fn __reduce87<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ImplementsInterfaces = implements, NamedType => ActionFn(154);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action154::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant24(__nt), __end));
        (2, 34)
    }
    pub(crate) fn __reduce88<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ImplementsInterfaces? = ImplementsInterfaces => ActionFn(131);
        let __sym0 = __pop_Variant24(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action131::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant25(__nt), __end));
        (1, 35)
    }
    pub(crate) fn __reduce89<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ImplementsInterfaces? =  => ActionFn(132);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action132::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant25(__nt), __end));
        (0, 35)
    }
    pub(crate) fn __reduce90<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputFieldsDefinition = "{", InputValueDefinition+, "}" => ActionFn(38);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant13(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action38::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant8(__nt), __end));
        (3, 36)
    }
    pub(crate) fn __reduce91<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputFieldsDefinition? = InputFieldsDefinition => ActionFn(111);
        let __sym0 = __pop_Variant8(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action111::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant9(__nt), __end));
        (1, 37)
    }
    pub(crate) fn __reduce92<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputFieldsDefinition? =  => ActionFn(112);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action112::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant9(__nt), __end));
        (0, 37)
    }
    pub(crate) fn __reduce93<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputObjectDefinition = input, Name, Directives, InputFieldsDefinition => ActionFn(207);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant8(__symbols);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action207::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant26(__nt), __end));
        (4, 38)
    }
    pub(crate) fn __reduce94<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputObjectDefinition = input, Name, Directives => ActionFn(208);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action208::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant26(__nt), __end));
        (3, 38)
    }
    pub(crate) fn __reduce95<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputValueDefinition = StringValue, Name, ":", Type, DefaultValue, Directives => ActionFn(225);
        assert!(__symbols.len() >= 6);
        let __sym5 = __pop_Variant17(__symbols);
        let __sym4 = __pop_Variant10(__symbols);
        let __sym3 = __pop_Variant39(__symbols);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym5.2;
        let __nt = super::__action225::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (6, 39)
    }
    pub(crate) fn __reduce96<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputValueDefinition = Name, ":", Type, DefaultValue, Directives => ActionFn(226);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant17(__symbols);
        let __sym3 = __pop_Variant10(__symbols);
        let __sym2 = __pop_Variant39(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action226::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (5, 39)
    }
    pub(crate) fn __reduce97<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputValueDefinition = StringValue, Name, ":", Type, Directives => ActionFn(227);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant17(__symbols);
        let __sym3 = __pop_Variant39(__symbols);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action227::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (5, 39)
    }
    pub(crate) fn __reduce98<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputValueDefinition = Name, ":", Type, Directives => ActionFn(228);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant17(__symbols);
        let __sym2 = __pop_Variant39(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action228::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (4, 39)
    }
    pub(crate) fn __reduce99<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputValueDefinition+ = InputValueDefinition => ActionFn(121);
        let __sym0 = __pop_Variant12(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action121::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (1, 40)
    }
    pub(crate) fn __reduce100<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InputValueDefinition+ = InputValueDefinition+, InputValueDefinition => ActionFn(122);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant12(__symbols);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action122::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant13(__nt), __end));
        (2, 40)
    }
    pub(crate) fn __reduce101<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InterfaceDefinition = interface, Name, ImplementsInterfaces, Directives, FieldsDefinition => ActionFn(199);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant8(__symbols);
        let __sym3 = __pop_Variant17(__symbols);
        let __sym2 = __pop_Variant24(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action199::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant27(__nt), __end));
        (5, 41)
    }
    pub(crate) fn __reduce102<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InterfaceDefinition = interface, Name, Directives, FieldsDefinition => ActionFn(200);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant8(__symbols);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action200::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant27(__nt), __end));
        (4, 41)
    }
    pub(crate) fn __reduce103<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InterfaceDefinition = interface, Name, ImplementsInterfaces, Directives => ActionFn(201);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant17(__symbols);
        let __sym2 = __pop_Variant24(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action201::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant27(__nt), __end));
        (4, 41)
    }
    pub(crate) fn __reduce104<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // InterfaceDefinition = interface, Name, Directives => ActionFn(202);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action202::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant27(__nt), __end));
        (3, 41)
    }
    pub(crate) fn __reduce105<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Name = Ident => ActionFn(46);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action46::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 42)
    }
    pub(crate) fn __reduce106<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // NamedType = Ident => ActionFn(47);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action47::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant19(__nt), __end));
        (1, 43)
    }
    pub(crate) fn __reduce107<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectDefinition = ty, Name, ImplementsInterfaces, Directives, FieldsDefinition => ActionFn(203);
        assert!(__symbols.len() >= 5);
        let __sym4 = __pop_Variant8(__symbols);
        let __sym3 = __pop_Variant17(__symbols);
        let __sym2 = __pop_Variant24(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym4.2;
        let __nt = super::__action203::<>(input, ast, __sym0, __sym1, __sym2, __sym3, __sym4);
        __symbols.push((__start, __Symbol::Variant28(__nt), __end));
        (5, 44)
    }
    pub(crate) fn __reduce108<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectDefinition = ty, Name, Directives, FieldsDefinition => ActionFn(204);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant8(__symbols);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action204::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant28(__nt), __end));
        (4, 44)
    }
    pub(crate) fn __reduce109<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectDefinition = ty, Name, ImplementsInterfaces, Directives => ActionFn(205);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant17(__symbols);
        let __sym2 = __pop_Variant24(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action205::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant28(__nt), __end));
        (4, 44)
    }
    pub(crate) fn __reduce110<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectDefinition = ty, Name, Directives => ActionFn(206);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action206::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant28(__nt), __end));
        (3, 44)
    }
    pub(crate) fn __reduce111<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectField = Name, ":", Value => ActionFn(63);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant10(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action63::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant29(__nt), __end));
        (3, 45)
    }
    pub(crate) fn __reduce112<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectField* =  => ActionFn(101);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action101::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant30(__nt), __end));
        (0, 46)
    }
    pub(crate) fn __reduce113<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectField* = ObjectField+ => ActionFn(102);
        let __sym0 = __pop_Variant30(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action102::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant30(__nt), __end));
        (1, 46)
    }
    pub(crate) fn __reduce114<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectField+ = ObjectField => ActionFn(147);
        let __sym0 = __pop_Variant29(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action147::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant30(__nt), __end));
        (1, 47)
    }
    pub(crate) fn __reduce115<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ObjectField+ = ObjectField+, ObjectField => ActionFn(148);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant29(__symbols);
        let __sym0 = __pop_Variant30(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action148::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant30(__nt), __end));
        (2, 47)
    }
    pub(crate) fn __reduce116<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Repeatable = repeatable => ActionFn(40);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action40::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant31(__nt), __end));
        (1, 48)
    }
    pub(crate) fn __reduce117<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Repeatable? = Repeatable => ActionFn(109);
        let __sym0 = __pop_Variant31(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action109::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant32(__nt), __end));
        (1, 49)
    }
    pub(crate) fn __reduce118<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Repeatable? =  => ActionFn(110);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action110::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant32(__nt), __end));
        (0, 49)
    }
    pub(crate) fn __reduce119<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition = query, ":", NamedType => ActionFn(19);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action19::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant33(__nt), __end));
        (3, 50)
    }
    pub(crate) fn __reduce120<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition = mutation, ":", NamedType => ActionFn(20);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action20::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant33(__nt), __end));
        (3, 50)
    }
    pub(crate) fn __reduce121<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition = subscription, ":", NamedType => ActionFn(21);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action21::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant33(__nt), __end));
        (3, 50)
    }
    pub(crate) fn __reduce122<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition* =  => ActionFn(135);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action135::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant34(__nt), __end));
        (0, 51)
    }
    pub(crate) fn __reduce123<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition* = RootOperationTypeDefinition+ => ActionFn(136);
        let __sym0 = __pop_Variant34(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action136::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant34(__nt), __end));
        (1, 51)
    }
    pub(crate) fn __reduce124<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition+ = RootOperationTypeDefinition => ActionFn(141);
        let __sym0 = __pop_Variant33(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action141::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant34(__nt), __end));
        (1, 52)
    }
    pub(crate) fn __reduce125<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // RootOperationTypeDefinition+ = RootOperationTypeDefinition+, RootOperationTypeDefinition => ActionFn(142);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant33(__symbols);
        let __sym0 = __pop_Variant34(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action142::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant34(__nt), __end));
        (2, 52)
    }
    pub(crate) fn __reduce126<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // ScalarDefinition = scalar, Name, Directives => ActionFn(179);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action179::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant35(__nt), __end));
        (3, 53)
    }
    pub(crate) fn __reduce127<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // SchemaDefinition = schema, "{", "}" => ActionFn(215);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action215::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant36(__nt), __end));
        (3, 54)
    }
    pub(crate) fn __reduce128<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // SchemaDefinition = schema, "{", RootOperationTypeDefinition+, "}" => ActionFn(216);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant0(__symbols);
        let __sym2 = __pop_Variant34(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action216::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant36(__nt), __end));
        (4, 54)
    }
    pub(crate) fn __reduce130<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // StringValue = BlockStringLiteral => ActionFn(65);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action65::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant37(__nt), __end));
        (1, 55)
    }
    pub(crate) fn __reduce131<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // StringValue? = StringValue => ActionFn(137);
        let __sym0 = __pop_Variant37(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action137::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant38(__nt), __end));
        (1, 56)
    }
    pub(crate) fn __reduce132<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // StringValue? =  => ActionFn(138);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action138::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant38(__nt), __end));
        (0, 56)
    }
    pub(crate) fn __reduce133<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Type = "[", Type => ActionFn(48);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant39(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action48::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant39(__nt), __end));
        (2, 57)
    }
    pub(crate) fn __reduce134<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Type = NamedType => ActionFn(233);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action233::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant39(__nt), __end));
        (1, 57)
    }
    pub(crate) fn __reduce135<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Type = NamedType, WrappingType+ => ActionFn(234);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant44(__symbols);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action234::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant39(__nt), __end));
        (2, 57)
    }
    pub(crate) fn __reduce136<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = SchemaDefinition => ActionFn(3);
        let __sym0 = __pop_Variant36(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action3::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce137<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = ScalarDefinition => ActionFn(4);
        let __sym0 = __pop_Variant35(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action4::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce138<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = ObjectDefinition => ActionFn(5);
        let __sym0 = __pop_Variant28(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action5::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce139<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = InterfaceDefinition => ActionFn(6);
        let __sym0 = __pop_Variant27(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action6::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce140<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = UnionDefinition => ActionFn(7);
        let __sym0 = __pop_Variant41(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action7::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce141<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = EnumDefinition => ActionFn(8);
        let __sym0 = __pop_Variant18(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action8::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce142<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = InputObjectDefinition => ActionFn(9);
        let __sym0 = __pop_Variant26(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action9::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce143<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, SchemaDefinition => ActionFn(10);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant36(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action10::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce144<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, ScalarDefinition => ActionFn(11);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant35(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action11::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce145<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, ObjectDefinition => ActionFn(12);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant28(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action12::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce146<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, InterfaceDefinition => ActionFn(13);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant27(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action13::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce147<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, UnionDefinition => ActionFn(14);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant41(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action14::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce148<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, EnumDefinition => ActionFn(15);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant18(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action15::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce149<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = extend, InputObjectDefinition => ActionFn(16);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant26(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action16::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (2, 58)
    }
    pub(crate) fn __reduce150<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDefinition = DirectiveDefinition => ActionFn(17);
        let __sym0 = __pop_Variant14(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action17::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant40(__nt), __end));
        (1, 58)
    }
    pub(crate) fn __reduce151<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // TypeSystemDocument = DefinitionAndDescription+ => ActionFn(1);
        let __sym0 = __pop_Variant13(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action1::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant12(__nt), __end));
        (1, 59)
    }
    pub(crate) fn __reduce152<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionDefinition = union, Name, Directives, UnionMemberTypes => ActionFn(229);
        assert!(__symbols.len() >= 4);
        let __sym3 = __pop_Variant24(__symbols);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym3.2;
        let __nt = super::__action229::<>(input, ast, __sym0, __sym1, __sym2, __sym3);
        __symbols.push((__start, __Symbol::Variant41(__nt), __end));
        (4, 60)
    }
    pub(crate) fn __reduce153<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionDefinition = union, Name, Directives => ActionFn(230);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant17(__symbols);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action230::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant41(__nt), __end));
        (3, 60)
    }
    pub(crate) fn __reduce154<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionMemberTypes = UnionMemberTypes, "|", NamedType => ActionFn(32);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant24(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action32::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant24(__nt), __end));
        (3, 61)
    }
    pub(crate) fn __reduce155<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionMemberTypes = "=", "|", NamedType => ActionFn(157);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant19(__symbols);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action157::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant24(__nt), __end));
        (3, 61)
    }
    pub(crate) fn __reduce156<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionMemberTypes = "=", NamedType => ActionFn(158);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action158::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant24(__nt), __end));
        (2, 61)
    }
    pub(crate) fn __reduce157<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionMemberTypes? = UnionMemberTypes => ActionFn(119);
        let __sym0 = __pop_Variant24(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action119::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant25(__nt), __end));
        (1, 62)
    }
    pub(crate) fn __reduce158<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // UnionMemberTypes? =  => ActionFn(120);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action120::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant25(__nt), __end));
        (0, 62)
    }
    pub(crate) fn __reduce159<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = "$", Name => ActionFn(52);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant19(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action52::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (2, 63)
    }
    pub(crate) fn __reduce160<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = IntegerLiteral => ActionFn(53);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action53::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce161<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = FloatLiteral => ActionFn(54);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action54::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce163<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = BlockStringLiteral => ActionFn(56);
        let __sym0 = __pop_Variant1(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action56::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce164<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = true => ActionFn(57);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action57::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce165<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = false => ActionFn(58);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action58::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce166<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = null => ActionFn(59);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action59::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce167<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = "[", "]" => ActionFn(231);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action231::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (2, 63)
    }
    pub(crate) fn __reduce168<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = "[", Value+, "]" => ActionFn(232);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant42(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action232::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (3, 63)
    }
    pub(crate) fn __reduce169<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = "{", "}" => ActionFn(209);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant0(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action209::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (2, 63)
    }
    pub(crate) fn __reduce170<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = "{", ObjectField+, "}" => ActionFn(210);
        assert!(__symbols.len() >= 3);
        let __sym2 = __pop_Variant0(__symbols);
        let __sym1 = __pop_Variant30(__symbols);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym2.2;
        let __nt = super::__action210::<>(input, ast, __sym0, __sym1, __sym2);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (3, 63)
    }
    pub(crate) fn __reduce171<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value = EnumValue => ActionFn(62);
        let __sym0 = __pop_Variant19(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action62::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant10(__nt), __end));
        (1, 63)
    }
    pub(crate) fn __reduce172<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value* =  => ActionFn(103);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action103::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant42(__nt), __end));
        (0, 64)
    }
    pub(crate) fn __reduce173<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value* = Value+ => ActionFn(104);
        let __sym0 = __pop_Variant42(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action104::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant42(__nt), __end));
        (1, 64)
    }
    pub(crate) fn __reduce174<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value+ = Value => ActionFn(145);
        let __sym0 = __pop_Variant10(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action145::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant42(__nt), __end));
        (1, 65)
    }
    pub(crate) fn __reduce175<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // Value+ = Value+, Value => ActionFn(146);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant10(__symbols);
        let __sym0 = __pop_Variant42(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action146::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant42(__nt), __end));
        (2, 65)
    }
    pub(crate) fn __reduce176<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // WrappingType = "!" => ActionFn(50);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action50::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant43(__nt), __end));
        (1, 66)
    }
    pub(crate) fn __reduce177<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // WrappingType = "]" => ActionFn(51);
        let __sym0 = __pop_Variant0(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action51::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant43(__nt), __end));
        (1, 66)
    }
    pub(crate) fn __reduce178<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // WrappingType* =  => ActionFn(105);
        let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
        let __end = __start.clone();
        let __nt = super::__action105::<>(input, ast, &__start, &__end);
        __symbols.push((__start, __Symbol::Variant44(__nt), __end));
        (0, 67)
    }
    pub(crate) fn __reduce179<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // WrappingType* = WrappingType+ => ActionFn(106);
        let __sym0 = __pop_Variant44(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action106::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant44(__nt), __end));
        (1, 67)
    }
    pub(crate) fn __reduce180<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // WrappingType+ = WrappingType => ActionFn(143);
        let __sym0 = __pop_Variant43(__symbols);
        let __start = __sym0.0;
        let __end = __sym0.2;
        let __nt = super::__action143::<>(input, ast, __sym0);
        __symbols.push((__start, __Symbol::Variant44(__nt), __end));
        (1, 68)
    }
    pub(crate) fn __reduce181<
        'input,
    >(
        input: &'input str,
        ast: &mut TypeSystemAstWriter,
        __lookahead_start: Option<&usize>,
        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
        _: core::marker::PhantomData<(&'input ())>,
    ) -> (usize, usize)
    {
        // WrappingType+ = WrappingType+, WrappingType => ActionFn(144);
        assert!(__symbols.len() >= 2);
        let __sym1 = __pop_Variant43(__symbols);
        let __sym0 = __pop_Variant44(__symbols);
        let __start = __sym0.0;
        let __end = __sym1.2;
        let __nt = super::__action144::<>(input, ast, __sym0, __sym1);
        __symbols.push((__start, __Symbol::Variant44(__nt), __end));
        (2, 68)
    }
}
pub use self::__parse__TypeSystemDocument::TypeSystemDocumentParser;

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action0<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, (), usize),
) {
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action1<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, defs, _): (usize, alloc::vec::Vec<()>, usize),
) {
    {}
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action2<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, description, _): (usize, core::option::Option<StringLiteralId>, usize),
    (_, def, _): (usize, DefinitionId, usize),
) {
    {
        ast.store_description(def, description)
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action3<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, SchemaDefinitionRecord, usize),
) -> DefinitionId {
    ast.schema_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action4<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, ScalarDefinitionRecord, usize),
) -> DefinitionId {
    ast.scalar_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action5<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, ObjectDefinitionRecord, usize),
) -> DefinitionId {
    ast.object_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action6<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, InterfaceDefinitionRecord, usize),
) -> DefinitionId {
    ast.interface_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action7<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, UnionDefinitionRecord, usize),
) -> DefinitionId {
    ast.union_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action8<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, EnumDefinitionRecord, usize),
) -> DefinitionId {
    ast.enum_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action9<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, InputObjectDefinitionRecord, usize),
) -> DefinitionId {
    ast.input_object_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action10<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, SchemaDefinitionRecord, usize),
) -> DefinitionId {
    ast.schema_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action11<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, ScalarDefinitionRecord, usize),
) -> DefinitionId {
    ast.scalar_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action12<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, ObjectDefinitionRecord, usize),
) -> DefinitionId {
    ast.object_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action13<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, InterfaceDefinitionRecord, usize),
) -> DefinitionId {
    ast.interface_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action14<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, UnionDefinitionRecord, usize),
) -> DefinitionId {
    ast.union_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action15<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, EnumDefinitionRecord, usize),
) -> DefinitionId {
    ast.enum_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action16<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, def, _): (usize, InputObjectDefinitionRecord, usize),
) -> DefinitionId {
    ast.input_object_extension(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action17<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, def, _): (usize, DirectiveDefinitionRecord, usize),
) -> DefinitionId {
    ast.directive_definition(def)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action18<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, root_operations, _): (
        usize,
        alloc::vec::Vec<RootOperationTypeDefinitionRecord>,
        usize,
    ),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> SchemaDefinitionRecord {
    SchemaDefinitionRecord {
        description: None,
        root_operations: ast.root_operation_definitions(root_operations),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action19<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> RootOperationTypeDefinitionRecord {
    RootOperationTypeDefinitionRecord {
        operation_type: OperationType::Query,
        named_type: name,
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action20<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> RootOperationTypeDefinitionRecord {
    RootOperationTypeDefinitionRecord {
        operation_type: OperationType::Mutation,
        named_type: name,
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action21<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> RootOperationTypeDefinitionRecord {
    RootOperationTypeDefinitionRecord {
        operation_type: OperationType::Subscription,
        named_type: name,
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action22<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, end, _): (usize, usize, usize),
) -> ScalarDefinitionRecord {
    ScalarDefinitionRecord {
        name,
        description: None,
        directives,
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action23<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, implements, _): (usize, core::option::Option<Vec<StringId>>, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, fields, _): (usize, core::option::Option<Vec<()>>, usize),
    (_, end, _): (usize, usize, usize),
) -> ObjectDefinitionRecord {
    ObjectDefinitionRecord {
        name,
        description: None,
        directives,
        implements_interfaces: implements.unwrap_or_default(),
        fields: ast
            .field_definition_range(Some(fields.map(|fields| fields.len()).unwrap_or_default())),
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action24<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, interfaces, _): (usize, Vec<StringId>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> Vec<StringId> {
    {
        let mut interfaces = interfaces;
        interfaces.push(name);
        interfaces
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action25<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, core::option::Option<lexer::Token<'input>>, usize),
    (_, name, _): (usize, StringId, usize),
) -> Vec<StringId> {
    {
        vec![name]
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action26<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> StringId {
    name
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action27<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, fields, _): (usize, alloc::vec::Vec<()>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> Vec<()> {
    fields
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action28<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, description, _): (usize, core::option::Option<StringLiteralId>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, arguments, _): (usize, core::option::Option<Vec<()>>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, ty, _): (usize, TypeId, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, end, _): (usize, usize, usize),
) {
    {
        let arguments = ast.input_value_definition_range(Some(
            arguments
                .map(|arguments| arguments.len())
                .unwrap_or_default(),
        ));
        ast.field_definition(FieldDefinitionRecord {
            name,
            ty,
            arguments,
            description,
            directives,
            span: Span::new(start, end),
        });
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action29<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, arguments, _): (usize, alloc::vec::Vec<()>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> Vec<()> {
    arguments
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action30<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, implements, _): (usize, core::option::Option<Vec<StringId>>, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, fields, _): (usize, core::option::Option<Vec<()>>, usize),
    (_, end, _): (usize, usize, usize),
) -> InterfaceDefinitionRecord {
    InterfaceDefinitionRecord {
        name,
        description: None,
        directives,
        implements_interfaces: implements.unwrap_or_default(),
        fields: ast
            .field_definition_range(Some(fields.map(|fields| fields.len()).unwrap_or_default())),
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action31<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, members, _): (usize, core::option::Option<Vec<StringId>>, usize),
    (_, end, _): (usize, usize, usize),
) -> UnionDefinitionRecord {
    UnionDefinitionRecord {
        name,
        description: None,
        members: members.unwrap_or_default(),
        directives,
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action32<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, members, _): (usize, Vec<StringId>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> Vec<StringId> {
    {
        let mut members = members;
        members.push(name);
        members
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action33<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, core::option::Option<lexer::Token<'input>>, usize),
    (_, name, _): (usize, StringId, usize),
) -> Vec<StringId> {
    {
        vec![name]
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action34<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, values, _): (
        usize,
        core::option::Option<Vec<EnumValueDefinitionId>>,
        usize,
    ),
    (_, end, _): (usize, usize, usize),
) -> EnumDefinitionRecord {
    EnumDefinitionRecord {
        name,
        description: None,
        directives,
        values: ast.enum_value_definition_range(values.map(|values| values.len())),
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action35<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, values, _): (usize, alloc::vec::Vec<EnumValueDefinitionId>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> Vec<EnumValueDefinitionId> {
    values
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action36<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, description, _): (usize, core::option::Option<StringLiteralId>, usize),
    (_, value, _): (usize, StringId, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, end, _): (usize, usize, usize),
) -> EnumValueDefinitionId {
    ast.enum_value_definition(EnumValueDefinitionRecord {
        value,
        description,
        directives,
        span: Span::new(start, end),
    })
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action37<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, fields, _): (usize, core::option::Option<Vec<()>>, usize),
    (_, end, _): (usize, usize, usize),
) -> InputObjectDefinitionRecord {
    InputObjectDefinitionRecord {
        name,
        description: None,
        directives,
        fields: ast.input_value_definition_range(Some(
            fields.map(|fields| fields.len()).unwrap_or_default(),
        )),
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action38<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, fields, _): (usize, alloc::vec::Vec<()>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> Vec<()> {
    fields
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action39<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, arguments, _): (usize, core::option::Option<Vec<()>>, usize),
    (_, repeatable, _): (usize, core::option::Option<bool>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, locations, _): (usize, Vec<DirectiveLocation>, usize),
    (_, end, _): (usize, usize, usize),
) -> DirectiveDefinitionRecord {
    DirectiveDefinitionRecord {
        name,
        description: None,
        arguments: ast.input_value_definition_range(Some(
            arguments
                .map(|arguments| arguments.len())
                .unwrap_or_default(),
        )),
        is_repeatable: repeatable.unwrap_or_default(),
        locations,
        span: Span::new(start, end),
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action40<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> bool {
    true
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action41<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, locations, _): (usize, Vec<DirectiveLocation>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, location, _): (usize, DirectiveLocation, usize),
) -> Vec<DirectiveLocation> {
    {
        let mut locations = locations;
        locations.push(location);
        locations
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action42<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, core::option::Option<lexer::Token<'input>>, usize),
    (_, location, _): (usize, DirectiveLocation, usize),
) -> Vec<DirectiveLocation> {
    {
        vec![location]
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action43<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> DirectiveLocation {
    s.parse().expect("TODO: error handling")
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action44<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, description, _): (usize, core::option::Option<StringLiteralId>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, ty, _): (usize, TypeId, usize),
    (_, default, _): (usize, core::option::Option<ValueId>, usize),
    (_, directives, _): (usize, IdRange<DirectiveId>, usize),
    (_, end, _): (usize, usize, usize),
) {
    {
        ast.input_value_definition(InputValueDefinitionRecord {
            name,
            ty,
            description,
            directives,
            default_value: default,
            span: Span::new(start, end),
        });
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action45<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, v, _): (usize, ValueId, usize),
) -> ValueId {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action46<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> StringId {
    ast.ident(s)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action47<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> StringId {
    ast.ident(s)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action48<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, ty, _): (usize, TypeId, usize),
) -> TypeId {
    ty
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action49<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, name, _): (usize, StringId, usize),
    (_, wrappers, _): (usize, alloc::vec::Vec<WrappingType>, usize),
) -> TypeId {
    ast.type_reference(TypeRecord {
        name,
        wrappers: TypeWrappers::from_iter(wrappers),
    })
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action50<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> WrappingType {
    WrappingType::NonNull
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action51<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> WrappingType {
    WrappingType::List
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action52<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
) -> ValueId {
    ast.value(ValueRecord::Variable(name))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action53<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, int, _): (usize, &'input str, usize),
) -> ValueId {
    ast.value(ValueRecord::Int(int.parse().unwrap()))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action54<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, float, _): (usize, &'input str, usize),
) -> ValueId {
    ast.value(ValueRecord::Float(float.parse().unwrap()))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action55<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, s, _): (usize, &'input str, usize),
) -> Result<
    ValueId,
    __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
> {
    {
        let id = ast.intern_owned_string(unquote_string(s, start)?);
        Ok(ast.value(ValueRecord::String(id)))
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action56<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> ValueId {
    {
        let id = ast.block_string(unquote_block_string(s));
        ast.value(ValueRecord::BlockString(id))
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action57<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> ValueId {
    ast.value(ValueRecord::Boolean(true))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action58<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> ValueId {
    ast.value(ValueRecord::Boolean(false))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action59<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> ValueId {
    ast.value(ValueRecord::Null)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action60<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, values, _): (usize, alloc::vec::Vec<ValueId>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> ValueId {
    ast.value(ValueRecord::List(values))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action61<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, fields, _): (usize, alloc::vec::Vec<(StringId, ValueId)>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> ValueId {
    ast.value(ValueRecord::Object(fields))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action62<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, value, _): (usize, StringId, usize),
) -> ValueId {
    ast.value(ValueRecord::Enum(value))
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action63<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, name, _): (usize, StringId, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, value, _): (usize, ValueId, usize),
) -> (StringId, ValueId) {
    (name, value)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action64<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, start, _): (usize, usize, usize),
    (_, s, _): (usize, &'input str, usize),
) -> Result<
    StringLiteralId,
    __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
> {
    {
        Ok(StringLiteralId::String(
            ast.intern_owned_string(unquote_string(s, start)?),
        ))
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action65<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> StringLiteralId {
    {
        let id = ast.block_string(unquote_block_string(s));
        StringLiteralId::Block(id)
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action66<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> StringId {
    ast.ident(s)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action67<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> StringId {
    ast.ident("schema")
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action68<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> StringId {
    ast.ident("query")
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action69<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> StringId {
    ast.ident("type")
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action70<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> StringId {
    ast.ident("input")
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action71<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, directives, _): (usize, alloc::vec::Vec<()>, usize),
) -> IdRange<DirectiveId> {
    {
        ast.directive_range(Some(directives.len()))
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action72<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, name, _): (usize, StringId, usize),
    (_, arguments, _): (usize, core::option::Option<Vec<ArgumentId>>, usize),
) {
    {
        let arguments = ast.argument_range(arguments.map(|arguments| arguments.len()));

        ast.directive(DirectiveRecord { name, arguments });
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action73<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, arguments, _): (usize, alloc::vec::Vec<ArgumentId>, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
) -> Vec<ArgumentId> {
    arguments
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action74<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, name, _): (usize, StringId, usize),
    (_, _, _): (usize, lexer::Token<'input>, usize),
    (_, value, _): (usize, ValueId, usize),
) -> ArgumentId {
    ast.argument(ArgumentRecord { name, value })
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action75<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, s, _): (usize, &'input str, usize),
) -> &'input str {
    s
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action76<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "schema"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action77<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "query"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action78<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "mutation"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action79<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "subscription"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action80<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "type"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action81<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "input"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action82<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "true"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action83<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "false"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action84<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "null"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action85<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "implements"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action86<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "interface"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action87<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "enum"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action88<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "union"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action89<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "scalar"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action90<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "extend"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action91<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "directive"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action92<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "repeatable"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action93<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "on"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action94<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> &'input str {
    "fragment"
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action95<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> alloc::vec::Vec<ArgumentId> {
    alloc::vec![]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action96<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<ArgumentId>, usize),
) -> alloc::vec::Vec<ArgumentId> {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action97<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<ArgumentId>, usize),
) -> core::option::Option<Vec<ArgumentId>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action98<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<ArgumentId>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action99<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> alloc::vec::Vec<()> {
    alloc::vec![]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action100<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<()>, usize),
) -> alloc::vec::Vec<()> {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action101<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> alloc::vec::Vec<(StringId, ValueId)> {
    alloc::vec![]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action102<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<(StringId, ValueId)>, usize),
) -> alloc::vec::Vec<(StringId, ValueId)> {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action103<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> alloc::vec::Vec<ValueId> {
    alloc::vec![]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action104<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<ValueId>, usize),
) -> alloc::vec::Vec<ValueId> {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action105<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> alloc::vec::Vec<WrappingType> {
    alloc::vec![]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action106<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<WrappingType>, usize),
) -> alloc::vec::Vec<WrappingType> {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action107<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, ValueId, usize),
) -> core::option::Option<ValueId> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action108<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<ValueId> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action109<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, bool, usize),
) -> core::option::Option<bool> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action110<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<bool> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action111<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<()>, usize),
) -> core::option::Option<Vec<()>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action112<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<()>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action113<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, EnumValueDefinitionId, usize),
) -> alloc::vec::Vec<EnumValueDefinitionId> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action114<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<EnumValueDefinitionId>, usize),
    (_, e, _): (usize, EnumValueDefinitionId, usize),
) -> alloc::vec::Vec<EnumValueDefinitionId> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action115<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<EnumValueDefinitionId>, usize),
) -> core::option::Option<Vec<EnumValueDefinitionId>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action116<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<EnumValueDefinitionId>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action117<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> core::option::Option<lexer::Token<'input>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action118<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<lexer::Token<'input>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action119<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<StringId>, usize),
) -> core::option::Option<Vec<StringId>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action120<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<StringId>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action121<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action122<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<()>, usize),
    (_, e, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action123<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<()>, usize),
) -> core::option::Option<Vec<()>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action124<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<()>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action125<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action126<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<()>, usize),
    (_, e, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action127<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, lexer::Token<'input>, usize),
) -> core::option::Option<lexer::Token<'input>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action128<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<lexer::Token<'input>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action129<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<()>, usize),
) -> core::option::Option<Vec<()>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action130<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<()>> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action131<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, Vec<StringId>, usize),
) -> core::option::Option<Vec<StringId>> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action132<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<Vec<StringId>> {
    None
}

#[allow(unused_variables)]
fn __action133<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> usize {
    *__lookbehind
}

#[allow(unused_variables)]
fn __action134<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> usize {
    *__lookahead
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action135<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> alloc::vec::Vec<RootOperationTypeDefinitionRecord> {
    alloc::vec![]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action136<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (
        usize,
        alloc::vec::Vec<RootOperationTypeDefinitionRecord>,
        usize,
    ),
) -> alloc::vec::Vec<RootOperationTypeDefinitionRecord> {
    v
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action137<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, StringLiteralId, usize),
) -> core::option::Option<StringLiteralId> {
    Some(__0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action138<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> core::option::Option<StringLiteralId> {
    None
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action139<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action140<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<()>, usize),
    (_, e, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action141<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, RootOperationTypeDefinitionRecord, usize),
) -> alloc::vec::Vec<RootOperationTypeDefinitionRecord> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action142<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (
        usize,
        alloc::vec::Vec<RootOperationTypeDefinitionRecord>,
        usize,
    ),
    (_, e, _): (usize, RootOperationTypeDefinitionRecord, usize),
) -> alloc::vec::Vec<RootOperationTypeDefinitionRecord> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action143<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, WrappingType, usize),
) -> alloc::vec::Vec<WrappingType> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action144<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<WrappingType>, usize),
    (_, e, _): (usize, WrappingType, usize),
) -> alloc::vec::Vec<WrappingType> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action145<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, ValueId, usize),
) -> alloc::vec::Vec<ValueId> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action146<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<ValueId>, usize),
    (_, e, _): (usize, ValueId, usize),
) -> alloc::vec::Vec<ValueId> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action147<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, (StringId, ValueId), usize),
) -> alloc::vec::Vec<(StringId, ValueId)> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action148<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<(StringId, ValueId)>, usize),
    (_, e, _): (usize, (StringId, ValueId), usize),
) -> alloc::vec::Vec<(StringId, ValueId)> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action149<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action150<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<()>, usize),
    (_, e, _): (usize, (), usize),
) -> alloc::vec::Vec<()> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action151<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, __0, _): (usize, ArgumentId, usize),
) -> alloc::vec::Vec<ArgumentId> {
    alloc::vec![__0]
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action152<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    (_, v, _): (usize, alloc::vec::Vec<ArgumentId>, usize),
    (_, e, _): (usize, ArgumentId, usize),
) -> alloc::vec::Vec<ArgumentId> {
    {
        let mut v = v;
        v.push(e);
        v
    }
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action153<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
) -> Vec<StringId> {
    let __start0 = __1.0;
    let __end0 = __1.2;
    let __temp0 = __action127(input, ast, __1);
    let __temp0 = (__start0, __temp0, __end0);
    __action25(input, ast, __0, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action154<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
) -> Vec<StringId> {
    let __start0 = __0.2;
    let __end0 = __1.0;
    let __temp0 = __action128(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action25(input, ast, __0, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action155<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, DirectiveLocation, usize),
) -> Vec<DirectiveLocation> {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action117(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action42(input, ast, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action156<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, DirectiveLocation, usize),
) -> Vec<DirectiveLocation> {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action118(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action42(input, ast, __temp0, __0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action157<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
) -> Vec<StringId> {
    let __start0 = __1.0;
    let __end0 = __1.2;
    let __temp0 = __action117(input, ast, __1);
    let __temp0 = (__start0, __temp0, __end0);
    __action33(input, ast, __0, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action158<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
) -> Vec<StringId> {
    let __start0 = __0.2;
    let __end0 = __1.0;
    let __temp0 = __action118(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action33(input, ast, __0, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action159<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, core::option::Option<Vec<()>>, usize),
    __4: (usize, core::option::Option<bool>, usize),
    __5: (usize, lexer::Token<'input>, usize),
    __6: (usize, Vec<DirectiveLocation>, usize),
    __7: (usize, usize, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action39(input, ast, __temp0, __0, __1, __2, __3, __4, __5, __6, __7)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action160<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (
        usize,
        core::option::Option<Vec<EnumValueDefinitionId>>,
        usize,
    ),
    __4: (usize, usize, usize),
) -> EnumDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action34(input, ast, __temp0, __0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action161<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, usize, usize),
) -> EnumValueDefinitionId {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action36(input, ast, __temp0, __0, __1, __2, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action162<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<()>>, usize),
    __3: (usize, lexer::Token<'input>, usize),
    __4: (usize, TypeId, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
    __6: (usize, usize, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action28(input, ast, __temp0, __0, __1, __2, __3, __4, __5, __6)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action163<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, core::option::Option<Vec<()>>, usize),
    __4: (usize, usize, usize),
) -> InputObjectDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action37(input, ast, __temp0, __0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action164<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, core::option::Option<ValueId>, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
    __6: (usize, usize, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action44(input, ast, __temp0, __0, __1, __2, __3, __4, __5, __6)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action165<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, core::option::Option<Vec<()>>, usize),
    __5: (usize, usize, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action30(input, ast, __temp0, __0, __1, __2, __3, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action166<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, core::option::Option<Vec<()>>, usize),
    __5: (usize, usize, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action23(input, ast, __temp0, __0, __1, __2, __3, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action167<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, usize, usize),
) -> ScalarDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action22(input, ast, __temp0, __0, __1, __2, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action168<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, &'input str, usize),
) -> Result<
    StringLiteralId,
    __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
> {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action64(input, ast, __temp0, __0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action169<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, core::option::Option<Vec<StringId>>, usize),
    __4: (usize, usize, usize),
) -> UnionDefinitionRecord {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action31(input, ast, __temp0, __0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action170<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, &'input str, usize),
) -> Result<
    ValueId,
    __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
> {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action134(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action55(input, ast, __temp0, __0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action171<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, core::option::Option<Vec<()>>, usize),
    __4: (usize, core::option::Option<bool>, usize),
    __5: (usize, lexer::Token<'input>, usize),
    __6: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __6.2;
    let __end0 = __6.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action159(input, ast, __0, __1, __2, __3, __4, __5, __6, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action172<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (
        usize,
        core::option::Option<Vec<EnumValueDefinitionId>>,
        usize,
    ),
) -> EnumDefinitionRecord {
    let __start0 = __3.2;
    let __end0 = __3.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action160(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action173<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> EnumValueDefinitionId {
    let __start0 = __2.2;
    let __end0 = __2.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action161(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action174<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<()>>, usize),
    __3: (usize, lexer::Token<'input>, usize),
    __4: (usize, TypeId, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __5.2;
    let __end0 = __5.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action162(input, ast, __0, __1, __2, __3, __4, __5, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action175<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, core::option::Option<Vec<()>>, usize),
) -> InputObjectDefinitionRecord {
    let __start0 = __3.2;
    let __end0 = __3.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action163(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action176<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, core::option::Option<ValueId>, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __5.2;
    let __end0 = __5.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action164(input, ast, __0, __1, __2, __3, __4, __5, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action177<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, core::option::Option<Vec<()>>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __4.2;
    let __end0 = __4.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action165(input, ast, __0, __1, __2, __3, __4, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action178<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, core::option::Option<Vec<()>>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __4.2;
    let __end0 = __4.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action166(input, ast, __0, __1, __2, __3, __4, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action179<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> ScalarDefinitionRecord {
    let __start0 = __2.2;
    let __end0 = __2.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action167(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action180<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, core::option::Option<Vec<StringId>>, usize),
) -> UnionDefinitionRecord {
    let __start0 = __3.2;
    let __end0 = __3.2;
    let __temp0 = __action133(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action169(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action181<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
) -> Vec<ArgumentId> {
    let __start0 = __0.2;
    let __end0 = __1.0;
    let __temp0 = __action95(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action73(input, ast, __0, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action182<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, alloc::vec::Vec<ArgumentId>, usize),
    __2: (usize, lexer::Token<'input>, usize),
) -> Vec<ArgumentId> {
    let __start0 = __1.0;
    let __end0 = __1.2;
    let __temp0 = __action96(input, ast, __1);
    let __temp0 = (__start0, __temp0, __end0);
    __action73(input, ast, __0, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action183<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<ArgumentId>, usize),
) {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action97(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action72(input, ast, __0, __1, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action184<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
) {
    let __start0 = __1.2;
    let __end0 = __1.2;
    let __temp0 = __action98(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action72(input, ast, __0, __1, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action185<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, Vec<()>, usize),
    __4: (usize, core::option::Option<bool>, usize),
    __5: (usize, lexer::Token<'input>, usize),
    __6: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __3.0;
    let __end0 = __3.2;
    let __temp0 = __action123(input, ast, __3);
    let __temp0 = (__start0, __temp0, __end0);
    __action171(input, ast, __0, __1, __2, __temp0, __4, __5, __6)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action186<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, core::option::Option<bool>, usize),
    __4: (usize, lexer::Token<'input>, usize),
    __5: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __2.2;
    let __end0 = __3.0;
    let __temp0 = __action124(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action171(input, ast, __0, __1, __2, __temp0, __3, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action187<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<()>, usize),
    __3: (usize, lexer::Token<'input>, usize),
    __4: (usize, TypeId, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action123(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action174(input, ast, __0, __1, __temp0, __3, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action188<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __1.2;
    let __end0 = __2.0;
    let __temp0 = __action124(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action174(input, ast, __0, __1, __temp0, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action189<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, ValueId, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __4.0;
    let __end0 = __4.2;
    let __temp0 = __action107(input, ast, __4);
    let __temp0 = (__start0, __temp0, __end0);
    __action176(input, ast, __0, __1, __2, __3, __temp0, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action190<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, core::option::Option<StringLiteralId>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __3.2;
    let __end0 = __4.0;
    let __temp0 = __action108(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action176(input, ast, __0, __1, __2, __3, __temp0, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action191<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __lookbehind: &usize,
    __lookahead: &usize,
) -> IdRange<DirectiveId> {
    let __start0 = *__lookbehind;
    let __end0 = *__lookahead;
    let __temp0 = __action99(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action71(input, ast, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action192<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, alloc::vec::Vec<()>, usize),
) -> IdRange<DirectiveId> {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action100(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action71(input, ast, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action193<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, Vec<EnumValueDefinitionId>, usize),
) -> EnumDefinitionRecord {
    let __start0 = __3.0;
    let __end0 = __3.2;
    let __temp0 = __action115(input, ast, __3);
    let __temp0 = (__start0, __temp0, __end0);
    __action172(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action194<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> EnumDefinitionRecord {
    let __start0 = __2.2;
    let __end0 = __2.2;
    let __temp0 = __action116(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action172(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action195<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, Vec<()>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __4.0;
    let __end0 = __4.2;
    let __temp0 = __action129(input, ast, __4);
    let __temp0 = (__start0, __temp0, __end0);
    __action177(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action196<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __3.2;
    let __end0 = __3.2;
    let __temp0 = __action130(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action177(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action197<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, Vec<()>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __4.0;
    let __end0 = __4.2;
    let __temp0 = __action129(input, ast, __4);
    let __temp0 = (__start0, __temp0, __end0);
    __action178(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action198<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, core::option::Option<Vec<StringId>>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __3.2;
    let __end0 = __3.2;
    let __temp0 = __action130(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action178(input, ast, __0, __1, __2, __3, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action199<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<StringId>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, Vec<()>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action131(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action195(input, ast, __0, __1, __temp0, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action200<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, Vec<()>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __1.2;
    let __end0 = __2.0;
    let __temp0 = __action132(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action195(input, ast, __0, __1, __temp0, __2, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action201<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<StringId>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action131(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action196(input, ast, __0, __1, __temp0, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action202<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> InterfaceDefinitionRecord {
    let __start0 = __1.2;
    let __end0 = __2.0;
    let __temp0 = __action132(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action196(input, ast, __0, __1, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action203<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<StringId>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
    __4: (usize, Vec<()>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action131(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action197(input, ast, __0, __1, __temp0, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action204<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, Vec<()>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __1.2;
    let __end0 = __2.0;
    let __temp0 = __action132(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action197(input, ast, __0, __1, __temp0, __2, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action205<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<StringId>, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action131(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action198(input, ast, __0, __1, __temp0, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action206<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> ObjectDefinitionRecord {
    let __start0 = __1.2;
    let __end0 = __2.0;
    let __temp0 = __action132(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action198(input, ast, __0, __1, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action207<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, Vec<()>, usize),
) -> InputObjectDefinitionRecord {
    let __start0 = __3.0;
    let __end0 = __3.2;
    let __temp0 = __action111(input, ast, __3);
    let __temp0 = (__start0, __temp0, __end0);
    __action175(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action208<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> InputObjectDefinitionRecord {
    let __start0 = __2.2;
    let __end0 = __2.2;
    let __temp0 = __action112(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action175(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action209<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
) -> ValueId {
    let __start0 = __0.2;
    let __end0 = __1.0;
    let __temp0 = __action101(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action61(input, ast, __0, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action210<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, alloc::vec::Vec<(StringId, ValueId)>, usize),
    __2: (usize, lexer::Token<'input>, usize),
) -> ValueId {
    let __start0 = __1.0;
    let __end0 = __1.2;
    let __temp0 = __action102(input, ast, __1);
    let __temp0 = (__start0, __temp0, __end0);
    __action61(input, ast, __0, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action211<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, Vec<()>, usize),
    __4: (usize, bool, usize),
    __5: (usize, lexer::Token<'input>, usize),
    __6: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __4.0;
    let __end0 = __4.2;
    let __temp0 = __action109(input, ast, __4);
    let __temp0 = (__start0, __temp0, __end0);
    __action185(input, ast, __0, __1, __2, __3, __temp0, __5, __6)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action212<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, Vec<()>, usize),
    __4: (usize, lexer::Token<'input>, usize),
    __5: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __3.2;
    let __end0 = __4.0;
    let __temp0 = __action110(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action185(input, ast, __0, __1, __2, __3, __temp0, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action213<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, bool, usize),
    __4: (usize, lexer::Token<'input>, usize),
    __5: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __3.0;
    let __end0 = __3.2;
    let __temp0 = __action109(input, ast, __3);
    let __temp0 = (__start0, __temp0, __end0);
    __action186(input, ast, __0, __1, __2, __temp0, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action214<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, StringId, usize),
    __3: (usize, lexer::Token<'input>, usize),
    __4: (usize, Vec<DirectiveLocation>, usize),
) -> DirectiveDefinitionRecord {
    let __start0 = __2.2;
    let __end0 = __3.0;
    let __temp0 = __action110(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action186(input, ast, __0, __1, __2, __temp0, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action215<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, lexer::Token<'input>, usize),
) -> SchemaDefinitionRecord {
    let __start0 = __1.2;
    let __end0 = __2.0;
    let __temp0 = __action135(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action18(input, ast, __0, __1, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action216<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (
        usize,
        alloc::vec::Vec<RootOperationTypeDefinitionRecord>,
        usize,
    ),
    __3: (usize, lexer::Token<'input>, usize),
) -> SchemaDefinitionRecord {
    let __start0 = __2.0;
    let __end0 = __2.2;
    let __temp0 = __action136(input, ast, __2);
    let __temp0 = (__start0, __temp0, __end0);
    __action18(input, ast, __0, __1, __temp0, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action217<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringLiteralId, usize),
    __1: (usize, DefinitionId, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action137(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action2(input, ast, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action218<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, DefinitionId, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action138(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action2(input, ast, __temp0, __0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action219<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringLiteralId, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> EnumValueDefinitionId {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action137(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action173(input, ast, __temp0, __1, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action220<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
    __1: (usize, IdRange<DirectiveId>, usize),
) -> EnumValueDefinitionId {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action138(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action173(input, ast, __temp0, __0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action221<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringLiteralId, usize),
    __1: (usize, StringId, usize),
    __2: (usize, Vec<()>, usize),
    __3: (usize, lexer::Token<'input>, usize),
    __4: (usize, TypeId, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action137(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action187(input, ast, __temp0, __1, __2, __3, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action222<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
    __1: (usize, Vec<()>, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action138(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action187(input, ast, __temp0, __0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action223<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringLiteralId, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action137(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action188(input, ast, __temp0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action224<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, TypeId, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action138(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action188(input, ast, __temp0, __0, __1, __2, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action225<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringLiteralId, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, ValueId, usize),
    __5: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action137(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action189(input, ast, __temp0, __1, __2, __3, __4, __5)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action226<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, TypeId, usize),
    __3: (usize, ValueId, usize),
    __4: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action138(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action189(input, ast, __temp0, __0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action227<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringLiteralId, usize),
    __1: (usize, StringId, usize),
    __2: (usize, lexer::Token<'input>, usize),
    __3: (usize, TypeId, usize),
    __4: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.2;
    let __temp0 = __action137(input, ast, __0);
    let __temp0 = (__start0, __temp0, __end0);
    __action190(input, ast, __temp0, __1, __2, __3, __4)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action228<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
    __1: (usize, lexer::Token<'input>, usize),
    __2: (usize, TypeId, usize),
    __3: (usize, IdRange<DirectiveId>, usize),
) {
    let __start0 = __0.0;
    let __end0 = __0.0;
    let __temp0 = __action138(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action190(input, ast, __temp0, __0, __1, __2, __3)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action229<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
    __3: (usize, Vec<StringId>, usize),
) -> UnionDefinitionRecord {
    let __start0 = __3.0;
    let __end0 = __3.2;
    let __temp0 = __action119(input, ast, __3);
    let __temp0 = (__start0, __temp0, __end0);
    __action180(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action230<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, StringId, usize),
    __2: (usize, IdRange<DirectiveId>, usize),
) -> UnionDefinitionRecord {
    let __start0 = __2.2;
    let __end0 = __2.2;
    let __temp0 = __action120(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action180(input, ast, __0, __1, __2, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action231<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, lexer::Token<'input>, usize),
) -> ValueId {
    let __start0 = __0.2;
    let __end0 = __1.0;
    let __temp0 = __action103(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action60(input, ast, __0, __temp0, __1)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action232<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, lexer::Token<'input>, usize),
    __1: (usize, alloc::vec::Vec<ValueId>, usize),
    __2: (usize, lexer::Token<'input>, usize),
) -> ValueId {
    let __start0 = __1.0;
    let __end0 = __1.2;
    let __temp0 = __action104(input, ast, __1);
    let __temp0 = (__start0, __temp0, __end0);
    __action60(input, ast, __0, __temp0, __2)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action233<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
) -> TypeId {
    let __start0 = __0.2;
    let __end0 = __0.2;
    let __temp0 = __action105(input, ast, &__start0, &__end0);
    let __temp0 = (__start0, __temp0, __end0);
    __action49(input, ast, __0, __temp0)
}

#[allow(unused_variables)]
#[allow(clippy::too_many_arguments)]
fn __action234<'input>(
    input: &'input str,
    ast: &mut TypeSystemAstWriter,
    __0: (usize, StringId, usize),
    __1: (usize, alloc::vec::Vec<WrappingType>, usize),
) -> TypeId {
    let __start0 = __1.0;
    let __end0 = __1.2;
    let __temp0 = __action106(input, ast, __1);
    let __temp0 = (__start0, __temp0, __end0);
    __action49(input, ast, __0, __temp0)
}
#[allow(clippy::type_complexity)]

pub trait __ToTriple<'input> {
    fn to_triple(
        value: Self,
    ) -> Result<
        (usize, lexer::Token<'input>, usize),
        __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
    >;
}

impl<'input> __ToTriple<'input> for (usize, lexer::Token<'input>, usize) {
    fn to_triple(
        value: Self,
    ) -> Result<
        (usize, lexer::Token<'input>, usize),
        __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
    > {
        Ok(value)
    }
}
impl<'input> __ToTriple<'input>
    for Result<(usize, lexer::Token<'input>, usize), crate::parser::AdditionalErrors>
{
    fn to_triple(
        value: Self,
    ) -> Result<
        (usize, lexer::Token<'input>, usize),
        __lalrpop_util::ParseError<usize, lexer::Token<'input>, crate::parser::AdditionalErrors>,
    > {
        match value {
            Ok(v) => Ok(v),
            Err(error) => Err(__lalrpop_util::ParseError::User { error }),
        }
    }
}
