DefinitionTree {
    definitions: [
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 0,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 5,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 10,
                type_definition: Tuple {
                    left_parenthesis: 12,
                    type_definitions: CommaSeparated {
                        inner: [
                            Union(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 13,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 15,
                                                value: "B",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 17,
                                                value: "C",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                            Union(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 20,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Parenthesized {
                                        left_parenthesis: 22,
                                        type_definition: Intersection(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 23,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 25,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 26,
                                    },
                                ],
                            ),
                            Union(
                                [
                                    Parenthesized {
                                        left_parenthesis: 29,
                                        type_definition: Intersection(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 30,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 32,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 33,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 35,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            18,
                            27,
                        ],
                    },
                    right_parenthesis: 36,
                },
                semicolon: 37,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 39,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 44,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 49,
                type_definition: Tuple {
                    left_parenthesis: 51,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 52,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Union(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 55,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Tuple {
                                        left_parenthesis: 57,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 58,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 59,
                                    },
                                ],
                            ),
                            Union(
                                [
                                    Tuple {
                                        left_parenthesis: 62,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 63,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 64,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 66,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            53,
                            60,
                        ],
                    },
                    right_parenthesis: 67,
                },
                semicolon: 68,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 70,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 75,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 80,
                type_definition: Tuple {
                    left_parenthesis: 82,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 83,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 86,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Union(
                                [
                                    Tuple {
                                        left_parenthesis: 89,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 90,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 91,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 93,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            84,
                            87,
                        ],
                    },
                    right_parenthesis: 94,
                },
                semicolon: 95,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 97,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 102,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 107,
                type_definition: Tuple {
                    left_parenthesis: 109,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 110,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 113,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 116,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                        ],
                        commas: [
                            111,
                            114,
                        ],
                    },
                    right_parenthesis: 117,
                },
                semicolon: 118,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 120,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 125,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 130,
                type_definition: Tuple {
                    left_parenthesis: 132,
                    type_definitions: CommaSeparated {
                        inner: [
                            Intersection(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 133,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 135,
                                                value: "B",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 137,
                                                value: "C",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                            Intersection(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 140,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Parenthesized {
                                        left_parenthesis: 142,
                                        type_definition: Union(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 143,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 145,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 146,
                                    },
                                ],
                            ),
                            Intersection(
                                [
                                    Parenthesized {
                                        left_parenthesis: 149,
                                        type_definition: Union(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 150,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 152,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 153,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 155,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            138,
                            147,
                        ],
                    },
                    right_parenthesis: 156,
                },
                semicolon: 157,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 159,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 164,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 169,
                type_definition: Tuple {
                    left_parenthesis: 171,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 172,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Intersection(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 175,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Tuple {
                                        left_parenthesis: 177,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 178,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 179,
                                    },
                                ],
                            ),
                            Intersection(
                                [
                                    Tuple {
                                        left_parenthesis: 182,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 183,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 184,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 186,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            173,
                            180,
                        ],
                    },
                    right_parenthesis: 187,
                },
                semicolon: 188,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 190,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 195,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 200,
                type_definition: Tuple {
                    left_parenthesis: 202,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 203,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 206,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Intersection(
                                [
                                    Tuple {
                                        left_parenthesis: 209,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 210,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 211,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 213,
                                                value: "A",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            204,
                            207,
                        ],
                    },
                    right_parenthesis: 214,
                },
                semicolon: 215,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 217,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 222,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 227,
                type_definition: Tuple {
                    left_parenthesis: 229,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 230,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 233,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 236,
                                        value: "A",
                                    },
                                    templates: None,
                                },
                            ),
                        ],
                        commas: [
                            231,
                            234,
                        ],
                    },
                    right_parenthesis: 237,
                },
                semicolon: 238,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 240,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 245,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 250,
                type_definition: Tuple {
                    left_parenthesis: 252,
                    type_definitions: CommaSeparated {
                        inner: [
                            Union(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 253,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 254,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 255,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 258,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 261,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 262,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 267,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 271,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                265,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 274,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 276,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            256,
                                                            259,
                                                        ],
                                                    },
                                                    greater_than: 279,
                                                },
                                            ),
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 281,
                                                value: "B",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 283,
                                                value: "C",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                            Union(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 286,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 287,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 288,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 291,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 294,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 295,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 300,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 304,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                298,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 307,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 309,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            289,
                                                            292,
                                                        ],
                                                    },
                                                    greater_than: 312,
                                                },
                                            ),
                                        },
                                    ),
                                    Parenthesized {
                                        left_parenthesis: 314,
                                        type_definition: Intersection(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 315,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 317,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 318,
                                    },
                                ],
                            ),
                            Union(
                                [
                                    Parenthesized {
                                        left_parenthesis: 321,
                                        type_definition: Intersection(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 322,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 324,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 325,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 327,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 328,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 329,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 332,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 335,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 336,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 341,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 345,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                339,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 348,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 350,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            330,
                                                            333,
                                                        ],
                                                    },
                                                    greater_than: 353,
                                                },
                                            ),
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            284,
                            319,
                        ],
                    },
                    right_parenthesis: 354,
                },
                semicolon: 355,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 357,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 362,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 367,
                type_definition: Tuple {
                    left_parenthesis: 369,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 370,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 371,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 372,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 375,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 378,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 379,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 384,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 388,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        382,
                                                                    ],
                                                                },
                                                                right_parenthesis: 391,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 393,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    373,
                                                    376,
                                                ],
                                            },
                                            greater_than: 396,
                                        },
                                    ),
                                },
                            ),
                            Union(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 399,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 400,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 401,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 404,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 407,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 408,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 413,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 417,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                411,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 420,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 422,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            402,
                                                            405,
                                                        ],
                                                    },
                                                    greater_than: 425,
                                                },
                                            ),
                                        },
                                    ),
                                    Tuple {
                                        left_parenthesis: 427,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 428,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 429,
                                    },
                                ],
                            ),
                            Union(
                                [
                                    Tuple {
                                        left_parenthesis: 432,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 433,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 434,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 436,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 437,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 438,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 441,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 444,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 445,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 450,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 454,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                448,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 457,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 459,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            439,
                                                            442,
                                                        ],
                                                    },
                                                    greater_than: 462,
                                                },
                                            ),
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            397,
                            430,
                        ],
                    },
                    right_parenthesis: 463,
                },
                semicolon: 464,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 466,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 471,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 476,
                type_definition: Tuple {
                    left_parenthesis: 478,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 479,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 480,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 481,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 484,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 487,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 488,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 493,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 497,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        491,
                                                                    ],
                                                                },
                                                                right_parenthesis: 500,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 502,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    482,
                                                    485,
                                                ],
                                            },
                                            greater_than: 505,
                                        },
                                    ),
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 508,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 509,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 510,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 513,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 516,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 517,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 522,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 526,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        520,
                                                                    ],
                                                                },
                                                                right_parenthesis: 529,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 531,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    511,
                                                    514,
                                                ],
                                            },
                                            greater_than: 534,
                                        },
                                    ),
                                },
                            ),
                            Union(
                                [
                                    Tuple {
                                        left_parenthesis: 537,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 538,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 539,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 541,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 542,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 543,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 546,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 549,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 550,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 555,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 559,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                553,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 562,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 564,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            544,
                                                            547,
                                                        ],
                                                    },
                                                    greater_than: 567,
                                                },
                                            ),
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            506,
                            535,
                        ],
                    },
                    right_parenthesis: 568,
                },
                semicolon: 569,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 571,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 576,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 581,
                type_definition: Tuple {
                    left_parenthesis: 583,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 584,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 585,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 586,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 589,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 592,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 593,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 598,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 602,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        596,
                                                                    ],
                                                                },
                                                                right_parenthesis: 605,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 607,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    587,
                                                    590,
                                                ],
                                            },
                                            greater_than: 610,
                                        },
                                    ),
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 613,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 614,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 615,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 618,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 621,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 622,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 627,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 631,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        625,
                                                                    ],
                                                                },
                                                                right_parenthesis: 634,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 636,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    616,
                                                    619,
                                                ],
                                            },
                                            greater_than: 639,
                                        },
                                    ),
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 642,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 643,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 644,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 647,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 650,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 651,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 656,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 660,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        654,
                                                                    ],
                                                                },
                                                                right_parenthesis: 663,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 665,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    645,
                                                    648,
                                                ],
                                            },
                                            greater_than: 668,
                                        },
                                    ),
                                },
                            ),
                        ],
                        commas: [
                            611,
                            640,
                        ],
                    },
                    right_parenthesis: 669,
                },
                semicolon: 670,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 672,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 677,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 682,
                type_definition: Tuple {
                    left_parenthesis: 684,
                    type_definitions: CommaSeparated {
                        inner: [
                            Intersection(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 685,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 686,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 687,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 690,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 693,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 694,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 699,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 703,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                697,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 706,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 708,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            688,
                                                            691,
                                                        ],
                                                    },
                                                    greater_than: 711,
                                                },
                                            ),
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 713,
                                                value: "B",
                                            },
                                            templates: None,
                                        },
                                    ),
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 715,
                                                value: "C",
                                            },
                                            templates: None,
                                        },
                                    ),
                                ],
                            ),
                            Intersection(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 718,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 719,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 720,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 723,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 726,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 727,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 732,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 736,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                730,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 739,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 741,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            721,
                                                            724,
                                                        ],
                                                    },
                                                    greater_than: 744,
                                                },
                                            ),
                                        },
                                    ),
                                    Parenthesized {
                                        left_parenthesis: 746,
                                        type_definition: Union(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 747,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 749,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 750,
                                    },
                                ],
                            ),
                            Intersection(
                                [
                                    Parenthesized {
                                        left_parenthesis: 753,
                                        type_definition: Union(
                                            [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 754,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 756,
                                                            value: "C",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                        ),
                                        right_parenthesis: 757,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 759,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 760,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 761,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 764,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 767,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 768,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 773,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 777,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                771,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 780,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 782,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            762,
                                                            765,
                                                        ],
                                                    },
                                                    greater_than: 785,
                                                },
                                            ),
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            716,
                            751,
                        ],
                    },
                    right_parenthesis: 786,
                },
                semicolon: 787,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 789,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 794,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 799,
                type_definition: Tuple {
                    left_parenthesis: 801,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 802,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 803,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 804,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 807,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 810,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 811,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 816,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 820,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        814,
                                                                    ],
                                                                },
                                                                right_parenthesis: 823,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 825,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    805,
                                                    808,
                                                ],
                                            },
                                            greater_than: 828,
                                        },
                                    ),
                                },
                            ),
                            Intersection(
                                [
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 831,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 832,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 833,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 836,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 839,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 840,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 845,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 849,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                843,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 852,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 854,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            834,
                                                            837,
                                                        ],
                                                    },
                                                    greater_than: 857,
                                                },
                                            ),
                                        },
                                    ),
                                    Tuple {
                                        left_parenthesis: 859,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 860,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 861,
                                    },
                                ],
                            ),
                            Intersection(
                                [
                                    Tuple {
                                        left_parenthesis: 864,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 865,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 866,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 868,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 869,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 870,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 873,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 876,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 877,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 882,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 886,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                880,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 889,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 891,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            871,
                                                            874,
                                                        ],
                                                    },
                                                    greater_than: 894,
                                                },
                                            ),
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            829,
                            862,
                        ],
                    },
                    right_parenthesis: 895,
                },
                semicolon: 896,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 898,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 903,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 908,
                type_definition: Tuple {
                    left_parenthesis: 910,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 911,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 912,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 913,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 916,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 919,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 920,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 925,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 929,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        923,
                                                                    ],
                                                                },
                                                                right_parenthesis: 932,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 934,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    914,
                                                    917,
                                                ],
                                            },
                                            greater_than: 937,
                                        },
                                    ),
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 940,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 941,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 942,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 945,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 948,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 949,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 954,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 958,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        952,
                                                                    ],
                                                                },
                                                                right_parenthesis: 961,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 963,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    943,
                                                    946,
                                                ],
                                            },
                                            greater_than: 966,
                                        },
                                    ),
                                },
                            ),
                            Intersection(
                                [
                                    Tuple {
                                        left_parenthesis: 969,
                                        type_definitions: CommaSeparated {
                                            inner: [
                                                Identifier(
                                                    TemplatedIdentifier {
                                                        name: Identifier {
                                                            position: 970,
                                                            value: "B",
                                                        },
                                                        templates: None,
                                                    },
                                                ),
                                            ],
                                            commas: [],
                                        },
                                        right_parenthesis: 971,
                                    },
                                    Identifier(
                                        TemplatedIdentifier {
                                            name: Identifier {
                                                position: 973,
                                                value: "A",
                                            },
                                            templates: Some(
                                                TypeTemplateGroupDefinition {
                                                    comments: CommentGroup {
                                                        comments: [],
                                                    },
                                                    less_than: 974,
                                                    members: CommaSeparated {
                                                        inner: [
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 975,
                                                                        value: "B",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 978,
                                                                        value: "C",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                            Intersection(
                                                                [
                                                                    Tuple {
                                                                        left_parenthesis: 981,
                                                                        type_definitions: CommaSeparated {
                                                                            inner: [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 982,
                                                                                            value: "Foo",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Union(
                                                                                    [
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 987,
                                                                                                    value: "Bar",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                        Identifier(
                                                                                            TemplatedIdentifier {
                                                                                                name: Identifier {
                                                                                                    position: 991,
                                                                                                    value: "Baz",
                                                                                                },
                                                                                                templates: None,
                                                                                            },
                                                                                        ),
                                                                                    ],
                                                                                ),
                                                                            ],
                                                                            commas: [
                                                                                985,
                                                                            ],
                                                                        },
                                                                        right_parenthesis: 994,
                                                                    },
                                                                    Identifier(
                                                                        TemplatedIdentifier {
                                                                            name: Identifier {
                                                                                position: 996,
                                                                                value: "Qux",
                                                                            },
                                                                            templates: None,
                                                                        },
                                                                    ),
                                                                ],
                                                            ),
                                                        ],
                                                        commas: [
                                                            976,
                                                            979,
                                                        ],
                                                    },
                                                    greater_than: 999,
                                                },
                                            ),
                                        },
                                    ),
                                ],
                            ),
                        ],
                        commas: [
                            938,
                            967,
                        ],
                    },
                    right_parenthesis: 1000,
                },
                semicolon: 1001,
            },
        ),
        TypeAlias(
            TypeAliasDefinition {
                type: Keyword {
                    value: "type",
                    position: 1003,
                },
                name: TemplatedIdentifier {
                    name: Identifier {
                        position: 1008,
                        value: "test",
                    },
                    templates: None,
                },
                equals: 1013,
                type_definition: Tuple {
                    left_parenthesis: 1015,
                    type_definitions: CommaSeparated {
                        inner: [
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 1016,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 1017,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 1018,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 1021,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 1024,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 1025,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 1030,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 1034,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        1028,
                                                                    ],
                                                                },
                                                                right_parenthesis: 1037,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 1039,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    1019,
                                                    1022,
                                                ],
                                            },
                                            greater_than: 1042,
                                        },
                                    ),
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 1045,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 1046,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 1047,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 1050,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 1053,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 1054,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 1059,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 1063,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        1057,
                                                                    ],
                                                                },
                                                                right_parenthesis: 1066,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 1068,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    1048,
                                                    1051,
                                                ],
                                            },
                                            greater_than: 1071,
                                        },
                                    ),
                                },
                            ),
                            Identifier(
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 1074,
                                        value: "A",
                                    },
                                    templates: Some(
                                        TypeTemplateGroupDefinition {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            less_than: 1075,
                                            members: CommaSeparated {
                                                inner: [
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 1076,
                                                                value: "B",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Identifier(
                                                        TemplatedIdentifier {
                                                            name: Identifier {
                                                                position: 1079,
                                                                value: "C",
                                                            },
                                                            templates: None,
                                                        },
                                                    ),
                                                    Intersection(
                                                        [
                                                            Tuple {
                                                                left_parenthesis: 1082,
                                                                type_definitions: CommaSeparated {
                                                                    inner: [
                                                                        Identifier(
                                                                            TemplatedIdentifier {
                                                                                name: Identifier {
                                                                                    position: 1083,
                                                                                    value: "Foo",
                                                                                },
                                                                                templates: None,
                                                                            },
                                                                        ),
                                                                        Union(
                                                                            [
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 1088,
                                                                                            value: "Bar",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                                Identifier(
                                                                                    TemplatedIdentifier {
                                                                                        name: Identifier {
                                                                                            position: 1092,
                                                                                            value: "Baz",
                                                                                        },
                                                                                        templates: None,
                                                                                    },
                                                                                ),
                                                                            ],
                                                                        ),
                                                                    ],
                                                                    commas: [
                                                                        1086,
                                                                    ],
                                                                },
                                                                right_parenthesis: 1095,
                                                            },
                                                            Identifier(
                                                                TemplatedIdentifier {
                                                                    name: Identifier {
                                                                        position: 1097,
                                                                        value: "Qux",
                                                                    },
                                                                    templates: None,
                                                                },
                                                            ),
                                                        ],
                                                    ),
                                                ],
                                                commas: [
                                                    1077,
                                                    1080,
                                                ],
                                            },
                                            greater_than: 1100,
                                        },
                                    ),
                                },
                            ),
                        ],
                        commas: [
                            1043,
                            1072,
                        ],
                    },
                    right_parenthesis: 1101,
                },
                semicolon: 1102,
            },
        ),
    ],
    eof: 1104,
}