module Util.Inst() where
import Control.Monad.Identity
import Data.Monoid
#if __GLASGOW_HASKELL__ <= 610
import qualified Data.Map as Map
import qualified Data.IntMap as IM
import List
import Data.Traversable
#endif
instance Monoid (IO ()) where
mappend a b = a >> b
mempty = return ()
instance Monoid Bool where
mempty = False
mappend a b = a || b
mconcat = or
instance Show a => Show (Identity a) where
show x = show $ runIdentity x
#if __GLASGOW_HASKELL__ <= 610
instance Traversable IM.IntMap where
traverse f mp = (IM.fromAscList . Map.toAscList) `fmap` (traverse f . Map.fromAscList . IM.toAscList $ mp)
#endif