# Types, directives, fragments, and operations each have their own namespace. type A @A { a: Int } type Query { a: A } directive @A on OBJECT fragment A on A { a } query A { a { ...A } }