So what, because effect systems might not eliminate *all* boilerplate,
you'd rather use boilerplate 100% of the time? :-)
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 3:28 PM, Dan Doel wrote:
On Wednesday 12 August 2009 10:12:14 am John A. De Goes wrote:
I think the point is that a functional language with a built-
in effect system that captures the nature of effects is pretty damn
cool and eliminates a lot of boilerplate.
It's definitely an interesting direction (possibly even the right
one in the
long run), but it's not without its faults currently (unless things
have
changed since I looked at it).
For instance: what effects does disciple support? Mutation and IO?
What if I
want non-determinism, or continuations, etc.? How do I as a user add
those
effects to the effect system, and specify how they should interact
with the
other effects? As far as I know, there aren't yet any provisions for
this, so
presumably you'll end up with effect system for effects supported by
the
compiler, and monads for effects you're writing yourself.
By contrast, monad transformers (for one) let you do the above
defining of new
effects, and specifying how they interact (although they're
certainly neither
perfect, nor completely satisfying theoretically).
Someone will probably eventually create (or already has, and I don't
know
about it) an extensible effect system that would put this objection
to rest.
Until then, you're dealing in trade offs.
-- Dan
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe