Cabal revisions of semigroupoids-1.3
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-name: semigroupoids-category: Control, Comonads-version: 1.3-license: BSD3-cabal-version: >= 1.6-license-file: LICENSE-author: Edward A. Kmett-maintainer: Edward A. Kmett <ekmett@gmail.com>-stability: provisional-homepage: http://github.com/ekmett/semigroupoids-copyright: Copyright (C) 2011 Edward A. Kmett-build-type: Simple-synopsis: Haskell 98 semigroupoids: Category sans id-description: - 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.--source-repository head- type: git- location: git://github.com/ekmett/semigroupoids.git--library- build-depends:- base >= 4 && < 5,- transformers >= 0.3 && < 0.4,- containers >= 0.3 && < 0.5,- contravariant >= 0.2.0.1 && < 0.3,- comonad >= 1.1.1.2 && < 1.2,- semigroups >= 0.8.2 && < 0.9-- exposed-modules:- Data.Functor.Alt,- Data.Functor.Apply,- Data.Functor.Bind,- Data.Functor.Bind.Trans,- Data.Functor.Plus,- Data.Semigroup.Foldable,- Data.Semigroup.Traversable- Data.Semigroupoid- Data.Semigroupoid.Dual- Data.Semigroupoid.Static-- ghc-options: -Wall+name: semigroupoids +category: Control, Comonads +version: 1.3 +x-revision: 1 +license: BSD3 +cabal-version: >= 1.6 +license-file: LICENSE +author: Edward A. Kmett +maintainer: Edward A. Kmett <ekmett@gmail.com> +stability: provisional +homepage: http://github.com/ekmett/semigroupoids +copyright: Copyright (C) 2011 Edward A. Kmett +build-type: Simple +synopsis: Haskell 98 semigroupoids: Category sans id +description: + 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. + +source-repository head + type: git + location: git://github.com/ekmett/semigroupoids.git + +library + build-depends: + base >= 4 && < 4.6, + transformers >= 0.3 && < 0.4, + containers >= 0.3 && < 0.5, + contravariant >= 0.2.0.1 && < 0.3, + comonad >= 1.1.1.2 && < 1.2, + semigroups >= 0.8.2 && < 0.9 + + exposed-modules: + Data.Functor.Alt, + Data.Functor.Apply, + Data.Functor.Bind, + Data.Functor.Bind.Trans, + Data.Functor.Plus, + Data.Semigroup.Foldable, + Data.Semigroup.Traversable + Data.Semigroupoid + Data.Semigroupoid.Dual + Data.Semigroupoid.Static + + ghc-options: -Wall