types with self type may not inherit other parameterized types