import Control.Monad (unless) import Data.Proxy import Data.Functor.Identity import Deriving.Show.Simple import System.Exit (exitFailure) import Test.HUnit identity :: Identity Int identity = Identity 42 tuple :: (Int, Identity Int) tuple = (0, identity) main :: IO () main = do count <- runTestTT $ TestList [ showsPrecSimple 11 Proxy "" ~?= "Proxy" , showsPrecSimple 1 Proxy "" ~?= "Proxy" , showsPrecSimple 11 identity "" ~?= "(Identity 42)" , showsPrecSimple 1 identity "" ~?= "Identity 42" , showsPrecSimple 11 tuple "" ~?= "((,) 0 (Identity 42))" , showsPrecSimple 1 tuple "" ~?= "(,) 0 (Identity 42)" ] unless (failures count == 0 && errors count == 0) exitFailure