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.4.7 Date : 2018-07-11 16:28:53
Group : Development/Libraries/Haskell Source RPM : ghc-references-0.3.3.1-lp150.4.7.src.rpm
Size : 0.77 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:/next/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-JLCQiVFmxxC1EkQ0e17YWW-ghc8.4.3.so()(64bit)

Requires :
libHSStateVar-1.1.1.0-BmCYP2gLue736T5hzlFgTZ-ghc8.4.3.so()(64bit)
libHSarray-0.5.2.0-ghc8.4.3.so()(64bit)
libHSbase-4.11.1.0-ghc8.4.3.so()(64bit)
libHSbase-orphans-0.7-85wcea2rRmdArILlfYz5fz-ghc8.4.3.so()(64bit)
libHSbifunctors-5.5.3-331ngshsGPFEUf6CbgTomw-ghc8.4.3.so()(64bit)
libHSbinary-0.8.5.1-ghc8.4.3.so()(64bit)
libHSbytestring-0.10.8.2-ghc8.4.3.so()(64bit)
libHScomonad-5.0.4-K7ULiFnmLGh3CKZ2KHDB2i-ghc8.4.3.so()(64bit)
libHScontainers-0.5.11.0-ghc8.4.3.so()(64bit)
libHScontravariant-1.5-8Ex4X7Qm7vhBSlBZJUgXrj-ghc8.4.3.so()(64bit)
libHSdeepseq-1.4.3.0-ghc8.4.3.so()(64bit)
libHSdirectory-1.3.1.5-ghc8.4.3.so()(64bit)
libHSdistributive-0.6-AuJqWXyRRj61SVaKIdMNVM-ghc8.4.3.so()(64bit)
libHSeither-5.0.1-19IeYTpzcjyGu0lWtUqQbw-ghc8.4.3.so()(64bit)
libHSfilepath-1.4.2-ghc8.4.3.so()(64bit)
libHSghc-boot-th-8.4.3-ghc8.4.3.so()(64bit)
libHSghc-prim-0.5.2.0-ghc8.4.3.so()(64bit)
libHShashable-1.2.7.0-8MkquYouWwiLIw3HmVGSkN-ghc8.4.3.so()(64bit)
libHSinstance-control-0.1.2.0-4qTkMUcUntn43TavuF0iey-ghc8.4.3.so()(64bit)
libHSinteger-gmp-1.0.2.0-ghc8.4.3.so()(64bit)
libHSmtl-2.2.2-ghc8.4.3.so()(64bit)
libHSpretty-1.1.3.6-ghc8.4.3.so()(64bit)
libHSprofunctors-5.3-LJQxEwMPZOpGN2EDC7MMkz-ghc8.4.3.so()(64bit)
libHSsemigroupoids-5.2.2-4EOP1yxtxEbGgbvUjGEDFD-ghc8.4.3.so()(64bit)
libHSsemigroups-0.18.5-E4FVMc5VZAG98u64romz5-ghc8.4.3.so()(64bit)
libHSstm-2.4.5.0-ghc8.4.3.so()(64bit)
libHSsyb-0.7-2jW43lwzJV5e7EQvU8PxV-ghc8.4.3.so()(64bit)
libHStagged-0.8.6-BztYjsXOhuvLBoCBCdmM5I-ghc8.4.3.so()(64bit)
libHStemplate-haskell-2.13.0.0-ghc8.4.3.so()(64bit)
libHStext-1.2.3.0-ghc8.4.3.so()(64bit)
libHSth-abstraction-0.2.8.0-Ct896m4STpK8GA15Cl5y88-ghc8.4.3.so()(64bit)
libHStime-1.8.0.2-ghc8.4.3.so()(64bit)
libHStransformers-0.5.5.0-ghc8.4.3.so()(64bit)
libHStransformers-compat-0.6.2-EZ0ZvADLUlc4V8RuKaJX5W-ghc8.4.3.so()(64bit)
libHSuniplate-1.6.12-3ufb4M7E82X4eANHaW2opB-ghc8.4.3.so()(64bit)
libHSunix-2.7.2.2-ghc8.4.3.so()(64bit)
libHSunordered-containers-0.2.9.0-IkfpzvG0LzrHAbTzfMidvY-ghc8.4.3.so()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libdl.so.2()(64bit)
libgmp.so.10()(64bit)
libm.so.6()(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.4.3/references-0.3.3.1-JLCQiVFmxxC1EkQ0e17YWW
/usr/lib64/ghc-8.4.3/references-0.3.3.1-JLCQiVFmxxC1EkQ0e17YWW/libHSreferences-0.3.3.1-JLCQiVFmxxC1EkQ0e17YWW-ghc8.4.3.so
/usr/share/licenses/ghc-references
/usr/share/licenses/ghc-references/LICENSE

 
ICM