summaryrefslogtreecommitdiff
path: root/dev-haskell/semigroupoids/metadata.xml
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:57:42 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:57:42 +0100
commit1798c4aeca70ac8d0a243684d6a798fbc65735f8 (patch)
treee48e19cb6fa03de18e1c63e1a93371b7ebc4eb56 /dev-haskell/semigroupoids/metadata.xml
parentd87262dd706fec50cd150aab3e93883b6337466d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-haskell/semigroupoids/metadata.xml')
-rw-r--r--dev-haskell/semigroupoids/metadata.xml74
1 files changed, 0 insertions, 74 deletions
diff --git a/dev-haskell/semigroupoids/metadata.xml b/dev-haskell/semigroupoids/metadata.xml
deleted file mode 100644
index d6c06edca015..000000000000
--- a/dev-haskell/semigroupoids/metadata.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>haskell@gentoo.org</email>
- <name>Gentoo Haskell</name>
- </maintainer>
- <longdescription>
- 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 @\&lt;*\&gt;@ 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:
-
- &gt; Traversable &lt;---- Foldable &lt;--- Functor ------&gt; Alt ---------&gt; Plus Semigroupoid
- &gt; | | | | |
- &gt; v v v v v
- &gt; Traversable1 &lt;--- Foldable1 Apply --------&gt; Applicative -&gt; Alternative Category
- &gt; | | | |
- &gt; v v v v
- &gt; Bind ---------&gt; Monad -------&gt; MonadPlus Arrow
- &gt;
-
- 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 @\&lt;*\&gt;@ 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.
- </longdescription>
- <use>
- <flag name="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`
- </flag>
- <flag name="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.
- </flag>
- <flag name="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`
- </flag>
- <flag name="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`
- </flag>
- <flag name="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.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">ekmett/semigroupoids</remote-id>
- </upstream>
-</pkgmetadata>