github.com/scalaz/scalaz/… 一部は致し方ない部分もありそうだけど、ちゃんとpriority制御のためにclassをわけて積み上げて定義してるのにimplicitが衝突するように変わる場合もあるというの、全く納得がいってないのだけど、色々バグ関連してたりして完全に状況を把握できてない難しい
2018-01-28 01:41:24def idTOrder[F[_], A](implicit F: Order[F[A]]): Order[IdT[F, A]] と def idTEqual[F[_], A](implicit F: Equal[F[A]]): Equal[IdT[F, A]] を別のclassに優先順位付けて定義しても衝突するっぽいけど、両方必要だし、これで衝突するなら、もうどうしようもないような (コンパイラの挙動戻してくれ)
2018-02-01 14:04:06いや、同じようにclass積み上げて優先順位定義でも idTOrder の方を子に定義して、 idTEqual を親に定義すると Equal[IdT[F, A]] のインスタンス召喚時に衝突しないの・・・!?なんでそうなったんだ・・・今までよりimplicitの仕様さらに複雑になったような
2018-02-01 14:11:55それだけなのかな、他にも気をつけることあるのかな。 それを元に、7.3はまぁいいんだけど、scalaz 7.2ではバイナリ互換保つという制約条件のなか、 implicit 衝突回避のパズル解かないといけない
2018-02-01 14:13:17いや、たしか親にtrait追加はバイナリ互換壊れるけど、abstract classの親にabstract class追加なら壊れない(?)ならいけるか?
2018-02-01 14:53:38Scala 2.10ではimplicitで定義してあったほうがいいけど、2.13.0-M3ではそれのせいで衝突する、みたいなパターンが発生しており、バイナリ互換は維持できても、ソースコード互換保つのはかつて無いほど謎な工夫しない限りちょっと無理ゲー感がある。どうするかな・・・
2018-02-01 19:45:43🎈 #scala 2.13.0-M3 🎉 Thanks to all who made this milestone happen! On to the next one, which will integrate the new collections design! github.com/scala/scala/re…
2018-02-01 19:54:41既に一番多いと sealed abstract class WriterTInstances15 という、15個sealed abstract class積み重なってるけど、バイナリ互換維持するために衝突するもののimplicitだけ除去しつつ並び替えしてclass 20個以上積み重ねればいけるかもしれない、という希望が見えてきた。 20個ってなんだよ、ウケる
2018-02-01 22:48:57#scalaz 7.2.19 released 🎉 github.com/scalaz/scalaz/… support Scala 2.13.0-M3
2018-02-02 09:03:25結局classの積み上げは18個で済んだけど、これテスト足りてないだけでまだ衝突するimplicitが存在している可能性が否定しきれないし、テスト and/or メイン側を自動生成とか、もっといい感じにしたい、とずっと前から思っているが実現できていない github.com/scalaz/scalaz/…
2018-02-02 09:13:46