Fair enough, but keep in mind an effect system does more than just
eliminate boilerplate: it provides richer information on the precise
nature of the interaction of a function with the real world. With the
right insight, you can reorder and parallelize all kinds of effectful
computations. Something that "dumb" monads can't provide.
I haven't played with DDC, but I do believe some new FPL with a
powerful effect system is going to take off in the next 5 years.
Regards,
John A. De Goes
N-Brain, Inc.
The Evolution of Collaboration
http://www.n-brain.net | 877-376-2724 x 101
On Aug 12, 2009, at 8:13 PM, Dan Doel wrote:
On Wednesday 12 August 2009 9:27:30 pm John A. De Goes wrote:
So what, because effect systems might not eliminate *all*
boilerplate,
you'd rather use boilerplate 100% of the time? :-)
For most of my Haskell programs, the majority of the program is not
made up of
straight IO or ST functions, so how much boilerplate is it really
eliminating?
And since all the fooM functions have to exist for all the other
monads, how
much more boilerplate is it really to use them for IO and ST as well?
Off hand, I'd say I don't write foo and fooM versions of functions
much in
actual programs, either. Such duplication goes into libraries, and
that would
be the case for Disciple as well (until there's a way to extend the
effect
system outside the compiler).
So it's more of "effect systems eliminate 2% of my boilerplate; who
(currently) cares? And is it worth having situations like 'you use
monads for
these effects, and the effect system for these other effects' in the
language
to do so?"
But, as I said, it's not that I don't think it's a fruitful area of
research,
I just don't think it's going to yield significantly nicer code than
Haskell
_yet_.
-- Dan
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe