, deinterleave
, toLSV
-
, wrapSocket
, closeSocket
, withCStrOrNull
+ , failOnError
)
where
import Bindings.EsounD
withCStrOrNull ∷ Maybe String → (CString → IO a) → IO a
withCStrOrNull Nothing f = f nullPtr
withCStrOrNull (Just s) f = withCString s f
+
+failOnError ∷ Monad m ⇒ String → (CInt → Bool) → CInt → m CInt
+failOnError msg isErr rv
+ | isErr rv = fail msg
+ | otherwise = return rv