ghc-semigroupoids - Semigroupoids: Category sans id

Property Value
Distribution openSUSE Leap 15.1
Repository openSUSE Oss all
Package filename ghc-semigroupoids-5.3.2-lp151.1.3.x86_64.rpm
Package name ghc-semigroupoids
Package version 5.3.2
Package release lp151.1.3
Package architecture x86_64
Package type rpm
Category Development/Libraries/Haskell
License BSD-2-Clause
Maintainer -
Download size 148.29 KB
Installed size 1023.09 KB
Provides a wide array of (semi)groupoids and operations for working with them.
A 'Semigroupoid' is a 'Category' without the requirement of identity arrows for
every object in the category.
A 'Category' is any 'Semigroupoid' for which the Yoneda lemma holds.
When working with comonads you often have the '<*>' portion of an
'Applicative', but not the 'pure'. This was captured in Uustalu and Vene's
"Essence of Dataflow Programming" in the form of the 'ComonadZip' class in the
days before 'Applicative'. Apply provides a weaker invariant, but for the
comonads used for data flow programming (found in the streams package), this
invariant is preserved. Applicative function composition forms a semigroupoid.
Similarly many structures are nearly a comonad, but not quite, for instance
lists provide a reasonable 'extend' operation in the form of 'tails', but do
not always contain a value.
Ideally the following relationships would hold:
> Foldable ----> Traversable <--- Functor ------> Alt ---------> Plus
Semigroupoid > | | | | | > v v v v v > Foldable1 ---> Traversable1 Apply
--------> Applicative -> Alternative Category > | | | | > v v v v > Bind
---------> Monad -------> MonadPlus Arrow >
Apply, Bind, and Extend (not shown) give rise the Static, Kleisli and Cokleisli
semigroupoids respectively.
This lets us remove many of the restrictions from various monad transformers as
in many cases the binding operation or '<*>' operation does not require them.
Finally, to work with these weaker structures it is beneficial to have
containers that can provide stronger guarantees about their contents, so
versions of 'Traversable' and 'Foldable' that can be folded with just a
'Semigroup' are added.


Package Version Architecture Repository
ghc-semigroupoids - - -


Name Value - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Name Value
ghc-semigroupoids = 5.3.2-lp151.1.3
ghc-semigroupoids(x86-64) = 5.3.2-lp151.1.3 -


Type URL
Binary Package ghc-semigroupoids-5.3.2-lp151.1.3.x86_64.rpm
Source Package ghc-semigroupoids-5.3.2-lp151.1.3.src.rpm

Install Howto

Install ghc-semigroupoids rpm package:

# zypper install ghc-semigroupoids




2019-01-05 -
- Update semigroupoids to version 5.3.2.
5.3.2 [2019.01.04]
- -----------------
* Bump the lower bound on `semigroups` to 0.16.2, and avoid incurring
the dependency entirely on recent GHCs.
* Fix the build on GHC 7.0 and 7.2.
2018-10-20 - Peter Simons <>
- Use https URL to refer to
2018-07-18 -
- Cosmetic: replace tabs with blanks, strip trailing white space,
and update copyright headers with spec-cleaner.
2018-07-13 -
- Update semigroupoids to version 5.3.1.
* Fix a regression introduced in `semigroupoids-5.3` in which some modules
regressed from `Trustworthy` to `Unsafe`.
* Allow building with `containers-0.6`.
* Add `Alt` instances for `First` and `Last` from `Data.Semigroup`, and
`Alt` and `Plus` instances for `First` and `Last` from `Data.Monoid`.
* Add missing `Apply`, `Bind`, `Extend`, `Foldable1` and `Traversable1`
instances for `Data.Semigroups`, `Data.Monoid` and `GHC.Generics`.
2018-05-14 -
- Update semigroupoids to version 5.2.2 revision 3.
* Add `optional` to `Data.Functor.Alt` (analogous to the `optional` function
in `Control.Applicative`)
* `liftF2` is now a class method of `Apply` (mirroring the fact that `liftA2`
is now a class method of `Applicative`). `liftF2` and `(<.>)` have default
definitions in terms of the other.
* Allow building with GHC 8.4
* `Apply` and `Bind` instances for `Q`, from the `template-haskell` package.
* Add instances for `(:~:)` and `(:~~:)` from `Data.Type.Equality`, and
`Coercion` from `Data.Type.Coercion`
* Add the `toNonEmpty` method to `Foldable1`. Add `foldrM1` and `foldlM1`
functions to `Data.Semigroup.Foldable` that are defined in terms of `toNonEmpty`.
* Add `Apply`, `Bind`, `Foldable1`, and `Traversable1` instances for `Complex`
* Add `Apply` and `Bind` instances for `HashMap` from the `unordered-containers` package
(on which `semigroupoids` now depends)
* Add `Semigroupoid` instances for `Tagged` and `Const`
2017-07-27 -
- Update to version 5.2.
2016-09-15 -
- Update to version 5.1 revision 0 with cabal2obs.
2016-07-10 -
- Update to version 5.0.1 revision 1 with cabal2obs.
2016-01-18 -
- update to 5.0.1
* transformers-compat 0.5 support
* Removed some redundant constraints.
2015-08-23 -
- update to
* doctest 0.10 support

See Also

Package Description
ghc-semigroupoids-devel-5.3.2-lp151.1.3.x86_64.rpm Haskell semigroupoids library development files
ghc-semigroups-0.18.5-lp151.1.2.x86_64.rpm Anything that associates
ghc-semigroups-devel-0.18.5-lp151.1.2.x86_64.rpm Haskell semigroups library development files
ghc-setenv- A cross-platform library for setting environment variables
ghc-setenv-devel- Haskell setenv library development files
ghc-setlocale- Haskell bindings to setlocale
ghc-setlocale-devel- Haskell setlocale library development files
ghc-shelly-1.8.1-lp151.1.2.x86_64.rpm Shell-like (systems) programming in Haskell
ghc-shelly-devel-1.8.1-lp151.1.2.x86_64.rpm Haskell shelly library development files
ghc-silently-1.2.5-lp151.3.2.x86_64.rpm Prevent or capture writing to stdout and other handles
ghc-silently-devel-1.2.5-lp151.3.2.x86_64.rpm Haskell silently library development files
ghc-skylighting-0.7.6-lp151.1.2.x86_64.rpm Syntax highlighting library
ghc-skylighting-core-0.7.6-lp151.1.2.x86_64.rpm Syntax highlighting library
ghc-skylighting-core-devel-0.7.6-lp151.1.2.x86_64.rpm Haskell skylighting-core library development files
ghc-skylighting-devel-0.7.6-lp151.1.2.x86_64.rpm Haskell skylighting library development files