https://gist.github.com/xuwei-k/9a306226b04f9214f742
以前も書きましたが
Playframework2のJsonやJsResultと型クラスとそれらに関する罠
play-jsonの内部実装変更されたので(SeqからMapになった)、今度こそ満たすようになったのかな?と思って試したら、まだダメでした・・・。
Monoidの演算にdeepMergeというメソッドが使われてるわけですが
- https://github.com/playframework/playframework/blob/2.4.0/framework/src/play-json/src/main/scala/play/api/libs/json/Reads.scala#L129
- https://github.com/playframework/playframework/blob/2.4.0/framework/src/play-json/src/main/scala/play/api/libs/json/JsValue.scala#L119-L138
deepMergeがネストしたオブジェクトの中身までみて変にmergeすることにより、monoid則満たしませんね・・・。
issue報告かpull reqどうしようかなぁ
issue報告した https://github.com/playframework/playframework/issues/4651