transformation assigntonullowner;

modeltype ECORE uses 'http://www.eclipse.org/emf/2002/Ecore';

mapping main(in model: ecore::EPackage): ecore::EPackage {
    init {
        result := object ecore::EPackage {
        	name := 'pack';
            eClassifiers += object ecore::EClass { name := 'cls1'; };
            eClassifiers += makeClass(result);
        }
    }
}

mapping makeClass(inout p: ecore::EPackage): ecore::EClass {
	init {
		var cls := object ecore::EClass { name := 'cls2'; };
		p.eClassifiers += cls;
		result := cls;
	}
}
