summaryrefslogtreecommitdiff
path: root/dev-haskell/data-accessor
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-haskell/data-accessor
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-haskell/data-accessor')
-rw-r--r--dev-haskell/data-accessor/Manifest4
-rw-r--r--dev-haskell/data-accessor/data-accessor-0.2.2.7.ebuild25
-rw-r--r--dev-haskell/data-accessor/metadata.xml70
3 files changed, 99 insertions, 0 deletions
diff --git a/dev-haskell/data-accessor/Manifest b/dev-haskell/data-accessor/Manifest
new file mode 100644
index 000000000000..239ff987171b
--- /dev/null
+++ b/dev-haskell/data-accessor/Manifest
@@ -0,0 +1,4 @@
+DIST data-accessor-0.2.2.7.tar.gz 9670 SHA256 3465227ad5f81059a885d354e2f3c108d550287580e6939e18350fa65e78c2ed SHA512 42f78d5be738e83e2bc64a2f38bc70748ecb741433916c4e527355f5e808a844e43b14607cfff149a5951f557c73a947469c878340738244e3778f475ccd021d WHIRLPOOL 5d9cb0eeda4d89b6e5b5e22820431b20faa9736cf539705afdd3bdc9accadec1138ff8acd33d00389755f1b803b79cfd240b13037cafdb27576478084e813ec1
+EBUILD data-accessor-0.2.2.7.ebuild 664 SHA256 048c6576ffb43ff1fff7691194817a9e4f356ac98f04ced0faddbb2ffd4010ad SHA512 938a72120625172d0e72e5e96ef16b239c25d3c49671efff544e7c7cfc242a63dba50f870c6ee530b01a01a9e1c54838539ea5124ba21d074e9d52c6da580b55 WHIRLPOOL 13f35865fceac72fa6685d8b36180e0983c9c05cbef7ccd0bfe8baa3ccce507bcfb0f0ad22dface634d98e11a2cd67cd6a394ba210598e6f5baba5ca44bbc642
+MISC ChangeLog 385 SHA256 2b7c584a74ec084b8541a089adddc97061a67477b4f7a9d764d3f156cacaa619 SHA512 9f0190a713c6a5515b3e0a9f7528b2a8e73b1e84dc90c4b396a02f98da04238fdf92e8553fd8377874ce8b104e5e04d6c9eab040540af987fa695dd18cf27eff WHIRLPOOL 12bc6e250f98d2f5907965072f2f014f5a2af68eb74861bd191fc19499374ae91338e5c4113dd50d206b1cb01039e0066aba061855190dae9d211de75c457db4
+MISC metadata.xml 2766 SHA256 9cc09a0f1a6943df3a033c4a94ead90742c3f8ad64e74aacdfbb019f186c9f13 SHA512 3431d5aac5f153e477c641a57f39dd2e1a2ebe690db42f9e41737991cb0098c16d2ce09943d3eb09451574cc7865f9ac769f1a8e08c808ad918a9de329d31636 WHIRLPOOL a9f88de65305dd96c5754854487b30560fd020ce1b4507c9ce496535bf7e7f312458ce52f690430ea65113afa734365e65387424c5b1739b30293f7ec0cca50f
diff --git a/dev-haskell/data-accessor/data-accessor-0.2.2.7.ebuild b/dev-haskell/data-accessor/data-accessor-0.2.2.7.ebuild
new file mode 100644
index 000000000000..6d552dd120b6
--- /dev/null
+++ b/dev-haskell/data-accessor/data-accessor-0.2.2.7.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.6.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit haskell-cabal
+
+DESCRIPTION="Utilities for accessing and manipulating fields of records"
+HOMEPAGE="http://www.haskell.org/haskellwiki/Record_access"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-haskell/transformers-0.2:=[profile?] <dev-haskell/transformers-0.6:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.6
+"
diff --git a/dev-haskell/data-accessor/metadata.xml b/dev-haskell/data-accessor/metadata.xml
new file mode 100644
index 000000000000..1962ea1d1e20
--- /dev/null
+++ b/dev-haskell/data-accessor/metadata.xml
@@ -0,0 +1,70 @@
+<?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>
+ In Haskell 98 the name of a record field
+ is automatically also the name of a function which gets the value
+ of the according field.
+ E.g. if we have
+
+ data Pair a b = Pair
+ first :: a, second :: b
+
+ then
+
+ &gt; first :: Pair a b -&gt; a
+ &gt; second :: Pair a b -&gt; b
+
+ However for setting or modifying a field value
+ we need to use some syntactic sugar, which is often clumsy.
+
+ modifyFirst :: (a -&gt; a) -&gt; (Pair a b -&gt; Pair a b)
+ modifyFirst f r\@(Pair
+ first=a
+ ) = r
+ first = f a
+
+ With this package you can define record field accessors
+ which allow setting, getting and modifying values easily.
+ The package clearly demonstrates the power of the functional approach:
+ You can combine accessors of a record and sub-records,
+ to make the access look like the fields of the sub-record belong to the main record.
+
+ Example:
+
+ &gt; *Data.Accessor.Example&gt; (first^:second^=10) (('b',7),"hallo")
+ &gt; (('b',10),"hallo")
+
+ You can easily manipulate record fields in a 'Control.Monad.State.State' monad,
+ you can easily code 'Show' instances that use the Accessor syntax
+ and you can parse binary streams into records.
+ See @Data.Accessor.Example@ for demonstration of all features.
+
+ It would be great if in revised Haskell versions the names of record fields
+ are automatically 'Data.Accessor.Accessor's
+ rather than plain @get@ functions.
+ For now, the package @data-accessor-template@ provides Template Haskell functions
+ for automated generation of 'Data.Acesssor.Accessor's.
+ See also the other @data-accessor@ packages
+ that provide an Accessor interface to other data types.
+ The package @enumset@ provides accessors to bit-packed records.
+
+ For similar packages see @lenses@ and @fclabel@.
+ A related concept are editors
+ &lt;http://conal.net/blog/posts/semantic-editor-combinators/&gt;.
+ Editors only consist of a modify method
+ (and @modify@ applied to a 'const' function is a @set@ function).
+ This way, they can modify all function values of a function at once,
+ whereas an accessor can only change a single function value,
+ say, it can change @f 0 = 1@ to @f 0 = 2@.
+ This way, editors can even change the type of a record or a function.
+ An Arrow instance can be defined for editors,
+ but for accessors only a Category instance is possible ('(.)' method).
+ The reason is the @arr@ method of the @Arrow@ class,
+ that conflicts with the two-way nature (set and get) of accessors.
+ </longdescription>
+</pkgmetadata>