summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-10-02 21:58:19 +0200
committerLudovic Courtès <ludo@gnu.org>2013-10-03 23:12:20 +0200
commitaeb7ec5c9a67c9936b5d01d6e933cf4c282058d2 (patch)
tree6fc9c9260879b5a359ff5f63668ff3db204c89fb /gnu
parentd9f0a23704a038640329fae6e2273e5813cdb8ab (diff)
downloadguix-aeb7ec5c9a67c9936b5d01d6e933cf4c282058d2.tar.gz
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.
Diffstat (limited to 'gnu')
0 files changed, 0 insertions, 0 deletions