| with :: Storable a => a -> (Ptr a -> IO b) -> IO b | 
The memory is freed when f terminates (either normally or via an exception), so the pointer passed to f must not be used after this.
| new :: Storable a => a -> IO (Ptr a) | 
The memory may be deallocated using Foreign.Marshal.Alloc.free or Foreign.Marshal.Alloc.finalizerFree when no longer required.
| fromBool :: Num a => Bool -> a | 
| toBool :: Num a => a -> Bool | 
| maybeNew :: (a -> IO (Ptr a)) -> Maybe a -> IO (Ptr a) | 
| maybeWith :: (a -> (Ptr b -> IO c) -> IO c) | 
| -> Maybe a -> (Ptr b -> IO c) -> IO c | 
| maybePeek :: (Ptr a -> IO b) -> Ptr a -> IO (Maybe b) | 
| withMany :: (a -> (b -> res) -> res) -> [a] -> ([b] -> res) -> res | 
(argument order: destination, source)
| copyBytes :: Ptr a -> Ptr a -> Int -> IO () | 
| moveBytes :: Ptr a -> Ptr a -> Int -> IO () |