case class SemiCons[A1, A2, X2, Y2, Z1, Z2, B](semiHead: Plated[A2, X2], s: X2 ~⚬ Y2, t: TransferOpt[A1, Y2, Z1, Z2], tail: Plated[Z1 |*| Z2, B]) extends Plated[A1 |*| A2, B] trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any