• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

img/H03-May-2022-5352

src/H03-May-2022-4,1502,380

.gitignoreH A D09-Sep-2001246 3130

.vim.customH A D09-Sep-2001767 3223

CHANGELOG.markdownH A D09-Sep-20015.9 KiB176146

LICENSEH A D09-Sep-20011.2 KiB2721

README.markdownH A D09-Sep-20012.5 KiB6451

Setup.lhsH A D09-Sep-2001117 84

semigroupoids.cabalH A D03-May-20227.6 KiB217191

README.markdown

1semigroupoids
2=============
3
4[![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)
5
6A semigroupoid is a `Category` without `id`. This package provides a range of
7`id`-free versions of type classes, as well as some supporting functions and
8data types.
9
10Field Guide
11-----------
12
13The diagram below describes the relationships between the type classes defined
14in this package, and those from `base` (with some from `contravariant` as well). Thick-bordered
15nodes correspond to type classes defined in this package; thin-bordered ones are
16from elsewhere. Solid edges represent subclass relationships that actually
17exist; dashed edges are those which _should_ exist in theory.
18
19![A diagram of the relationships between type classes defined in this package and elsewhere.](https://raw.github.com/ekmett/semigroupoids/master/img/classes.svg)
20
21We also provide the following table. This is structured in superclass order -
22thus, for any type class `T`, all superclasses of `T` will be listed before `T`
23in the table.
24
25|**Name**|**Location**|**Superclass of**|**Ideally superclass of**|
26|--------|------------|-----------------|-------------------------|
27|`Functor`|`base`|`Alt`, `Apply`, `Traversable`||
28|`Foldable`|`base`|`Traversable`, `Foldable1`||
29|`Bifunctor`|`base`|`Biapply`||
30|`Contravariant`|`base`|`Divise`, `Decide`||
31|`Semigroupoid`|`semigroupoids`||`Category`|
32|`Alt`|`semigroupoids`|`Plus`||
33|`Apply`|`semigroupoids`|`Bind`|`Applicative`|
34|`Traversable`|`base`|`Traversable1`||
35|`Foldable1`|`semigroupoids`|`Traversable1`||
36|`Biapply`|`semigroupoids`|||
37|`Divise`|`semigroupoids`||`Divisible`|
38|`Decide`|`semigroupoids`|`Conclude`|`Decidable`|
39|`Category`|`base`|`Arrow`||
40|`Plus`|`semigroupoids`||`Alternative`|
41|`Applicative`|`base`|`Alternative`, `Monad`||
42|`Bind`|`semigroupoids`||`Monad`|
43|`Traversable1`|`semigroupoids`|||
44|`Divisible`|`contravariant`|||
45|`Conclude`|`semigroupoids`||`Decidable`|
46|`Arrow`|`base`|||
47|`Alternative`|`base`|`MonadPlus`||
48|`Monad`|`base`|`MonadPlus`||
49|`Decidable`|`contravariant`|||
50|`MonadPlus`|`base`|||
51
52We omit some type class relationships from this diagram, as they are not
53relevant for the purposes of this package.
54
55Contact Information
56-------------------
57
58Contributions and bug reports are welcome!
59
60Please feel free to contact me through Github or on the #haskell IRC channel on
61LiberaChat.
62
63-Edward Kmett
64