simple extension to ghc's record disambiguation rules
AntC
anthony_clayden at clear.net.nz
Mon Feb 20 01:21:45 CET 2012
>Hi, I'd like to propose an extremely simple extension to ghc's record
>disambiguation rules,
I wonder if John is teasing us? Nothing wrt to records is simple (IMHO).
John seems to be unaware of the threads on 'Records in Haskell' (ghc-users)
or 'Type-Directed Name Resolution' (cafe) that have been storming for the
last few months.
He refers to a web page ...
> ideally it would be combined with the 'update' and 'label-based
> pattern-matching' extensions from this page
> http://hackage.haskell.org/trac/haskell-prime/wiki/ExistingRecords
... which is several years old, requesting features that have been largely
delivered in
ghc's -XDIsambiguateRecordFields, -XNamedFieldPuns, and -XRecordWildCards.
> my motivation is that I often have record types with multiple constructors
> but common fields.
Perhaps this is a different requirement to those threads above?
Most are dealing with the namespacing problem of common fields in different
record types.
I think John means common fields under different constructors within the
same type(?).
> so, my proposal is that when you come across something like
> (e::RecType) { blah = foo }
> (with an explicit type signature like shown)
It's certainly an innovation to go looking for an explicit type sig. within
an expression.
Does anything else in Haskell do that?
> It ... would be a new thing
> for patterns which generally don't allow type signatures there.
> It sidesteps type checker interactions by only being triggered when an
> explicit type annotation is included.
> John
"Extremely simple"? I don't think so.
I've added a suggested approach to approximate what John is asking for to my
DORF proposal.
http://hackage.haskell.org/trac/ghc/wiki/Records/DeclaredOverloadedRecordFields/PolyRecordPattern
-- as a **speculative** **future** development.
The ease with which I could do that (both a polymorphic record update _and_
polymorphic record pattern match) suggests my proposal is powerful enough to
achieve the limited aims for the namespacing issue, with some headroom. --
But then I would say that, wouldn't I!
(By the way, none of the 'Records in Haskell' proposals describe themselves
as "extremely simple".
http://hackage.haskell.org/trac/ghc/wiki/Records
AntC
--
View this message in context: http://haskell.1045720.n5.nabble.com/simple-extension-to-ghc-s-record-disambiguation-rules-tp5494549p5497846.html
Sent from the Haskell - Glasgow-haskell-users mailing list archive at Nabble.com.
More information about the Glasgow-haskell-users
mailing list