Monads

Monads for Scheme

Please file Issues if you find a bug or need help; I will attempt to address them!

Full documentation, with examples, Can be found on GitHub.

[syntax] (define-monad name unit-function bind-function [fail-function])



[syntax] (using monad [body ...])



[syntax] (do-using monad [body ...])



[syntax] (do/m monad [body ...])



Within a monad scope:

[syntax] (fail monad [body ...])



[syntax] (return monad value)



[syntax] ([variable] <- [monad])



[syntax] (/m [monadic method])



[syntax] (/m! [monadic method] [parameters ...])



Contribution

Contributions are welcome provided you accept the license I have chosen for this egg for the contributions themselves.

The github repository is at: https://github.com/dleslie/monad-egg

Authors

Original Egg By Daniel J. Leslie dan@ironoxide.ca

Additional Contributors: Cameron Swords. Peter Bex

License