On 23 Dec 2011, at 16:16, MigMit wrote:


On 23 Dec 2011, at 02:11, Conor McBride wrote:

So... you are developing a programming language with all calculations being automatically lifted to a monad? What if we want to do calculations with monadic values themselves, like, for example, store a few monadic calculations in a list (without joining all there effects as the sequence function does)?

The plan is to make a clearer distinction between "being" and "doing" by splitting types clearly into an effect part and a value part, in a sort
of a Levy-style call-by-push-value way. The notation

[<list of effects>]<value type>

is a computation type whose inhabitants might *do* some of the effects in
order to produce a value which *is* of the given value type.

Oh, so it's not an arbitrary monad, but a single one. That's a bit disappointing.

The list of effects is arbitrary, and localizable, by means of defining handlers.
So it's not a single monad.

It's probably still disappointing.

Cheers

Conor


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

Reply via email to