Chapter 33

module Foreign.Marshal.Error (  
    throwIf,  throwIf_,  throwIfNeg,  throwIfNeg_,  throwIfNull,  void  
  ) where

:: (a -> Bool) error condition on the result of the IO action
-> (a -> String) computes an error message from erroneous results of the IO action
-> IO a the IO action to be executed
-> IO a

Execute an IO action, throwing a userError if the predicate yields True when applied to the result returned by the IO action. If no exception is raised, return the result of the computation.

throwIf_ :: (a -> Bool) -> (a -> String) -> IO a -> IO ()
Like throwIf, but discarding the result
throwIfNeg :: (Ord a, Num a) => (a -> String) -> IO a -> IO a
Guards against negative result values
throwIfNeg_ :: (Ord a, Num a) => (a -> String) -> IO a -> IO ()
Like throwIfNeg, but discarding the result
throwIfNull :: String -> IO (Ptr a) -> IO (Ptr a)
Guards against null pointers
void :: IO a -> IO ()
Discard the return value of an IO action