Agh, sorry about the smattering of replies. I'm multi-tasking heavily today.

(define-monad
>  <complex-id>
>  (lambda (r i) (values r i))
>  (lambda (f r i) (f r i)))
>

Why not:

(define-monad <cid> (lambda (a) (values (car a) (cdr a)))
    (lambda (a f) (f (car a) (cdr a))))

That's how the <logger> monad example goes about things. The parameter list
itself is just compacted into a pair, and passed through the unit and bind
functions.

I suppose I could extend it to support a full parameter list... It's
certainly worth considering.

-Dan
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to