@hackage semigroupoids6.0.2
Semigroupoids: Category sans id
Installation
Tested Compilers
Dependencies (13)
- base >=4.9 && <5
- base-orphans >=0.8.4 && <1
- bifunctors >=5.6 && <6
- comonad >=5.0.8 && <6
- containers >=0.6.7
- contravariant >=1.5.3 && <2 Show all…
Dependents (229)
@hackage/box, @hackage/aip, @hackage/validation, @hackage/sv, @hackage/route-planning, @hackage/configuration-tools, Show all…
Package Flags
containers
(on by default)
You can disable the use of the containers package using `-f-containers`.
Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
contravariant
(on by default)
You can disable the use of the contravariant package using `-f-contravariant`.
Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
If disabled we will not supply instances of Contravariant
comonad
(on by default)
You can disable the use of the comonad package using `-f-comonad`.
Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
If disabled we will not supply instances of Comonad
tagged
(on by default)
You can disable the use of the tagged package using `-f-tagged`.
Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
unordered-containers
(on by default)
You can disable the use of the `unordered-containers` package (and also its dependency hashable) using `-f-unordered-containers`.
Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
semigroupoids
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.
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