According to the D spec:
 
"Private means that only members of the enclosing class can access the member, or members and functions in the same module as the enclosing class."
 
However:
 
[mod.d]
--------------
module mod;
private int x;
 
private class A
{}
 
[main.d]
--------------
import mod;
 
void main()
{
    writefln(x);    // Illegal, as it should be
    A a=new A;      // Shouldn't this be illegal?
}
 
Private variables in modules are inaccessible, but private classes are public..?