一週間少し前に以下のようなのを書きましたが
その後、
あれっ、 scalaprops-magnolia の前に scalaz-magnolia は誰か作ってないのだろうか?まだ誰も作ってないなら作るか?
— Kenji Yoshida (@xuwei_k) 2018年3月18日
と気づいたので作りました。
scalapropsのものと色々共通するところがあるので、説明は簡単に済ませますが、最初のリリース時点では
- Scala 2.11がmagnolia自体のバグにより動かないのでリリースしてなく、2.12のみ
- よってscala-native対応もなし
- scalajs対応は最初からやった
- 現状では Equal, Order, Monoid, Semigroup の4つのみ
- MonoidやSemigroupは、適切な実装がありえない(?)ため、sealed traitとその子classのパターン(直和型)には未対応
- Showはあまり必要性感じなかったので、一旦入れてないが、あとで気が向いたらやるかもしれない
- EnumやSemiLatticeやBandも出来るかどうか考えてみて、やれそうならやるかもしれない
- tweetもしたが、FunctorやFoldableなどの
* -> *
の kind のものが magnolia 的に不可能だとしたら、あとはあまりやること無い(?)
といった感じです。
あと、日本語で雑にtweetしてたら色々リプライもらったので、以下にまとめておきます。