`graphql.language.ast` makes extensive use of `__slots__` but `__weakref__` is given, breaking the `weakref` module. * [Python Documentation about `__slots__`](https://docs.python.org/3/reference/datamodel.html#slots) The use of `__slots__` without `__weakref__` makes it very hard to track data about AST nodes in a non-leaky way.