You compare with `_model` here, but you never update `_model`: You just initialize it once. This would be fine for a pred with `equivalence`, but you sold `byGroup` as being able to return, say "Groups of sorted items with `a <= b`". However, with the current scheme (I think, not actually tested), you'll only return groups where every item is bigger than the *first*, not the previous.

Could you add a sorted unittest? Say:

```D
[1, 3, 2, 4, 5, 1].byGroup!"a < b"().equal([[1, 3], [2, 4, 5], [1]]);
```

I *think* this fails with the current scheme...