On Tue, Jun 9, 2020 at 6:30 AM Shiro Kawai <xxxxxx@gmail.com> wrote:

'mproc' is a procedure   a* -> Container b*   where I note "zero or more values' as a* and b*,
and Container is either Maybe or Either.

That's right: an mproc accepts an arbitrary number of values and returns a single value.

The first line says maybe-compose returns an mproc.


The second line says the returned procedure takes a single value 'Container a*'.

That's wrong: it takes an arbitrary number of values not in a container.  Fixed.
If *-compose is indeed a composition of mprocs, I expect the following relations and I feel it's more natural:

(maybe-compose x y z) == (maybe-compose x (maybe-compose y z))
                                      == (maybe-compose (maybe-compose x y) z)

(maybe-bind m x y) == (maybe-bind m (maybe-compose x y))

That is the intention.  Hopefully the language of the new draft specifies this correctly.

John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
What asininity could I have uttered that they applaud me thus?
        --Phocion, Greek orator