Why `genPolyType`?