~ruther/guix-local

ref: d595e456c1555de5a4ffdbcd7cf99e07b06e2a4f guix-local/tests/monads.scm -rw-r--r-- 5.6 KiB
aeb7ec5c — Ludovic Courtès 12 years ago
monads: Allow resolution of a monad's bind/return at expansion time.

* guix/monads.scm (<monad>): Turn in a raw SRFI-9 record type.
  (define-monad): New macro.
  (with-monad): Add a case for when MONAD is a macro.
  (identity-return, identity-bind, store-return, store-bind): Inline.
  (%identity-monad, %store-monad): Use 'define-monad'.
* tests/monads.scm ("monad?"): New test.
b860f382 — Ludovic Courtès 12 years ago
Add (guix monads).

* guix/monads.scm: New file.
* tests/monads.scm: New file.
* Makefile.am (MODULES): Add guix/monads.scm.
  (SCM_TESTS): Add tests/monads.scm.
* doc/guix.texi (The Store Monad): New node.
  (The Store): Reference it.