There's a bug with access masks and certain features of the language.
The default access mask is set to 1 on creation. Right after that, some built-in features are registered, such as delegates.
When you create a module with an access mask that does not include 1, attempting to use any delegate will cause an assert to be hit.
Some code will simply fail to compile, but other code, such as a class constructor will cause a crash instead.
This project (VS2013) shows the problem in question. Running the script will cause a null pointer exception.
https://dl.dropboxusercontent.com/u/46048979/AS_AccessMaskBug2.rar
Working around this requires all modules to share 1 as access, which can interfere with the design of application APIs. I was trying to eliminate 1 as a common mask, and using a combined bitmask instead, which would allow me to use the access mask as a zero based index in some cases.
The documentation on access masks does not mention this, so assume it is indeed a bug.