In general you cannot extend a generic type based on a specific type parameter. You can only extend based on a protocol. But in your particular case, that gives us an out. Just don't require an Array. Require a CollectionType.