ghc-semigroupoids - Semigroupoids: Category sans id
|Distribution||openSUSE Leap 15.1|
|Repository||openSUSE Oss all|
|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.
Install ghc-semigroupoids rpm package:
# zypper install ghc-semigroupoids
2019-01-05 - email@example.com - 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 <firstname.lastname@example.org> - Use https URL to refer to bugs.opensuse.org.
2018-07-18 - email@example.com - Cosmetic: replace tabs with blanks, strip trailing white space, and update copyright headers with spec-cleaner.
2018-07-13 - firstname.lastname@example.org - 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 - email@example.com - 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 - firstname.lastname@example.org - Update to version 5.2.
2016-09-15 - email@example.com - Update to version 5.1 revision 0 with cabal2obs.
2016-07-10 - firstname.lastname@example.org - Update to version 5.0.1 revision 1 with cabal2obs.
2016-01-18 - email@example.com - update to 5.0.1 * transformers-compat 0.5 support * Removed some redundant constraints.
2015-08-23 - firstname.lastname@example.org - update to 220.127.116.11 * doctest 0.10 support