case classLink[T1, T2, -TL1 >: T1, +TL2 <: T2](from: Contact[T1], to: Contact[T2], name: String, info: LinkInfo[TL1, TL2]) extends Named with TwoPoleComponent[T1, T2] with Product with Serializable
The Link is represented with a triple of two contacts and a linkInfo
Special care is taken for type variants.
Contacts are invariant because data is "set" and "get".
However, the function is contra- and co- variant, because it is a function. So we have two additional types TL1, TL2.
The Link is represented with a triple of two contacts and a linkInfo
Special care is taken for type variants. Contacts are invariant because data is "set" and "get". However, the function is contra- and co- variant, because it is a function. So we have two additional types TL1, TL2.