[lisp-interface-library-devel] Curating libraries

Faré fahree at gmail.com
Mon Oct 29 22:36:55 UTC 2012


On Tue, Oct 30, 2012 at 6:32 AM, Drew Crampsie <me at drewc.ca> wrote:
> This is the call/cc that will/should be included in :interface/monad :
>
Yay for the continuation monad!

I propose you create a ips-monad.asd system and put the code
in a new monad/ directory.

> (define-interface <monad> (<type>) ()
>   (:singleton)
>   (:generic result (<monad> value))
>   (:generic bind (<monad>  monadic-value monadic-function)))
>
I would personally use :generic> to elide the <monad> argument,
here and in all definitions you have where it applies.

>   ,@(when (string-equal (symbol-name symbol) "_")
>   `((declare (ignorable ,symbol))))
Shouldn't that be ignore instead?

> ORG/IPS/MONAD/CONTINUATION>
I would put everything in the MONAD package,
or IPS-MONAD if you suspect there might be
any useful non-IPS monad package.

> So, that is call/cc based on the cont monad, in IPS. w00t.
>
Re-w00t!

> any questions/comments/etc are most welcome.
>
How do I combine several monads,
say, non-determinism, continuation, error, state monads?

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Few facts are more revealing than the direction people travel
when they vote with their feet. — Don Boudreaux http://bit.ly/afZgx2




More information about the lisp-interface-library-devel mailing list