Hi,
I've defined a class and some instances, which I'm hoping would help me "show" values of types that may include transactional elements.
class TShow a where
tshow :: a -> IO String
instance Show (TVar a) where
show = "%"
instance (Show a) => TShow a where
tshow a = return $ show a
instance (Show a) => TShow (TVar a) where
tshow ta = do
a <- readTVar ta
return $ show a
Having created a new class is it possible to do some magic so that it can be put it into a deriving clause?
data Type = Type
{ field1 :: Int
, field2 :: Int
}
deriving Show
data AnotherType = AnotherType
{ field3 :: Int
, field4 :: TVar Type
}
deriving TShow
Thanks
-John