The Definitive Framework
The definitive framework is a set of Haskell libraries that attempts to provide a simple and definitive infrastructure for writing all kinds of programs, from simple GUIs to complex AI algorithms.
“Definitive” is my interpretation of what “declarative” usually stands for, by which I mean the ability and propension to write programs that define words and give them meaning through combination with other words. Since we use that property of the Haskell language to define programs, I prefer to call it the “definitive” style of programming.
Every library in the DefF strives to provide a definitive interface for interfacing with one aspect of programming. In order of increasing complexity, the DefF is currently composed of the following libraries :
definitive-baseis the basic Haskell standard library, where some standard combinators have been redefined to better fit into the whole.
definitive-networkprovides some trivial network abstractions for listening on sockets.
definitive-parserdefines some basic parser combinators, as well as parsers for some common syntaxes (simplified XML, regexes, …)
definitive-soundprovides some (very) basic sound handling primitives and playback functionality.
definitive-filesystemdefines some abstractions for working with files in a definitive manner (using Lenses).
definitive-graphicsis a definitive OpenGL wrapper for creating windows and rendering 3D scenes using Reactive Programming for animating the scene and handling events.