{-# OPTIONS -fno-warn-unused-imports #-} module Main where import Control.Exception import Text.XML import Data.Default import System.IO.Unsafe import Test.Hspec import Test.Hspec.QuickCheck import Test.QuickCheck import TestDefs import Text.XML.DOM.Parser import Text.XML.Writer isomorphicFoo :: XmlRoot -> Property isomorphicFoo a = a === isogen where isogen :: XmlRoot isogen = let doc = document "Root" $ toXML a res = case runDomParser doc fromDom of Left e -> unsafePerformIO $ do pprint doc throwIO e Right a' -> a' in res main :: IO () main = hspec $ do prop "isomorphic" isomorphicFoo