[Hugs-users] needing some Hugs

Anthony Clayden anthony_clayden at clear.net.nz
Sat Jul 7 13:15:30 UTC 2018


Thanks Doug for your words of encouragement.

[Doug]
| | hugs in preference to "monstrous" ghc/ghci. It's lightweight ...

I agree in 'calculator mode', lightweight is a definite advantage.
It's a terrific way to ease into functional programming.
Haskell syntax of that era is aesthetically at the sweet spot between
succinct-terse-cryptic-hieroglyphics-line noise.

| | and its language is properly documented (in the Haskell 98 report),

Hmm. My OP is clear I want Hugs 2006 with all extensions. So more than H98,
indeed more than H2010.

| | neither of which can be said of ghc.

I think you're being over-generous to Hugs. Both Hugs and GHC document each
feature individually.
The trouble is they don't document how features interact.
(Occasionally there's a 'grand unifying theorem', like OutsideIn(X).
 I'm afraid the grand unifying type-in-type/path to Dependent Types is just
too much for a bear of very little brain.)
So your point about 2^99 languages is well made.

Specifically for anonymous/extensible record systems, all of them
(TRex -- probably special hard coding, HList, Ur/web -- beyond Haskell but
not extensible,
 endless libraries on Hackage -- mostly using TH boilerplate -- despite
that mostly not extensible)
rely on the interaction of Overlaps and FunDeps -- hence the focus of my
rant.
GHC's implementation is broken; Hugs just plays safe and disallows any
interaction.

All the hip kids play in the lenses space. I guess they want their code to
look like Perl or TECO, brogrammer style.
Sometime they'll discover why hierarchical data structures fell so badly
out of fashion in the 1980's.


On Sat, 7 Jul 2018 at 2:46 AM, Simon Peyton Jones wrote:

>
> I think that’s a little unfair to GHC 😊. If you don't give any language
> extension flags you get Haskell 98 -- or nowadays Haskell 2010.
>

Thanks Simon, but that's true only up to a point (Lord Copper).
I don't configure for pure H2010, see above. I do configure for a handful
of extensions;
I do wish error messages didn't suggest all sorts of high-fallutin' things
I might have meant when I merely made a typo.

GHC's syntax space is getting so crowded now that a typo is quite likely to
get mis-parsed as trying to use some feature I didn't even know existed.
Then I appreciate Hugs doesn't confuse me with those possibilities.

Oh, and as Doug mentions in his follow-up message: Libraries.
I get it that's strictly-speaking not within GHC's bailiwick.
I don't want all that abstruse category-theory shit.
I want `length` applicable to a List and only to a List. And not to throw
messages about instances of Foldable.
So when Neil says "Hugs doesn't have any modern libraries " I'm seeing that
as another benefit.

Yes I know I could opt for a simpler Prelude; I could override the type for
`length`.
I resent that casual users/newbies must jump through hoops to do that.
The onus should be on those who want fancy stuff to jump through the hoops
-- for them it's not a burden.

Like Doug, I'm not aiming to produce production code.
Nor production-level mods to any compiler.

AntC


> |  -----Original Message-----
> |  From: Hugs-Users <hugs-users-bounces at haskell.org> On Behalf Of Doug
> McIlroy
> |  Sent: 06 July 2018 15:04
> |  To: hugs-users at haskell.org
> |  Subject: Re: [Hugs-users] needing some Hugs
> |
> |  I have little constructive to say on the topic, except that I typically
> use
> |  hugs in preference to "monstrous"
> |  ghc/ghci. It's lightweight and its language is properly documented (in
> the
> |  Haskell 98 report), neither of which can be said of ghc. Its rudimentary
> |  instrumentation (:set +s) is more useful than ghc's equivalent, though
> |  admittedly ghc has many debugging features I haven't explored.
> |
> |  That said, it should be noted that I do not use Haskell (nor, nowadays,
> any
> |  other language) for writing production code.
> |
> |  Apropos of language, a couple of years ago I noted that ghc implements
> 2^99
> |  languages, not one. (There were 99 non-antonymous language pragmas;
> there
> |  may be more now.) Who can know what terrors lurk there.
> |  My first attempt to investigate the field (turn on all 99) caused a
> compiler
> |  panic, since fixed.
> |
> |  Early on, I encountered a hugs bug: garbage collection in the middle of
> a
> |  bignum operation caused havoc.
> |  Having never looked at the hugs source before, I was able quite quickly
> |  pinpoint the offending code; the maintainers corrected it almost
> overnight.
> |  That heart-warming experience hasn't worn off, even though the
> maintainers
> |  have moved on.
> |
> |  Doug
> |  _______________________________________________
> |  Hugs-Users mailing list
> |  Hugs-Users at haskell.org
> |  http://mail.haskell.org/cgi-bin/mailman/listinfo/hugs-users
> _______________________________________________
> Hugs-Users mailing list
> Hugs-Users at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/hugs-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/hugs-users/attachments/20180708/f99f1dba/attachment.html>


More information about the Hugs-Users mailing list