Run2 scala variance
Expressing variance annotations in Scala generics when translating from Python TypeVar covariant/contravariant types.From its SKILL.md
npx -y skills add cxcscmu/SkillLearnBench --skill run2_scala-varianceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
0.9 KB, 240 tokens by cl100k_base, as published. Nobody here has run it
Variance in Scala
Mapping from Python TypeVar
TypeVar("T_co", covariant=True)->[+T](covariant)TypeVar("T_contra", contravariant=True)->[-T](contravariant)TypeVar("T")->[T](invariant)
Covariant Container
class TokenContainer[+T](items: Seq[T]) {
// Can return T but not accept T as parameter in public methods
def getAll: Vector[T] = items.toVector
}
Contravariant Sink
class TokenSink[-T] {
// Can accept T but not return T
private val received = mutable.ListBuffer[Any]()
def receive(item: T): Unit = received += item
def drain(): List[Any] = { ... }
}
Invariant Handler
class BivariantHandler[T](default: T) {
// Both accepts and returns T
def get: T = ...
def set(value: T): Unit = ...
}
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.