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
-~----------~----~----~----~------~----~------~--~---

Reply via email to