On Fri, Aug 14, 2009 at 1:41 PM, John A. De Goes <j...@n-brain.net> wrote:

>
> Hmmm, my point (perhaps I wasn't clear), is that different effects have
> different commutability properties. In the case of a file system, you can
> commute two sequential reads from two different files. This has no effect on
> the result of the computation, assuming no interference from other programs
> -- and if there _is_ interference from other programs, then guarantees go
> out the window, _with or without_ commuting.
>
> Monads are an insufficient structure to capture the fine semantics of
> effects. Something more powerful is needed. And in general, the way effects
> combine and commute is quite complicated and needs to be baked into the
> effect system, rather than being the responsibility of a lowly developer.
>

It's really interesting.  This is related to the reasoning darcs does with
patches (aka patch theory).  Patches tend to have effects on your
repository.  Sometimes those effects can be reordered without changing the
final state of the repository.  Other times, it is not possible to reorder
them without either having a non-sensible final state or different final
states.  I've never thought about reading research about effect systems for
the sake of version control.  I'll have to look into this.

Jason
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to