Finally, contracts are overwhelming, and it's also a feature of D that nobody has seen before. When someone new to D encounters a contract in the docs, they no longer trust their ability to usefully interpret the documentation, and almost certainly become confused; nobody expects to
see an 'if' statement in a function declaration.
I think that's a shame. The contract usually has no impact on using the function, or how it should be understood, is just applies some
limitations to it's genericity.
I think contracts should be disconnected and listed separately, as additional information, or with some subtext that makes it obvious
what that often confusing bit of text actually means.

Ironically, the string and algorithm functions are probably the worst offenders, but coincidentally, there is a high chance that these are the first functions anyone will ever reach for, so they present a
terrible first impression.

I think you mean constraints, not contracts.

Reply via email to