--- /dev/null
+module Main where
+
+{-
+ If a fixity declaration hasn't been supplied for
+ an operator, it is defaulted to being "infixl 9".
+
+ The derived Read instances for data types containing
+ left-assoc constructors produces code that causes
+ non-termination if you use 'read' to evaluate them
+ ( (head (reads x)) is cool tho.)
+
+ ==> The inferred assoc for :++ below left & the derived
+ Read instance should fail to terminate (with ghc-4.xx,
+ this is exemplified by having the stack overflow.)
+-}
+-- infixl 9 :++
+data T = T1 | T :++ T deriving (Eq,Show, Read)
+
+t :: T
+t = read "T1"
+
+main = print t