marshallVariant :: Variant a => a -> IO VARIANT
marshallVariant v = do
  x <- allocMemory (fromIntegral sizeofVARIANT)
  inVariant v (castPtr x)
  return x
marshallVariant :: Variant a => a -> IO VARIANT
marshallVariant v = do
  x <- allocMemory (fromIntegral sizeofVARIANT)
  inVariant v (castPtr x)
  return x
marshallVariant v = do
  x <- allocMemory (fromIntegral sizeofVARIANT)
  inVariant v (castPtr x)
  return x