protected override string Register(StatementCompileTimeServices services)
        {
            if (services.ClassProvidedCompileTimeResolver.ResolveClass(className) != null) {
                throw new ExprValidationException("Class '" + className + "' has already been declared");
            }

            var classProvided = new ClassProvided(classProvidedPrecompileResult.Assembly, className);
            var visibility = services.ModuleVisibilityRules.GetAccessModifierExpression(Base, className);
            classProvided.ModuleName = Base.ModuleName;
            classProvided.Visibility = visibility;
            classProvided.LoadClasses(services.ParentClassLoader);
            services.ClassProvidedCompileTimeRegistry.NewClass(classProvided);
            return className;
        }
 public void RegisterClass(string className, ClassProvided meta)
 {
     moduleClassProvideds.Put(className, meta);
     meta.LoadClasses(parentClassLoader);
 }