xeno是一个快速的XML解析库。它的SAX样式解析函数具有以下类型:
process
:: Monad m
=> (ByteString -> m ()) -- ^ Open tag.
-> (ByteString -> ByteString -> m ()) -- ^ Tag attribute.
-> (ByteString -> m ()) -- ^ End open tag.
-> (ByteString -> m ()) -- ^ Text.
-> (ByteString -> m ()) -- ^ Close tag.
-> (ByteString -> m ()) -- ^ CDATA.
-> ByteString
-> m ()
是否存在m
的选择,该选择允许从处理程序中尽早终止process
?提早终止是指process
退出而不处理文档的其余部分,即没有其他工作。
我知道可以使用IO和异常来完成。是否可以在IO中完成而不使用控制流例外?是否可以在没有IO的情况下完成?
根据上面的类型,我们甚至可以确定,还是我们还需要知道process
的定义?
编辑:
请假定m
需要支持状态,并且短路后需要该状态可用。