March 07, 2012
module A;

private struct A { }
private A a;
private mixin template magic() { }
private void foo() { }

//---------------------

module B;

import A;

void main() {
  A b;  // #1 works
  b = a; // #2 ERROR
  foo();  // #3 ERROR
}

struct B{

 mixin magic;  // #4 works
}


What's the point of declaring struct A private if it's not going to behave as such?  is this another bug in DMD?  I want template mixin magic to not be accessible outside module A.  Would that be possible?