resSafe' :: Variant a => a -> ArgRes (SafeArray a)
resSafe' vt p = do
            x <- readVarSAFEARRAY (castPtr p) (fromIntegral (fromEnum (vtEltType vt)))
            s <- doThenFree free (readSAFEARRAY True) (castPtr x)
            return (SA s)
resSafe' :: Variant a => a -> ArgRes (SafeArray a)
resSafe' vt p = do
            x <- readVarSAFEARRAY (castPtr p) (fromIntegral (fromEnum (vtEltType vt)))
            s <- doThenFree free (readSAFEARRAY True) (castPtr x)
            return (SA s)
resSafe' vt p = do
            x <- readVarSAFEARRAY (castPtr p) (fromIntegral (fromEnum (vtEltType vt)))
            s <- doThenFree free (readSAFEARRAY True) (castPtr x)
            return (SA s)