-- FIXME: in order debug to work
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE OverlappingInstances #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}

module Test.Debug where

import Control.Monad
import Control.Monad.Trans

class Debug x where
    debug :: (MonadIO m) => x -> m ()

instance (Show x) => Debug x where
    debug = liftIO . putStrLn . show . show

instance Debug String where
    debug = liftIO . putStrLn . show