Summary
Provides a wide array of semigroupoids and operations for working with semigroupds. A Semigroupoid is a Category without the requirement of identity arrows for every object in the category. 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: > Traversable <---- Foldable <--- Functor ------> Alt ---------> Plus Semigroupoid > | | | | | > v v v v v > Traversable1 <--- Foldable1 Apply --------> Applicative -> Alternative Category > | | | | > v v v v > Bind ---------> Monad -------> MonadPlus Arrow > Apply, Bind, and Extract 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.
Versions
v5.3.4 :: 0/5.3.4 :: gentoo
- Modified
- License
- BSD
- Keywords
- ~amd64 ~x86
- USE flags
- comonad containers contravariant distributive doc hscolour profile tagged test unordered-containers
USE flags
General
- comonad
- 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`
- containers
- 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
- 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`
- distributive
- You can disable the use of the `distributive` package using `-f-distributive`. 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 `Distributive`
- doc
- Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
- hscolour
- Include coloured haskell sources to generated documentation (dev-haskell/hscolour)
- profile
- Add support for software performance analysis (will likely vary from ebuild to ebuild)
- tagged
- You can disable the use of the `tagged` package using `-f-tagged`. Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
- test
- Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
- unordered-containers
- Enable the use of the `unordered-containers` package (and also its dependency `hashable`). Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
Dependencies
dev-haskell / base-orphans : Backwards-compatible orphan instances for base
dev-haskell / bifunctors : Haskell98 bifunctors package
dev-haskell / cabal : A framework for packaging Haskell software
dev-haskell / cabal-doctest : A Setup.hs helper for doctests running
dev-haskell / comonad : Haskell package providing comonads
dev-haskell / contravariant : Contravariant functors
dev-haskell / distributive : Distributive functors -- Dual to Traversable
dev-haskell / doctest : Test interactive Haskell examples
dev-haskell / hashable : A class for types that can be converted to a hash value
dev-haskell / hscolour : Colourise Haskell code
dev-haskell / semigroups : Anything that associates
dev-haskell / tagged : Haskell 98 phantom types to avoid unsafely passing dummy arguments
dev-haskell / transformers-compat : A small compatibility shim for the transformers library
dev-haskell / unordered-containers : Efficient hashing-based container types
Runtime Dependencies
dev-haskell / base-orphans : Backwards-compatible orphan instances for base
dev-haskell / bifunctors : Haskell98 bifunctors package
dev-haskell / comonad : Haskell package providing comonads
dev-haskell / contravariant : Contravariant functors
dev-haskell / distributive : Distributive functors -- Dual to Traversable
dev-haskell / hashable : A class for types that can be converted to a hash value
dev-haskell / semigroups : Anything that associates
dev-haskell / tagged : Haskell 98 phantom types to avoid unsafely passing dummy arguments
dev-haskell / transformers-compat : A small compatibility shim for the transformers library
dev-haskell / unordered-containers : Efficient hashing-based container types
Depending packages
dev-haskell / adjunctions : Adjunctions and representable functors
dev-haskell / either : An either monad transformer
dev-haskell / foldl : Composable, streaming, and efficient left folds
dev-haskell / free : Monads for free
dev-haskell / groupoids : This package has been absorbed into semigroupoids 4.0
dev-haskell / kan-extensions : Kan extensions, lifts, forms of the Yoneda lemma, and (co)density (co)monads
dev-haskell / keys : Keyed functors and containers
dev-haskell / lens : Lenses, Folds and Traversals
dev-haskell / linear : Linear Algebra
dev-haskell / mono-traversable-instances : Extra typeclass instances for mono-traversable
dev-haskell / pointed : Pointed and copointed data
dev-haskell / quickcheck-classes : QuickCheck common typeclasses
dev-haskell / rebase : A more progressive alternative to the 'base' package
dev-haskell / reducers : Semigroups, specialized containers and a general map/reduce framework
dev-haskell / semigroupoid-extras : Semigroupoids that depend on PolyKinds
dev-haskell / vector-instances : Orphan Instances for 'Data.Vector'
Bugs
- 673012
- dev-haskell/semigroupoids-5.1 : src/.../Class.hs:43:1: error:
Change logs
- Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: drop old
Package-Manager: Portage-3.0.6, Repoman-3.0.1 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jack Todaro · gentoo
dev-haskell/semigroupoids: bump up to 5.3.4
Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Jack Todaro <solpeth@posteo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
*/*: destabilize dev-lang/ghc for all arches
dev-lang/ghc is a fast-moving target without much of stable API across major GHC releases. This makes stabilization process a fragile process. The change moves all haskell revdeps to pure ~arch. There are not many outside dev-haskell/*: - app-emulation/ganeti - app-text/pandoc - dev-util/bustle - dev-util/shellcheck - dev-vcs/darcs - x11-wm/xmonad/xmonad Existing stable haskell users are recommended to keyword used packages and all of dev-haskell/* to ease upgrades. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
*/*: Inline mirror://hackage and update URIs
This change inlines mirror://hackage in all ebuilds, and updates URIs to the modern form (old URIs redirect to that). The change has been made using the following command: find -name '*.ebuild' -exec sed -r -i \ -e 's@mirror://hackage/@https://hackage.haskell.org/@g' \ -e 's@https://hackage.haskell.org/packages/archive/([^/]*)/([^/]*)/@https://hackage.haskell.org/package/\1-\2/@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{PV}@${P}@g' \ -e '/hackage\.haskell\.org/s@\$\{MY_PN}-\$\{PV}@${MY_P}@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{MY_PV}@${MY_P}@g' \ {} + Signed-off-by: Michał Górny <mgorny@gentoo.org> - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: stable 5.1 for x86/amd64, bug #631138
Package-Manager: Portage-2.3.10, Repoman-2.3.3 RepoMan-Options: --include-arches="amd64 x86" - Robin H. Johnson · gentoo
Drop $Id$ per council decision in bug #611234.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: bump up to 5.1
Package-Manager: Portage-2.3.3, Repoman-2.3.1 - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: amd64/x86 stable, bug #563090
Package-Manager: portage-2.2.28 - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: drop old
Package-Manager: portage-2.2.28 - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: stable for x86, amd64
Package-Manager: portage-2.2.27 - Ian Delaney · gentoo
Merge remote-tracking branch 'remotes/Coacher/mpv-verbump-to-0.15.0'
Pull request: https://github.com/gentoo/gentoo/pull/675 - Sergei Trofimovich · gentoo
dev-haskell/semigroupoids: bump up to 5.0.0.4
Package-Manager: portage-2.2.26 - Justin Lecher · gentoo
Use https by default
Signed-off-by: Justin Lecher <jlec@gentoo.org> - Robin H. Johnson · gentoo
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed