Well, what I'd really want to document here's isn't necessarily the nitty-gritty of the idiom and why it is used (that's a thing for api authors, but these docs are targeted at api consumers), but more just what it actually means at a glance.

That line of code simply means "pred must be a function that takes two arguments of the same type as the front of needle and haystack"

The binaryFun helper means you can pass your own function, callable object, or string! The string is one of those "a == b" style things you sometimes see in Phobos.

I could write on that line of code for probably a full page from several perspectives - there's quite a lot going on there.

But the user of findSkip, when reading that doc, wants to simply know that constraint is about the predicate function, that it must take those arguments. Once you get used to the pattern, you'll know what it means, but first-time readers would surely appreciate a translation right there... and examples of what kind of compiler errors will result if you make a mistake.

(And I think it also must return bool, though the constraint doesn't say that... nor does the prose... nor do any of the examples get into it. Gah, so either I'm wrong or that's an undocumented requirement. is(typeof()) could check the return value though.)

Reply via email to