added fakeEnum abstract with_type inference