GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - typelevel/algebra: Experimental project to lay out basic algebra type classes

This repository was archived by the owner on Feb 8, 2022. It is now read-only.
BranchesTags
Open more actions menu

Latest commit

 

History

469 Commits
469 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
benchmark
benchmark
 
 
core/src
core/src
 
 
docs/docs/main
docs/docs/main
 
 
laws
laws
 
 
project
project
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
COPYING
COPYING
 
 
README.md
README.md
 
 
build.sbt
build.sbt
 
 
sbt
sbt
 
 
version.sbt
version.sbt
 
 

Repository files navigation

Build Status Coverage status Gitter Maven Central

algebra

current status

The code in this repository was moved into Cats in cats#3918. All future development will occur there. Algebra will continue to release under the same artifact name and maintain binary compatibility with the 2.x series.

the vision

This repo represents an attempt to unify the basic algebraic type classes from Spire and Algebird. By targeting just these type classes, we will distribute an algebra package with no dependencies (except for cats-kernel) that works with Scala 2.11 and 2.12, which can be shared by all Scala libraries interested in abstract algebra.

Since the creation of Algebra, we have also decided to interoperate with the Cats project. Algebra and Cats interoperate using the cats-kernel module.

See the Algebra website for more information. The latest API docs are hosted at Algebra's ScalaDoc index.

getting algebra

Algebra supports Scala 2.11, 2.12 and 2.13 and is available from Sonatype (and Maven Central). In addition to the JVM, Algebra also supports Scala.js.

To use algebra in your own projects, include this snippet in your build.sbt file:

libraryDependencies += "org.typelevel" %% "algebra" % "2.0.0"

If you want to use Algebra's laws, you can include those as well with this snippet:

libraryDependencies += "org.typelevel" %% "algebra-laws" % "2.0.0"

what we have so far

This repo has been seeded with most of the contents of spire.algebra, and has been modified to fit an initially-conservative and shared vision for algebraic type classes. Discussions over removals and additions should take place on the issue tracker or on relevant pull requests.

Projects using Algebra

  • Algebird
  • Spire

participants

Anyone who wants to participate should feel free to open issues or send pull requests to this repo.

The following people are Algebra maintainers (i.e. have push access):

  • Oscar Boykin
  • Avi Bryant
  • Lars Hupel
  • Rüdiger Klaehn
  • Tomas Mikula
  • Erik Osheim
  • Tom Switzer

development process

Please make a pull request against the master branch. For those who can merge pull requests, we follow these rules:

  1. Do not merge your own PR unless N people have signed-off on the PR (e.g. given a thumbs-up, +1, shipit, etc) and Travis is green.

  2. If you are not the author, and you see (N - 1) sign-offs and Travis is green, just click merge and delete the branch.

  3. Currently, N = 2.

algebra overview

Algebra uses type classes to represent algebraic structures. You can use these type classes to represent the abstract capabilities (and requirements) you want generic parameters to possess.

For a tour of the Algebraic structures that algebra offers, see the extensive overview on the Algebra website.

Code of Conduct

See the Code of Conduct

Copyright and License

All code is available to you under the MIT license, available at http://opensource.org/licenses/mit-license.php and also in the COPYING file.

Copyright the maintainers, 2015-2016.

About

Experimental project to lay out basic algebra type classes

typelevel.org/algebra/

Topics

algebrascalatypelevel

Resources

Readme
License

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

378 stars

Watchers

3 watching

Forks

63 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.