@@ -9,13 +9,14 @@ module Network.Transport.Internal ( -- * Encoders/decoders
99 , mapExceptionIO
1010 , tryIO
1111 , tryToEnum
12+ , void
1213 -- * Debugging
1314 , tlog
1415 ) where
1516
1617import Prelude hiding (catch)
1718import Foreign.Storable (pokeByteOff, peekByteOff)
18−import Foreign.C (CInt(..), CShort(..))
19+import Foreign.C (CInt, CShort)
1920import Foreign.ForeignPtr (withForeignPtr)
2021import Data.ByteString (ByteString)
2122import qualified Data.ByteString as BS (length)
@@ -80,6 +81,10 @@ tlog msg = liftIO $ do
8081 putStrLn $ show tid ++ ": " ++ msg
8182-}
8283
84+-- | Not all versions of "base" export 'void'
85+void :: Monad m => m a -> m ()
86+void p = p >> return ()
87+
8388-- | Safe version of 'toEnum'
8489tryToEnum :: (Enum a, Bounded a) => Int -> Maybe a
8590tryToEnum = go minBound maxBound