[GHC] #11343: Unable to infer type when using DuplicateRecordFields
GHC
ghc-devs at haskell.org
Sun Jan 3 23:22:05 UTC 2016
#11343: Unable to infer type when using DuplicateRecordFields
-------------------------------------+-------------------------------------
Reporter: mpickering | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
It seems to me that GHC should be able to easily infer the types for the
record updates in this simple example. Is there a reason that it is unable
to infer the type currently?
{{{
{-# LANGUAGE OverloadedLabels, DuplicateRecordFields #-}
module C where
main = do
print aThing
print bThing
print (aThing { a = 5 } )
print (bThing { a = 5 } )
data B = B { a :: Int} deriving Show
bThing = B 10
data A = A { a :: Int } deriving Show
aThing = A 10
{-
[1 of 1] Compiling C ( C.hs, C.o )
C.hs:7:10: error:
• Record update is ambiguous, and requires a type signature
• In the first argument of ‘print’, namely ‘(aThing {a = 5})’
In a stmt of a 'do' block: print (aThing {a = 5})
In the expression:
do { print aThing;
print bThing;
print (aThing {a = 5});
print (bThing {a = 5}) }
-}
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11343>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list