This is pattern is common, and is better encapsulated with an the extractor / constructor `GenPolyType`.