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

Reply via email to