SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 

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

Name : ghc-references
Version : 0.3.3.1 Vendor : obs://build_opensuse_org/devel:languages:haskell
Release : lp150.3.1 Date : 2018-06-16 01:39:02
Group : Development/Libraries/Haskell Source RPM : ghc-references-0.3.3.1-lp150.3.1.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:/9/openSUSE_Leap_15.0/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.3.1-G4Anq3bVtzc7GsFp3chWEm-ghc8.0.2.so()(64bit)

Requires :
libHSMonadRandom-0.5.1-6uvIhB08u1RHnyKFfb2cRN-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.6-AbJ3lKVXygDCG0eeQEv8Iu-ghc8.0.2.so()(64bit)
libHSbifunctors-5.4.2-KcF2f75KyQm5BjgJ8WkHCw-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.2-Fq9Xy9jdx6uIyJZn00E6Yc-ghc8.0.2.so()(64bit)
libHScontainers-0.5.7.1-ghc8.0.2.so()(64bit)
libHScontravariant-1.4-29zF0Im431177ovfbHYCGv-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.3-IX4kyVcHAyoH4uFYrsjY1R-ghc8.0.2.so()(64bit)
libHSeither-4.4.1.1-DOFe5BvSRVOI2iRWf4qauZ-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-6BdTDvOwMt99y1Q5P0yPIv-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-ArdkmQrtdsLPQA60ZQw2E-ghc8.0.2.so()(64bit)
libHSinstance-control-0.1.2.0-EHpxjjIfGvn8KeL9SkCfls-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.2-1Ci8dYJ8Tb7E3HTcTqOb8l-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.2.0-4578caNkWQ54Gt1mxLF2Yh-ghc8.0.2.so()(64bit)
libHSprofunctors-5.2.1-Ga89Nyw0d7LBEIoX4AZ6gT-ghc8.0.2.so()(64bit)
libHSrandom-1.1-9tceXaeYIMZ4JrKq20Egog-ghc8.0.2.so()(64bit)
libHSsemigroupoids-5.2.1-9yOMRuGyLDADO95KHmfBBa-ghc8.0.2.so()(64bit)
libHSsemigroups-0.18.3-5xL9BgkWQsCGwo6YahyMCM-ghc8.0.2.so()(64bit)
libHSstm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve-ghc8.0.2.so()(64bit)
libHSsyb-0.7-4OKdCpwGutyB1rNRmoa0ya-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.2-1cn50juu89QSL9QkUVcRY-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-HpvQyhZtrpZAKrQVHGNCKa-ghc8.0.2.so()(64bit)
libHSunix-2.7.2.1-ghc8.0.2.so()(64bit)
libHSunordered-containers-0.2.8.0-EsriWmISHwMG6fvrGnOReO-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.3.1-G4Anq3bVtzc7GsFp3chWEm
/usr/lib64/ghc-8.0.2/references-0.3.3.1-G4Anq3bVtzc7GsFp3chWEm/libHSreferences-0.3.3.1-G4Anq3bVtzc7GsFp3chWEm-ghc8.0.2.so
/usr/share/doc/packages/ghc-references
/usr/share/doc/packages/ghc-references/LICENSE

 
ICM