4日目は Semigroup と Monoid をみて、
独自のモノイドを実装した。あとは、foldMap などができる Foldable も少しかじった。
今日は、更新のお知らせから。まず、3日目にみた Apply.apply だけど、
Apply.ap に改名された (戻ったとも言えるが)。 #308
以前のバージョンでモノイドの法則検査を値クラスに対して行った時に Serializable
関連で失敗していた。
これは、実は Cats のせいじゃないらしいことが分かった。Cats の
gitter に行った所、Erik (@d6/@non)
が親切に僕の型クラスインスタンスが serializable じゃないのは
REPL から定義されているせいだと教えてもらった。
First を src/ 以下で定義した所、法則は普通に合格した。
Jason Zaugg (@retronym) さんの指摘によると、分散処理時に受送信両者の Cats のバージョンが完全に一致するとき以外でのシリアライゼーションをサポートするには、さらに:
@SerialVersionUID(0L) を付ける必要がある
など他にも気をつけることがあるということだった。