Konrad, I got your code to work by doing the following:
Replaced with-monad with: (defmacro with-monad [name & exprs] (let [bind-sym 'm-bind result-sym 'm-result zero-sym 'm-zero plus-sym 'm-plus] `(let [~bind-sym (:m-bind ~name) ~result-sym (:m-result ~name) ~zero-sym (:m-zero ~name) ~plus-sym (:m-plus ~name)] (do ~...@exprs)))) And in defmonadfn changed (list ~fn-name '~'m-bind '~'m-result '~'m-zero '~'m-plus ~...@args)) to (list '~fn-name '~'m-bind '~'m-result '~'m-zero '~'m-plus ~...@args)) I'll probably have some more comments after I dig into the code. Jim --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---