-- Make sure monads-fd package is installed. import Text.XML.Expat.Chunked import Text.XML.Expat.Format import Control.Monad import Control.Monad.Trans import qualified Data.ByteString as B import Data.Iteratee import Data.List.Class import Data.Text (Text) import qualified Data.Text as T import System.IO main :: IO () main = do iter <- parse defaultParseOptions dump eErr <- fileDriver iter "sudoku.xml" case eErr of Left err -> putStrLn $ "failed: "++show err Right () -> putStrLn "" dump :: ListOf (UNode s IO Text) -> XMLT s IO () dump doc = do (elt:_) <- toList doc let txt = formatG elt execute $ forL txt $ liftIO . B.hPutStr stdout where forL = flip mapL