Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ekmett/semigroupoids
https://github.com/ekmett/semigroupoids
Last synced: 21 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/ekmett/semigroupoids
- Owner: ekmett
- License: other
- Created: 2011-01-30T12:27:00.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2024-07-05T12:34:17.000Z (4 months ago)
- Last Synced: 2024-09-02T02:07:50.744Z (2 months ago)
- Language: Haskell
- Homepage: http://hackage.haskell.org/package/semigroupoids
- Size: 554 KB
- Stars: 75
- Watchers: 13
- Forks: 45
- Open Issues: 15
-
Metadata Files:
- Readme: README.markdown
- Changelog: CHANGELOG.markdown
- License: LICENSE
Awesome Lists containing this project
README
semigroupoids
=============[![Hackage](https://img.shields.io/hackage/v/semigroupoids.svg)](https://hackage.haskell.org/package/semigroupoids) [![Build Status](https://github.com/ekmett/semigroupoids/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/semigroupoids/actions?query=workflow%3AHaskell-CI)
A semigroupoid is a `Category` without `id`. This package provides a range of
`id`-free versions of type classes, as well as some supporting functions and
data types.Field Guide
-----------The diagram below describes the relationships between the type classes defined
in this package, and those from `base` (with some from `contravariant` as well). Thick-bordered
nodes correspond to type classes defined in this package; thin-bordered ones are
from elsewhere. Solid edges represent subclass relationships that actually
exist; dashed edges are those which _should_ exist in theory.![A diagram of the relationships between type classes defined in this package and elsewhere.](https://raw.github.com/ekmett/semigroupoids/master/img/classes.svg)
We also provide the following table. This is structured in superclass order -
thus, for any type class `T`, all superclasses of `T` will be listed before `T`
in the table.|**Name**|**Location**|**Superclass of**|**Ideally superclass of**|
|--------|------------|-----------------|-------------------------|
|`Functor`|`base`|`Alt`, `Apply`, `Traversable`||
|`Foldable`|`base`|`Traversable`, `Foldable1`||
|`Bifunctor`|`base`|`Biapply`||
|`Contravariant`|`base`|`Divise`, `Decide`||
|`Semigroupoid`|`semigroupoids`||`Category`|
|`Alt`|`semigroupoids`|`Plus`||
|`Apply`|`semigroupoids`|`Bind`|`Applicative`|
|`Traversable`|`base`|`Traversable1`||
|`Foldable1`|`semigroupoids`|`Traversable1`||
|`Biapply`|`semigroupoids`|||
|`Divise`|`semigroupoids`||`Divisible`|
|`Decide`|`semigroupoids`|`Conclude`|`Decidable`|
|`Category`|`base`|`Arrow`||
|`Plus`|`semigroupoids`||`Alternative`|
|`Applicative`|`base`|`Alternative`, `Monad`||
|`Bind`|`semigroupoids`||`Monad`|
|`Traversable1`|`semigroupoids`|||
|`Divisible`|`contravariant`|||
|`Conclude`|`semigroupoids`||`Decidable`|
|`Arrow`|`base`|||
|`Alternative`|`base`|`MonadPlus`||
|`Monad`|`base`|`MonadPlus`||
|`Decidable`|`contravariant`|||
|`MonadPlus`|`base`|||We omit some type class relationships from this diagram, as they are not
relevant for the purposes of this package.Contact Information
-------------------Contributions and bug reports are welcome!
Please feel free to contact me through Github or on the #haskell IRC channel on
LiberaChat.-Edward Kmett