blob: bb7486159e459dc6e19318f892a5b619faf2359a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
-- !!! Deriving Show/Read for nullary constructors.
module Main(main) where
data A = B | C deriving ( Show, Read )
data Opt = N | Y A deriving (Show, Read)
x = Y B
{-
If the Haskell report's specification of how Show instances
are to be derived is followed to the letter, the code for
a nullary constructor would put parens around the constructor
when (showsPrec 10) is used. This would cause
Y A
to be showed as
Y (A)
Overkill, so ghc's derived Show code treats nullary
constructors specially.
-}
main = do
print x
print ((read (show x))::Opt)
print ((read "Y (B)")::Opt)
|