X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FMarshal%2FError.hs;h=46fa2b7b32cc566bbe3968eba795af259a73ce97;hb=6bbd4780e49f69a08ae373b5a07bd15b037013f7;hp=5b43dfc752b4af41bc739ad68f0a163b900caada;hpb=9fa9bc17072a58c0bae2cce4764d38677e96ac29;p=ghc-base.git diff --git a/Foreign/Marshal/Error.hs b/Foreign/Marshal/Error.hs index 5b43dfc..46fa2b7 100644 --- a/Foreign/Marshal/Error.hs +++ b/Foreign/Marshal/Error.hs @@ -3,21 +3,20 @@ -- | -- Module : Foreign.Marshal.Error -- Copyright : (c) The FFI task force 2001 --- License : BSD-style (see the file libraries/core/LICENSE) +-- License : BSD-style (see the file libraries/base/LICENSE) -- -- Maintainer : ffi@haskell.org -- Stability : provisional -- Portability : portable -- --- $Id: Error.hs,v 1.3 2002/04/24 16:31:44 simonmar Exp $ --- -- Marshalling support: Handling of common error conditions -- ----------------------------------------------------------------------------- module Foreign.Marshal.Error ( + -- * Error utilities - -- throw an exception on specific return values + -- |Throw an exception on specific return values -- throwIf, -- :: (a -> Bool) -> (a -> String) -> IO a -> IO a throwIf_, -- :: (a -> Bool) -> (a -> String) -> IO a -> IO () @@ -27,7 +26,7 @@ module Foreign.Marshal.Error ( -- => (a -> String) -> IO a -> IO () throwIfNull, -- :: String -> IO (Ptr a) -> IO (Ptr a) - -- discard return value + -- Discard return value -- void -- IO a -> IO () ) where @@ -43,10 +42,10 @@ import GHC.IOBase -- exported functions -- ------------------ --- guard an IO operation and throw an exception if the result meets the given +-- |Guard an 'IO' operation and throw an exception if the result meets the given -- predicate -- --- * the second argument computes an error message from the result of the IO +-- * the second argument computes an error message from the result of the 'IO' -- operation -- throwIf :: (a -> Bool) -> (a -> String) -> IO a -> IO a @@ -55,27 +54,27 @@ throwIf pred msgfct act = res <- act (if pred res then ioError . userError . msgfct else return) res --- like `throwIf', but discarding the result +-- |Like 'throwIf', but discarding the result -- throwIf_ :: (a -> Bool) -> (a -> String) -> IO a -> IO () throwIf_ pred msgfct act = void $ throwIf pred msgfct act --- guards against negative result values +-- |Guards against negative result values -- throwIfNeg :: (Ord a, Num a) => (a -> String) -> IO a -> IO a throwIfNeg = throwIf (< 0) --- like `throwIfNeg', but discarding the result +-- |Like 'throwIfNeg', but discarding the result -- throwIfNeg_ :: (Ord a, Num a) => (a -> String) -> IO a -> IO () throwIfNeg_ = throwIf_ (< 0) --- guards against null pointers +-- |Guards against null pointers -- throwIfNull :: String -> IO (Ptr a) -> IO (Ptr a) throwIfNull = throwIf (== nullPtr) . const --- discard the return value of an IO action +-- |Discard the return value of an 'IO' action -- void :: IO a -> IO () void act = act >> return ()