SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 

ghc-references rpm build for : openSUSE Tumbleweed. For other distributions click ghc-references.

Name : ghc-references
Version : 0.3.2.1 Vendor : obs://build_opensuse_org/devel:languages:haskell
Release : 8.9 Date : 2017-08-03 14:00:00
Group : Development/Libraries/Haskell Source RPM : ghc-references-0.3.2.1-8.9.src.rpm
Size : 0.79 MB
Packager : (none)
Summary : Selectors for reading and updating data
Description :
References are data accessors that can read, write or update the accessed
infromation through their context. They are first-class values, can be passed
in functions, transformed, combined. References generalize lenses, folds and
traversals for haskell (see: < https://hackage.haskell.org/package/lens>).

References are more general than field selectors in traditional languages.

* References are first-class values. If there is a struct in C, for example,
with an `int` field `fl`, then fl can only be used as part of an expression.
One can not generalize a function to take a field selector and transform the
selected data or use it in other ways.

* They can have different meanings, while field accessors can only represent
data-level containment. They can express uncertain containment (like field
selectors of C unions), different viewpoints of the same data, and other
concepts.

There are two things that references can do but the previously mentioned access
methods don\'t.

* References can cooperate with monads, for example IO. This opens many new
applications.

* References can be added using the \'&+&\' operator, to create new lenses more
easily.

Basic idea taken from the currently not maintained package
< https://hackage.haskell.org/package/yall>.

An example use of the references (a logger application that spawns new threads
to update a global log):

> logger = > (forever $ do > log < - logChan ^? chan&logRecord -- Extract the
log record from the received log message > thrId < - forkIO (do time < - getTime
> ioref&lastLogTime != time $ logDB -- Update the last logging time mutable log
database > let logMsg = senderThread .- show -- Transform the thread id to a
string and > $ loggingTime .= time -- update the time > $ log -- inside the log
message > ioref&debugInfos !~ addLogEntry log $ logDB -- update the table of
log entries > mvar !- (+1) $ count ) > mvar !- (thrId:) $ updaters -- Record
the spawned thread > ) `catch` stopUpdaters updaters > where stopUpdaters
updaters ThreadKilled = > mvar&traverse !| killThread $ updaters -- Kill all
spawned threads before stopping

There are a bunch of predefined references for datatypes included in standard
libraries.

New references can be created in several ways:

* From getter, setter and updater, using the \'reference\' function.

* From getter and setter, using one of the simplified functions (\'lens\',
\'simplePartial\', \'partial\', ...).

* Using the `Data.Traversal` instance on a datatype to generate a traversal of
each element.

* Using lenses from `Control.Lens` package. There are a lot of packages
defining lenses, folds and traversals for various data structures, so it is
very useful that all of them can simply be converted into a reference.

* Generating references for newly defined datatypes using the `makeReferences`
Template Haskell function. .

RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/haskell:/lts:/8/openSUSE_Tumbleweed/x86_64

Content of RPM  Changelog  Provides Requires

Hmm ... It's impossible ;-) This RPM doesn't exist on any FTP server

Provides :
ghc-references
ghc-references(x86-64)
libHSreferences-0.3.2.1-1hX4YtnB4fIGQQjV4LVUdv-ghc8.0.2.so()(64bit)

Requires :
libHSMonadRandom-0.5.1-IY6HiWu00vQLARukQW3KMH-ghc8.0.2.so()(64bit)
libHSStateVar-1.1.0.4-5dJbnTVECtEAhfJXPZKdbO-ghc8.0.2.so()(64bit)
libHSarray-0.5.1.1-ghc8.0.2.so()(64bit)
libHSbase-4.9.1.0-ghc8.0.2.so()(64bit)
libHSbase-orphans-0.5.4-ABoxiBf7nXc7Qqh66CgYc9-ghc8.0.2.so()(64bit)
libHSbifunctors-5.4.2-wt6HPG9UFgCjbd0zbVYNT-ghc8.0.2.so()(64bit)
libHSbinary-0.8.3.0-ghc8.0.2.so()(64bit)
libHSbytestring-0.10.8.1-ghc8.0.2.so()(64bit)
libHScomonad-5.0.1-7j4AeOMTFovFSFO9XMFm1-ghc8.0.2.so()(64bit)
libHScontainers-0.5.7.1-ghc8.0.2.so()(64bit)
libHScontravariant-1.4-3UCY3arLvoG71jrGOYoc39-ghc8.0.2.so()(64bit)
libHSdeepseq-1.4.2.0-ghc8.0.2.so()(64bit)
libHSdirectory-1.3.0.0-ghc8.0.2.so()(64bit)
libHSdistributive-0.5.2-JCgfTXNR3ywAyV7fFWIBI5-ghc8.0.2.so()(64bit)
libHSeither-4.4.1.1-IRRdQbXZmZQ2emmKWcojaa-ghc8.0.2.so()(64bit)
libHSexceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U-ghc8.0.2.so()(64bit)
libHSfilepath-1.4.1.1-ghc8.0.2.so()(64bit)
libHSfree-4.12.4-GP8SJAzGfyq6UeKHSkzaha-ghc8.0.2.so()(64bit)
libHSghc-boot-th-8.0.2-ghc8.0.2.so()(64bit)
libHSghc-prim-0.5.0.0-ghc8.0.2.so()(64bit)
libHShashable-1.2.6.1-1kESIAoxKUjIcRePT58baP-ghc8.0.2.so()(64bit)
libHSinstance-control-0.1.1.1-1defRS82vAAEmZKRhe67aa-ghc8.0.2.so()(64bit)
libHSinteger-gmp-1.0.0.1-ghc8.0.2.so()(64bit)
libHSmmorph-1.0.9-5bASEvmIkr5CpdAYXwPsn0-ghc8.0.2.so()(64bit)
libHSmonad-control-1.0.2.1-CqOqIBYVBjy1GnPfyWnFHC-ghc8.0.2.so()(64bit)
libHSmtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6-ghc8.0.2.so()(64bit)
libHSprelude-extras-0.4.0.3-BhL9U5k7NtGJn1itwIHt2Y-ghc8.0.2.so()(64bit)
libHSpretty-1.1.3.3-ghc8.0.2.so()(64bit)
libHSprimitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH-ghc8.0.2.so()(64bit)
libHSprofunctors-5.2-85ZLvwISeusLRZoJlitoyP-ghc8.0.2.so()(64bit)
libHSrandom-1.1-9tceXaeYIMZ4JrKq20Egog-ghc8.0.2.so()(64bit)
libHSsemigroupoids-5.1-G6hp8hbTJmG326ffvAeaw8-ghc8.0.2.so()(64bit)
libHSsemigroups-0.18.2-GvTCUro9Hym1wGKOLNRfUA-ghc8.0.2.so()(64bit)
libHSstm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve-ghc8.0.2.so()(64bit)
libHSsyb-0.6-IcoSwlPi2Nx4zSqMmorFPS-ghc8.0.2.so()(64bit)
libHStagged-0.8.5-1mTloBSoUxv8dqUr8XBGBt-ghc8.0.2.so()(64bit)
libHStemplate-haskell-2.11.1.0-ghc8.0.2.so()(64bit)
libHStext-1.2.2.1-FwvWBfkNJh1I1NMMegz0uY-ghc8.0.2.so()(64bit)
libHStime-1.6.0.1-ghc8.0.2.so()(64bit)
libHStransformers-0.5.2.0-ghc8.0.2.so()(64bit)
libHStransformers-base-0.4.4-GKSs0LKukAL8ymq2naFmrH-ghc8.0.2.so()(64bit)
libHStransformers-compat-0.5.1.4-IuFogs8HAVUJBWVNMhtssu-ghc8.0.2.so()(64bit)
libHSuniplate-1.6.12-JlIVN7wBjHMAqPsooftbt2-ghc8.0.2.so()(64bit)
libHSunix-2.7.2.1-ghc8.0.2.so()(64bit)
libHSunordered-containers-0.2.8.0-7sRzHY7nA2MDTBp8Ugtj2E-ghc8.0.2.so()(64bit)
libHSvoid-0.7.2-4PWwLjXxAER9U3zGpDhf6e-ghc8.0.2.so()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libdl.so.2()(64bit)
libgmp.so.10()(64bit)
libpthread.so.0()(64bit)
librt.so.1()(64bit)
libutil.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1


Content of RPM :
/usr/lib64/ghc-8.0.2/references-0.3.2.1-1hX4YtnB4fIGQQjV4LVUdv
/usr/lib64/ghc-8.0.2/references-0.3.2.1-1hX4YtnB4fIGQQjV4LVUdv/libHSreferences-0.3.2.1-1hX4YtnB4fIGQQjV4LVUdv-ghc8.0.2.so
/usr/share/doc/packages/ghc-references
/usr/share/doc/packages/ghc-references/LICENSE

 
ICM