@@ -259,23 +259,18 @@ foreign import ccall unsafe "get_mapping_start_tag"
259foreign import ccall unsafe "get_alias_anchor"
259foreign import ccall unsafe "get_alias_anchor"
260 c_get_alias_anchor :: EventRaw -> IO CString
260 c_get_alias_anchor :: EventRaw -> IO CString
262−readAnchor :: (EventRaw -> IO CString) -> (EventRaw -> IO Anchor)
262+readAnchor :: (EventRaw -> IO CString) -> EventRaw -> IO Anchor
263readAnchor getAnchor er = do
263readAnchor getAnchor er = do
264 yanchor <- getAnchor er
264 yanchor <- getAnchor er
265 if yanchor == nullPtr
265 if yanchor == nullPtr
266 then return Nothing
266 then return Nothing
267 else Just <$> peekCString yanchor
267 else Just <$> peekCString yanchor
269−readStyle :: (Enum a) => (EventRaw -> IO CInt) -> (EventRaw -> IO a)
269+readStyle :: (Enum a) => (EventRaw -> IO CInt) -> EventRaw -> IO a
270−readStyle getStyle er = do
270+readStyle getStyle er = toEnum . fromEnum <$> getStyle er
271− ystyle <- getStyle er
272− return $ toEnum $ fromEnum ystyle
274readTag :: (EventRaw -> IO (Ptr CUChar)) -> EventRaw -> IO Tag
272readTag :: (EventRaw -> IO (Ptr CUChar)) -> EventRaw -> IO Tag
275−readTag getTag er = do
277− let ytag' = castPtr ytag
278− bsToTag <$> packCString ytag'
273+readTag getTag er = bsToTag <$> (getTag er >>= packCString . castPtr)
280getEvent :: EventRaw -> IO (Maybe Event)
275getEvent :: EventRaw -> IO (Maybe Event)
281getEvent er = do
276getEvent er = do