0..33 @30 InterfaceTypeDefinition {
    description: None,
    name: "Pet",
    implements_interfaces: [],
    directives: [],
    fields: [
        18..31 @30 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
    ],
}
35..96 @30 ObjectTypeDefinition {
    description: None,
    name: "Dog",
    implements_interfaces: [
        "Pet",
    ],
    directives: [],
    fields: [
        63..76 @30 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        79..94 @30 FieldDefinition {
            description: None,
            name: "barkVolume",
            arguments: [],
            ty: Named(
                "Int",
            ),
            directives: [],
        },
    ],
}
98..159 @30 ObjectTypeDefinition {
    description: None,
    name: "Cat",
    implements_interfaces: [
        "Pet",
    ],
    directives: [],
    fields: [
        126..139 @30 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        142..157 @30 FieldDefinition {
            description: None,
            name: "meowVolume",
            arguments: [],
            ty: Named(
                "Int",
            ),
            directives: [],
        },
    ],
}
161..187 @30 UnionTypeDefinition {
    description: None,
    name: "CatOrDog",
    directives: [],
    members: [
        "Cat",
        "Dog",
    ],
}
189..218 @30 ObjectTypeDefinition {
    description: None,
    name: "Human",
    implements_interfaces: [],
    directives: [],
    fields: [
        204..216 @30 FieldDefinition {
            description: None,
            name: "pets",
            arguments: [],
            ty: List(
                NonNullNamed(
                    "Pet",
                ),
            ),
            directives: [],
        },
    ],
}
220..250 @30 UnionTypeDefinition {
    description: None,
    name: "DogOrHuman",
    directives: [],
    members: [
        "Dog",
        "Human",
    ],
}
327..392 @30 FragmentDefinition {
    name: "dogFragment",
    type_condition: "Dog",
    directives: [],
    selection_set: [
        InlineFragment(
            359..390 @30 InlineFragment {
                type_condition: Some(
                    "Dog",
                ),
                directives: [],
                selection_set: [
                    Field(
                        376..386 @30 Field {
                            alias: None,
                            name: "barkVolume",
                            arguments: [],
                            directives: [],
                            selection_set: [],
                        },
                    ),
                ],
            },
        ),
    ],
}
471..513 @30 FragmentDefinition {
    name: "petNameFragment",
    type_condition: "Pet",
    directives: [],
    selection_set: [
        Field(
            507..511 @30 Field {
                alias: None,
                name: "name",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
    ],
}
515..585 @30 FragmentDefinition {
    name: "interfaceWithinObjectFragment",
    type_condition: "Dog",
    directives: [],
    selection_set: [
        FragmentSpread(
            565..583 @30 FragmentSpread {
                fragment_name: "petNameFragment",
                directives: [],
            },
        ),
    ],
}
587..666 @30 FragmentDefinition {
    name: "catOrDogNameFragment",
    type_condition: "CatOrDog",
    directives: [],
    selection_set: [
        InlineFragment(
            633..664 @30 InlineFragment {
                type_condition: Some(
                    "Cat",
                ),
                directives: [],
                selection_set: [
                    Field(
                        650..660 @30 Field {
                            alias: None,
                            name: "meowVolume",
                            arguments: [],
                            directives: [],
                            selection_set: [],
                        },
                    ),
                ],
            },
        ),
    ],
}
668..737 @30 FragmentDefinition {
    name: "unionWithObjectFragment",
    type_condition: "Dog",
    directives: [],
    selection_set: [
        FragmentSpread(
            712..735 @30 FragmentSpread {
                fragment_name: "catOrDogNameFragment",
                directives: [],
            },
        ),
    ],
}
816..888 @30 FragmentDefinition {
    name: "petFragment",
    type_condition: "Pet",
    directives: [],
    selection_set: [
        Field(
            848..852 @30 Field {
                alias: None,
                name: "name",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
        InlineFragment(
            855..886 @30 InlineFragment {
                type_condition: Some(
                    "Dog",
                ),
                directives: [],
                selection_set: [
                    Field(
                        872..882 @30 Field {
                            alias: None,
                            name: "barkVolume",
                            arguments: [],
                            directives: [],
                            selection_set: [],
                        },
                    ),
                ],
            },
        ),
    ],
}
890..965 @30 FragmentDefinition {
    name: "catOrDogFragment",
    type_condition: "CatOrDog",
    directives: [],
    selection_set: [
        InlineFragment(
            932..963 @30 InlineFragment {
                type_condition: Some(
                    "Cat",
                ),
                directives: [],
                selection_set: [
                    Field(
                        949..959 @30 Field {
                            alias: None,
                            name: "meowVolume",
                            arguments: [],
                            directives: [],
                            selection_set: [],
                        },
                    ),
                ],
            },
        ),
    ],
}
1046..1108 @30 FragmentDefinition {
    name: "unionWithInterface",
    type_condition: "Pet",
    directives: [],
    selection_set: [
        FragmentSpread(
            1085..1106 @30 FragmentSpread {
                fragment_name: "dogOrHumanFragment",
                directives: [],
            },
        ),
    ],
}
1110..1189 @30 FragmentDefinition {
    name: "dogOrHumanFragment",
    type_condition: "DogOrHuman",
    directives: [],
    selection_set: [
        InlineFragment(
            1156..1187 @30 InlineFragment {
                type_condition: Some(
                    "Dog",
                ),
                directives: [],
                selection_set: [
                    Field(
                        1173..1183 @30 Field {
                            alias: None,
                            name: "barkVolume",
                            arguments: [],
                            directives: [],
                            selection_set: [],
                        },
                    ),
                ],
            },
        ),
    ],
}
1319..1347 @30 InterfaceTypeDefinition {
    description: None,
    name: "Node",
    implements_interfaces: [],
    directives: [],
    fields: [
        1338..1345 @30 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "ID",
            ),
            directives: [],
        },
    ],
}
1349..1411 @30 InterfaceTypeDefinition {
    description: None,
    name: "Resource",
    implements_interfaces: [
        "Node",
    ],
    directives: [],
    fields: [
        1388..1395 @30 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "ID",
            ),
            directives: [],
        },
        1398..1409 @30 FieldDefinition {
            description: None,
            name: "url",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
1476..1552 @30 ObjectTypeDefinition {
    description: None,
    name: "ConcreteResource",
    implements_interfaces: [
        "Resource",
        "Node",
    ],
    directives: [],
    fields: [
        1529..1536 @30 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "ID",
            ),
            directives: [],
        },
        1539..1550 @30 FieldDefinition {
            description: None,
            name: "url",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
1554..1619 @30 FragmentDefinition {
    name: "interfaceWithInterface",
    type_condition: "Node",
    directives: [],
    selection_set: [
        FragmentSpread(
            1598..1617 @30 FragmentSpread {
                fragment_name: "resourceFragment",
                directives: [],
            },
        ),
    ],
}
1621..1668 @30 FragmentDefinition {
    name: "resourceFragment",
    type_condition: "Resource",
    directives: [],
    selection_set: [
        Field(
            1663..1666 @30 Field {
                alias: None,
                name: "url",
                arguments: [],
                directives: [],
                selection_set: [],
            },
        ),
    ],
}
1711..1757 @30 ObjectTypeDefinition {
    description: None,
    name: "Query",
    implements_interfaces: [],
    directives: [],
    fields: [
        1726..1734 @30 FieldDefinition {
            description: None,
            name: "pet",
            arguments: [],
            ty: Named(
                "Pet",
            ),
            directives: [],
        },
        1737..1755 @30 FieldDefinition {
            description: None,
            name: "resource",
            arguments: [],
            ty: Named(
                "Resource",
            ),
            directives: [],
        },
    ],
}
1759..2068 @30 OperationDefinition {
    operation_type: Query,
    name: Some(
        "UseAllFragments",
    ),
    variables: [],
    directives: [],
    selection_set: [
        Field(
            1785..1956 @30 Field {
                alias: None,
                name: "pet",
                arguments: [],
                directives: [],
                selection_set: [
                    FragmentSpread(
                        1795..1810 @30 FragmentSpread {
                            fragment_name: "dogFragment",
                            directives: [],
                        },
                    ),
                    FragmentSpread(
                        1815..1848 @30 FragmentSpread {
                            fragment_name: "interfaceWithinObjectFragment",
                            directives: [],
                        },
                    ),
                    FragmentSpread(
                        1853..1880 @30 FragmentSpread {
                            fragment_name: "unionWithObjectFragment",
                            directives: [],
                        },
                    ),
                    FragmentSpread(
                        1885..1900 @30 FragmentSpread {
                            fragment_name: "petFragment",
                            directives: [],
                        },
                    ),
                    FragmentSpread(
                        1905..1925 @30 FragmentSpread {
                            fragment_name: "catOrDogFragment",
                            directives: [],
                        },
                    ),
                    FragmentSpread(
                        1930..1952 @30 FragmentSpread {
                            fragment_name: "unionWithInterface",
                            directives: [],
                        },
                    ),
                ],
            },
        ),
        Field(
            1959..2066 @30 Field {
                alias: None,
                name: "resource",
                arguments: [],
                directives: [],
                selection_set: [
                    FragmentSpread(
                        1974..1999 @30 FragmentSpread {
                            fragment_name: "interfaceWithInterface",
                            directives: [],
                        },
                    ),
                    InlineFragment(
                        2004..2062 @30 InlineFragment {
                            type_condition: None,
                            directives: [
                                2008..2023 @30 Directive {
                                    name: "skip",
                                    arguments: [
                                        2014..2022 @30 Argument {
                                            name: "if",
                                            value: 2018..2022 @30 Boolean(
                                                true,
                                            ),
                                        },
                                    ],
                                },
                            ],
                            selection_set: [
                                Field(
                                    2032..2056 @30 Field {
                                        alias: Some(
                                            "urlInInlineFragment",
                                        ),
                                        name: "url",
                                        arguments: [],
                                        directives: [],
                                        selection_set: [],
                                    },
                                ),
                            ],
                        },
                    ),
                ],
            },
        ),
    ],
}

