type A @A { a: Int } type Query { a: A } directive @A on OBJECT fragment A on A { a } query A { a { ...A } }