deriving Read fails on infix data constructors with record syntax
The example below successfully performs the show, but reads returns an empty list. It fails in both GHCi and GHC. It succeeds if you replaces the infix symbol with a name.
module Main where
data A = (:<>:) { x :: Int, y :: Int } deriving (Read, Show)
t :: A
t = 1 :<>: 2
s :: String
s = show t
r :: [(A,String)]
r = reads s
main :: IO ()
main = do putStrLn s
putStrLn (show r)
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.8.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |