Free MonadとInject typeclassでtwitter4jをラップしてみた


https://github.com/xuwei-k/twitterz


Inject typeclassについては、先日書いたこれ

CoproductとInjectを使ったFree Monadの合成とExtensible Effects

読んでください


単にFreeだけではなくOperational Monad使ってます。

名前、twitter4zにしたかったけど、ねこはるせんせーが、以前その名前で作ってたので、被るとややこしいしやめました。


これ、やはりものすごく単純作業になるのですが、もう少しどうにかならないか・・・。マクロかコード生成・・・?
あと、Interpreterを切り替える需要がないと、IOモナド(とReaderモナド合わせたもの)とあまり変わりがないというか、わざわざ分けて定義したりFreeとCoyonedaに包む分だけ、ライブラリ作成者側はちょっと面倒な気がしましたが、どうなんだろう、うーん・・・

とりあえず、最初のversionリリースしたので、build.sbtに一行書けば使えるはずです。

今後開発続けるのかは気分次第。