This idea seemed very familiar. In fact I worked on it myself. Maybe you can take a look at what's already been done:
- My inspiration: Swift.org - Conditional Conformance in the Standard Library
- My response thread: What makes a good lazy procedure? And how to do it?
- And my attempt: SectionedSequences on GitHub
Hope these'll help.