I have released MTASC Beta2. One of the major changes was to drop naming convention on package and class names. Like ocaml, the compiler was enable to distinguish as soon as lexing the difference between a class path <em>( ident . ) * class</em> and a value , using "ident = [a-z _ ][a-Z A-Z 0-9 _]* and class = [A-Z] [0-9 a-z A-Z _]+" with the exception of [A-Z][A-Z 0-9 _]* being valid identifiers for values. This was troublesome for too much people having different conventions with big existing codebase so I drop that, and had to allow some kind of delayed package loading : if you have a sequence a.b.c.d.e you can have a package a.b with class c and access to static field d.e, and if you add to this the fact that "a" can be a name resolved by an import... Well it works now, although import wildcards are not yet supported because it needs some directory scanning. Will do that later.