Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/tests/conformance98/fields/showread/Main.hs
data Foo a = Foo { foo :: a , bar :: Int } deriving (Show,Read) up s t = s { foo = t } obj = Foo { foo = 1 :: Int , bar = 99 } main = let expr = ( obj , up obj () , obj {foo=True} ) in do print expr print (((read.show) expr) `asTypeOf` expr)