readVarEnum :: VARIANT -> IO VARENUM
readVarEnum v = do
  vt <- readVariantTag v
  return (toEnum (fromIntegral vt))
readVarEnum :: VARIANT -> IO VARENUM
readVarEnum v = do
  vt <- readVariantTag v
  return (toEnum (fromIntegral vt))
readVarEnum v = do
  vt <- readVariantTag v
  return (toEnum (fromIntegral vt))