The definitive-base package

[Tags: library]

The Definitive framework is an attempt at harnessing the declarative nature of Haskell to provide a solid and simple base for writing real-world programs, as well as complex algorithms.

This package contains the base modules of the framework, and provides only the most basic functionality, ranging from basic algebraic structures, such as monoids and rings, to functors, applicative functors, monads and transformers.

Lenses are used heavily in all the framework's abstractions, replacing more traditional functions (WriterT and runWriterT are implemented in the same isomorphism writerT, for example). When used wisely, lenses can greatly improve clarity in both code and thought, so I tried to provide for them in the most ubiquitous way possible, defining them as soon as possible. Isomorphisms in particular are surprisingly useful in many instances, from converting between types to acting on a value's representation as if it were the value itself.

Packages using the Definitive framework should be compiled with the RebindableSyntax flag and include the Definitive module, which exports the same interface as the Prelude, except for some extras. Here is a list of design differences between the standard Prelude and the Definitive framework :


Properties

Versions1.0, 1.2, 1.2.1, 2.3
Dependenciesarray (==0.5.*), base (==4.7.*), bytestring (==0.10.*), containers (==0.5.*), deepseq (==1.3.*), ghc-prim (==0.3.*), GLURaw (==1.4.*), OpenGL (==2.9.*), OpenGLRaw (==1.5.*), primitive (==0.5.*), vector (==0.10.*)
LicenseOtherLicense
AuthorMarc Coiffier
Maintainermarc.coiffier@gmail.com
CategoryPrelude
Home pagehttp://coiffier.net/projects/definitive-framework.html
Upload dateTue Nov 11 21:38:09 UTC 2014
Uploaded byMarcCoiffier
Downloads333 total (65 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees