Haskell: Batteries Included
The Platform Specification is a cabal file stating required tools and packages. The content of the platform is summarised below:
- GHC 6.10.4 - The state-of-the-art optimzing compiler for Haskell.
- GHCi 6.10.4 - A bytecode interpreter and interactive environment for Haskell
- The GHCi debugger - An interactive, imperative-style debugger for Haskell
- The GHC parallel runtime - a multicore language runtime, featuring lightweight threads, thread sparks, affinity control, and a parallel garbage collector
- The Happy parser generator - Happy 1.18.4, a yacc-like parser generator for Haskell
- The Alex lexer generator - Alex 2.3.1, a lex-like lexer generator for Haskell
- The Haddock Documentation tool - generator Haddock 2.4.2
- The Cabal package distribution tool - cabal-install 0.6.2, download and install new Haskell packages from Hackage
- The hsc2hs foreign language binding tool - a preprocessor for binding Haskell to C
Packages and Documentation
- base, array, bytestring, Cabal, containers, directory, editline, filepath, ghc-prim, haskell98, hpc, integer, old-locale, old-time, packedstring, pretty, process, random, syb, template-haskell, unix, Win32, cgi, fgl, GLUT, haskell-src, html, HUnit, mtl, network, OpenGL, parallel, parsec, QuickCheck, regex-base, regex-compat, regex-posix, stm, time, xhtml, zlib, HTTP
Functionality
The Haskell Prelude
- Control Structures
- applicatives, arrows, functors, monoids
- synchronous and asynchronous (extensible) exceptions
- monads: the mtl monad suite
- foldables, traversables
- Concurrency and Parallelism
- lightweight threads
- thread sparks / futures
- software transactional memory
- MVars: thread synchronization variables
- channels, semaphors, sample vars
- Data Structures
- primitive and standard data types
- strings
- sequence types
- pure, impure arrays, boxed/unboxed, foreign, storable, ST, diff arrays
- strict and lazy bytestrings
- regular, and inductive graphs
- finite maps
- patricia tries
- sets
- fingertrees
- mutable references
- mutable hashtables
- dynamic types
- weak and stable references
- Debugging and Testing
- tracing and debugging
- HUnit uni testing
- QuickCheck test generation
- HPC code coverage framework
- Heap profiling
- Retainer profiling
- Distribution
- The Cabal distribution framework
- Generics
- Template Haskell
- Scrap-Your-Boilerplate generics
- Graphics
- Languages
- The C FFI specification
- C errno handling
- C types
- Haskell98 compatibility layer
- Haskell language parsing and pretty printing
- Network
- Sockets, Handles
- HTTP protocol client
- CGI Common Gateway Interface support.
- URI construction
- Math
- arbitrary precision integers and ratios
- fixed precision numbers
- complex numbers
- random number generators
- Text
- Unicode characters
- readp parsing combinators
- parsec parsing combinators
- Hughes/SPJ pretty printing combinators
- posix regular expressions
- System
- file and handle abstractions
- System IO
- garbage collector services
- portable process and pipe support
- directory handling
- OS portable filepath manipulation
- editline console handling
- environment handling
- cpu time, system info, posix, timeouts
- Unix Posix support or Win32 support
- portable dates and calender times
- read/show data serialisation
- zlib compression
- locale support
- Web
- simple html and xhtml generation