On Wednesday, 11 February 2015 at 08:00:54 UTC, Jakob Ovrum wrote:
[snip]
Putting the complexity of the container concept aside; I think
we should factor out the concept checkers from
std.range.primitives and put them in std.range.concept and
establish a convention of using modules named std.*.concept for
concept checkers in the future. The consistency gained by such
a convention makes type concepts easier to understand and
commonly used module names easier to remember. If we do it now,
there is no breakage, as the splitting of std.range has not yet
been released: hence the otherwise clumsy timing of this
suggestion.
[snip]
+1. Makes a lot of sense to do it this way.
I prefer "concept" over "trait". I think of traits as more
primitive building blocks. With a trait you are querying
information about a type. With a concept you are fitting a type
to its requirements.