Axle generally strives to follow the patterns established by the Typelevel projects.
With few exceptions, the functions are side-effect free.
The typeclass patterns are drawn from two traditions:
- Abstract Algebra
The algorithms are increasingly defined only in terms of these typeclasses.
Concrete runtime implementations will require witnesses that map non-Axle data structures
onto the typeclass methods and laws.
Laws are organized into a separate
axle-laws jar for use in tests by code that builds
upon these typeclasses.
Many such witnesses are provided by Axle for native Scala collections.
Witnesses are also defined for other common jars from the Java and Scala ecosystems. Read more about these “spokes”.
Remaining Design Issues
See the Road Map for more details on the timing of upcoming changes.
Please get in touch if you’d like to discuss these or other questions.