Algebrix is a personal practice project for implementing algebraic abstractions in Scala 3 using a typeclass-oriented design.
The goal is not to build a production-ready math library, but to practice modeling algebraic structures cleanly and explicitly.
- A Scala 3 playground for abstract algebra
- Focused on Semigroup → Ring → Module → Action
- Uses modern Scala 3 features (
given,using, extension methods) - Emphasizes clarity over performance or completeness
- Not a general-purpose algebra library
- Not API-stable or extensible
- Not optimized or benchmark-driven
- Not intended for third-party use
algebrix.core– algebraic typeclasses, laws, and syntaxalgebrix.structures– concrete mathematical objectsalgebrix.instances– instances for existing Scala / Java typesalgebrix.examples– small demos and sanity checks
See docs/ARCHITECTURE.md for details.
This project exists purely as a learning exercise:
- to connect mathematical abstractions with Scala’s type system
- to understand how algebraic hierarchies compose in real code
- to explore Scala 3’s expressiveness for this style of modeling
Actively evolving, structure-first, experiment-driven.