On Tue, 5 Sep 2000 12:31:58 +0200 (MET DST) Koen Claessen
<[EMAIL PROTECTED]> wrote:
> Diego Dainese wrote:
> 
>  | there no way to move smoothly from no monad (no
>  | interaction), to one monad (a single form of
>  | interaction), to many monad (several independent forms
>  | of interaction).
> 
> It takes some work to move from no monad to using a monad,
> but once you have made that decision, it is easy to equip
> that monad with more features without having to change your
> program very much.
> 

I disagree: if you want to add a feature to your monad you must code
it from the ground up, even if that feature is already implemented in
another Monad.

This is only an annoyance in general, but sometimes is a real problem;
I'm thinking at 2 situations:

- Builtin monads: AFAICT you can't add their features into your own
  Monad.

- Programming in the large: one would desire do define Monad as
  abstract data type, but again you can't combine monad without
  knownledge of its internals.

>  | - IO
>  | - ST
>  | - Maybe  (modeling exception)
>  | - List   (modeling nondeterminism)
> 
> Take a look at:
> 
>   http://www.cse.ogi.edu/~andy/monads/
> 
> There are a number of monads. Common monads you left out are
[...]

Thanks.

Bye,

-- 
Diego Dainese

Reply via email to