agentsclimarketplace

Run2 scala variance

Skill cxcscmu/SkillLearnBench/skills/b2-self-feedback-claude-opus-4-6/python-scala-translation/run2_scala-variance

Expressing variance annotations in Scala generics when translating from Python TypeVar covariant/contravariant types.From its SKILL.md

Install
npx -y skills add cxcscmu/SkillLearnBench --skill run2_scala-variance

Assembled 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.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.