move @:enum implementation to compiler