Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Package reusable Scala as a small library with sbt and a test suite. Requirements: expose an API using generics and/or a TYPE CLASS via Scala 3 given/using (e.g. a Show- or Ordering-style capability) with at least one EXTENSION METHOD; compose fallible steps with for-comprehensions over Option/Either (short-circuiting correctly); write tests with ScalaTest or munit AND at least one PROPERTY-BASED test with ScalaCheck (an invariant checked over random inputs); keep it scalafmt-clean; and pin dependencies in build.sbt. Explain one invariant your property test checks and why it holds for all inputs.
Generics and/or a given/using type class with an extension method, used correctly; a clean, reusable API.
for-comprehensions sequence Option/Either with correct short-circuiting; immutable, referentially-transparent design.
ScalaTest/munit plus a ScalaCheck property-based test; scalafmt-clean; sbt-managed pinned dependencies.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A typed library with a type class and tests ## Goal Package reusable Scala as a small library with sbt and a test suite. Requirements: expose an API using generics and/or a TYPE CLASS via Scala 3 given/using (e.g. a Show- or Ordering-style capability) with at least one EXTENSION METHOD; compose fallible steps with for-comprehensions over Option/Either (short-circuiting correctly); write tests with ScalaTest or munit AND at least one PROPERTY-BASED test with ScalaCheck (an invariant checked over random inputs); keep it scalafmt-clean; and pin dependencies in build.sbt. Explain one invariant your property test checks and why it holds for all inputs. ## Acceptance criteria - [ ] Types & type classes: Generics and/or a given/using type class with an extension method, used correctly; a clean, reusable API. - [ ] FP composition: for-comprehensions sequence Option/Either with correct short-circuiting; immutable, referentially-transparent design. - [ ] Tests & tooling: ScalaTest/munit plus a ScalaCheck property-based test; scalafmt-clean; sbt-managed pinned dependencies. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.