Iterable<String> get leaves { if (generics.isEmpty) return [baseType]; final leaves = <String>{}; for (final element in generics) { leaves.addAll(element.leaves); } return leaves; }