0..25 @20 ObjectTypeDefinition {
    description: None,
    name: "Query",
    implements_interfaces: [],
    directives: [],
    fields: [
        15..23 @20 FieldDefinition {
            description: None,
            name: "pet",
            arguments: [],
            ty: Named(
                "Dog",
            ),
            directives: [],
        },
    ],
}
27..74 @20 ObjectTypeDefinition {
    description: None,
    name: "Dog",
    implements_interfaces: [],
    directives: [],
    fields: [
        40..56 @20 FieldDefinition {
            description: None,
            name: "nickname",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        59..72 @20 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
    ],
}
76..175 @20 OperationDefinition {
    operation_type: Query,
    name: Some(
        "queryPupper",
    ),
    variables: [],
    directives: [],
    selection_set: [
        Field(
            98..173 @20 Field {
                alias: None,
                name: "pet",
                arguments: [],
                directives: [],
                selection_set: [
                    FragmentSpread(
                        108..131 @20 FragmentSpread {
                            fragment_name: "mergeIdenticalFields",
                            directives: [],
                        },
                    ),
                    FragmentSpread(
                        136..169 @20 FragmentSpread {
                            fragment_name: "mergeIdenticalAliasesAndFields",
                            directives: [],
                        },
                    ),
                ],
            },
        ),
    ],
}
177..231 @20 FragmentDefinition {
    name: "mergeIdenticalFields",
    type_condition: "Dog",
    directives: [],
    selection_set: [
        Field(
            218..222 @20 Field {
                alias: None,
                name: "name",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
        Field(
            225..229 @20 Field {
                alias: None,
                name: "name",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
    ],
}
233..319 @20 FragmentDefinition {
    name: "mergeIdenticalAliasesAndFields",
    type_condition: "Dog",
    directives: [],
    selection_set: [
        Field(
            284..299 @20 Field {
                alias: Some(
                    "otherName",
                ),
                name: "name",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
        Field(
            302..317 @20 Field {
                alias: Some(
                    "otherName",
                ),
                name: "name",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
    ],
}

