On 2016-09-05 11:06, Andrei Alexandrescu wrote:
That is correct (and btw the example should use the member call syntax). But touching a type's module is modifying the type. -- Andrei
Not sure what that has to do with anything. Example: module foo; struct Foo { int[] array = [1]; } int front(Foo foo) { return foo.array[0]; } module algo; void algorithm(Range)(Range range) { auto e = range.front; // Error: no property 'front' for type 'Foo' } module main import foo; import algo; void main() { algorithm(Foo()); } -- /Jacob Carlborg