summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Todaro <solpeth@posteo.org>2020-08-01 09:14:06 +1000
committerSergei Trofimovich <slyfox@gentoo.org>2020-08-01 09:03:54 +0100
commit8fb5d8089a049a16d8bbbcddd1683c79e652ce05 (patch)
tree0debf8a5416904022302e2498e9813c099fd8e38 /dev-haskell/vector-builder/metadata.xml
parentdev-haskell/openglraw: bump up to 3.3.4.0 (diff)
downloadgentoo-8fb5d8089a049a16d8bbbcddd1683c79e652ce05.tar.gz
gentoo-8fb5d8089a049a16d8bbbcddd1683c79e652ce05.tar.bz2
gentoo-8fb5d8089a049a16d8bbbcddd1683c79e652ce05.zip
dev-haskell/vector-builder: add package
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>
Diffstat (limited to 'dev-haskell/vector-builder/metadata.xml')
-rw-r--r--dev-haskell/vector-builder/metadata.xml36
1 files changed, 36 insertions, 0 deletions
diff --git a/dev-haskell/vector-builder/metadata.xml b/dev-haskell/vector-builder/metadata.xml
new file mode 100644
index 000000000000..95e22703be14
--- /dev/null
+++ b/dev-haskell/vector-builder/metadata.xml
@@ -0,0 +1,36 @@
+<?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>
+ An API for efficient and convenient construction of vectors.
+ It provides the composable `Builder` abstraction, which has instances of the `Monoid` and `Semigroup` classes.
+
+ [Usage]
+
+ First you use the `Builder` abstraction to specify the structure of the vector.
+ Then you execute the builder to actually produce the vector.
+
+ [Example]
+
+ The following code shows how you can efficiently concatenate different datastructures into a single immutable vector:
+
+ &gt;
+ &gt;import qualified Data.Vector as A
+ &gt;import qualified VectorBuilder.Builder as B
+ &gt;import qualified VectorBuilder.Vector as C
+ &gt;
+ &gt;
+ &gt;myVector :: A.Vector a -&gt; [a] -&gt; a -&gt; A.Vector a
+ &gt;myVector vector list element =
+ &gt; C.build builder
+ &gt; where
+ &gt; builder =
+ &gt; B.vector vector &lt;&gt;
+ &gt; foldMap B.singleton list &lt;&gt;
+ &gt; B.singleton element
+ </longdescription>
+</pkgmetadata>