Having a difficult choice between unplasant cast to get a void * into an enumeration type and "Something's wrong here" double cast I decided for the latter. At least it does not crash when the legal value of zero is passed as the argument.