readVariant :: Variant a => VARIANT -> IO a
readVariant ptr = do
  ptr' <- readPtr ptr
  resVariant ptr'
readVariant :: Variant a => VARIANT -> IO a
readVariant ptr = do
  ptr' <- readPtr ptr
  resVariant ptr'
readVariant ptr = do
  ptr' <- readPtr ptr
  resVariant ptr'