https://www.grafast.org/grafast/polymorphism/
Abstract types & polymorphism | Grafast
GraphQL supports two abstract types suitable for usage in output: interfaces and
abstract typespolymorphism
https://edukatte.com/computer-science/abstract-data-types/
Abstract Data Types
This addresses M1SO1 of the CS Unit 2 syllabus
abstract data types