unapply
Jakie są ograniczenia w wnioskowaniu typów o wyższym pokrewieństwie w Scali?
W następującym uproszczonym kodzie próbki:
case class One[A](a: A) // An identity functor
case class Twice[F[_], A](a: F[A] ... ograniczona i musi być dość irytująca w monad transformers, więc podejrzewam, że brakuje mi jakiejś sztuczki, aby to obejść.
Jaka jest różnica między unapplyseq a unapplyseq?
Dlaczego Scala ma zarówno unapply jak i unapplySeq? Jaka jest różnica między nimi? Kiedy powinienem preferować jedno nad drugim?