emerald.monadのリストモナド的な部分の改造。
元のコードは、リストでは動くけどベクタだと動かない。なぜなら clojure.lang.PersistentVectorは、publicなコンストラクタを公開していないから。
ベクタだけ特別扱いしてもよいが、clojure.lang.IPersistentCollectionで組み込みコレクションを統一的に扱っているのでseqlistにしてみた。
*monad*にコンストラクタをバインドする部分は、モナドのコンテキストを決定する部分であり、これがreturnの代わりになってるようだ。