@@ -259,23 +259,18 @@ foreign import ccall unsafe "get_mapping_start_tag"
259259foreign import ccall unsafe "get_alias_anchor"
260260 c_get_alias_anchor :: EventRaw -> IO CString
261261
262−readAnchor :: (EventRaw -> IO CString) -> (EventRaw -> IO Anchor)
262+readAnchor :: (EventRaw -> IO CString) -> EventRaw -> IO Anchor
263263readAnchor getAnchor er = do
264264 yanchor <- getAnchor er
265265 if yanchor == nullPtr
266266 then return Nothing
267267 else Just <$> peekCString yanchor
268268
269−readStyle :: (Enum a) => (EventRaw -> IO CInt) -> (EventRaw -> IO a)
270−readStyle getStyle er = do
271− ystyle <- getStyle er
272− return $ toEnum $ fromEnum ystyle
269+readStyle :: (Enum a) => (EventRaw -> IO CInt) -> EventRaw -> IO a
270+readStyle getStyle er = toEnum . fromEnum <$> getStyle er
273271
274272readTag :: (EventRaw -> IO (Ptr CUChar)) -> EventRaw -> IO Tag
275−readTag getTag er = do
276− ytag <- getTag er
277− let ytag' = castPtr ytag
278− bsToTag <$> packCString ytag'
273+readTag getTag er = bsToTag <$> (getTag er >>= packCString . castPtr)
279274
280275getEvent :: EventRaw -> IO (Maybe Event)
281276getEvent er = do