pokeByteString :: Ptr a -> S.ByteString -> IO ()
pokeByteString p v =
    S.unsafeUseAsCString v $ \cstr ->
        copyBytes (castPtr p) cstr (S.length v)
pokeByteString :: Ptr a -> S.ByteString -> IO ()
pokeByteString p v =
    S.unsafeUseAsCString v $ \cstr ->
        copyBytes (castPtr p) cstr (S.length v)
pokeByteString p v =
    S.unsafeUseAsCString v $ \cstr ->
        copyBytes (castPtr p) cstr (S.length v)