Generic Monoids for Scala

monoids Continuous Integration Maven Central

Monoids is a library of a set of generic Monoid and Semigroup types that are very useful for abstract programming.

This library exposes some generic Monoids:

  • All - Boolean newtype that combines values using &&
  • Any - Boolean newtype that combines values using ||
  • Dual - Inverts the Combine operation of a monoid
  • First - Option newtype that combine takes the first element that is present
  • Last - Option newtype that combine takes the last element that is present
  • Product - Numeric newtype that combines values using Multiplication
  • Sum - Numeric newtype that combines values using Addition

Also some generic Semigroups:

  • Dual inverts the combine operation.
  • Max exposes a Max that given an Order will return the maximum value.
  • Min exposes a Min that given an Order will return the minimum value.

Head on over to the Microsite

Quick Start

To use this project in an existing SBT project with Scala 2.12 or a later version, add the following dependencies to your build.sbt depending on your needs:

libraryDependencies ++= Seq(
  "org.typelevel" %%% "monoids" % "<version>"
)