[Haskell-cafe] Some thoughts on Type-Directed Name Resolution
sh006d3592 at blueyonder.co.uk
Mon Jan 30 05:23:25 CET 2012
On 28/01/2012 13:00, Paul R wrote:
> AntC> Steve, I think that proposal has been rather superseeded by
> AntC> http://hackage.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields, which
> AntC> draws on TDNR. But SORF is best seen as an evolving design space, with precise
> AntC> details yet to be clarified/agreed. I've put my own variation into the ring:
> AntC> http://www.haskell.org/pipermail/glasgow-haskell-users/2011-
> AntC> December/021298.html -- which seems to have fallen into a black hole :-(
> AntC> One of the aspects of TDNR that wasn't so popular was that its type-directed
> AntC> resolution was very similar to instance resolution, but subtly and confusingly
> AntC> different.
> AntC> I guess we have to be very careful about the dot. It seems to be in a
> AntC> very 'crowded' syntax space, so if we implement the wrong way, we could end up
> AntC> shutting the door with the keys left inside.
> AntC> (...)
> All this dot syntax magic frankly frightens me. Haskell, as a pure
> functionnal language, requires (and allows !) a programming style that
> just does not mix well with object oriented practices. Stretching the
> syntax to have the dot feel a-bit-but-not-really like object oriented
> programming, mainly to have IDE autocompletion on some cases, does not
> make much sens.
That's a benefit of my idea. Modular programming used the dot long
before OOP became popular - OOP stole the dot from modular programming!
If a record is a module, that only means that one thing can be both a
module and a type (or value) at the same time. It takes little from OOP
that OOP didn't already take from the more fundamental modular
programming - and Haskell already has modules.
> If the editor matters - and it probably does -, we could rather take
> a more ambitious path, and work on a real semantic editor, as opposed to
> a plain left-to-right text editor, with hacked semantic goodies to
> alleviate the pain.
Every programmer has their own favorite editor, usually using the same
one to work in many different languages. For the moment, you'd have a
hard job separating me from Notepad++.
If you really want a "semantic editor", I'd argue a rich visual language
with a file format that isn't intended to be read directly. Something
more like writing in Word than writing in TeX. But I don't think most
programmers are ready for this, for various reasons. Version control
tools and readable differences get a place near the top of that list.
More information about the Haskell-Cafe