readVariants2 :: ArgRes a -> ArgRes b -> VARIANT  -> IO (a,b)
readVariants2 f g p
      = do y <- g p
           x <- f (p `addNCastPtr` sizeofVARIANT)
           return (x,y)
readVariants2 :: ArgRes a -> ArgRes b -> VARIANT  -> IO (a,b)
readVariants2 f g p
      = do y <- g p
           x <- f (p `addNCastPtr` sizeofVARIANT)
           return (x,y)
readVariants2 f g p
      = do y <- g p
           x <- f (p `addNCastPtr` sizeofVARIANT)
           return (x,y)