======================================================================== Haskell Source Extensions ======================================================================== haskell-src-exts is a package for handling and manipulating Haskell source code. It is based on the haskell-src package that is part of the standard libraries, but extends this to support a number of syntactic extensions, e.g. MPTCs, fundeps, GADTs, TH etc. It is intended as a direct replacement for the standard haskell-src package, and exports the same functions and data types, plus some more. Apart from the more standard extensions supported by e.g. GHC, haskell-src-exts also provides support for HaRP (Haskell Regular Patterns) and HSX (Haskell Source with XML) syntax. ------------------------------------------------------------------------ Package structure: The modules that comprise haskell-src-exts all reside in the hierarchic namespace Language.Haskell.Exts. The exposed modules are: * Language.Haskell.Exts.Syntax - The abstract syntax tree that the other modules work on. * Language.Haskell.Exts.Build - Combinators for building abstract syntax. * Language.Haskell.Exts.Parser - Functions for parsing Haskell source code into an abstract syntax representation. * Language.Haskell.Exts.Pretty - Pretty-printer for the abstract syntax. * Language.Haskell.Exts - Imports and re-exports all the above, and also defines some functions that combine functionality from several modules. ------------------------------------------------------------------------ Supported extensions: * Multi-parameter type classes (MPTCs) * Functional dependencies * Associated types, type families * Liberal class and instance heads * Implicit parameters (ghc and hugs) * Explicit kind signatures * Pattern guards * Generalized algebraic data types (GADTs) * Template Haskell (TH) * Universal and existential quantification (forall) * Empty data type declarations * Unboxed tuples (# #) * Standalone deriving * Regular patterns * Haskell XML, HSX style * Pragmas As-of-yet unsupported extensions: * Unboxed functions ( ident# ) Any other out there..? Unsupported: * n+k patterns ------------------------------------------------------------------------ Portability and dependencies: The package itself is Haskell98-compliant and should build with any Haskell compiler. ------------------------------------------------------------------------ License: The haskell-src-exts Package is distributed under a derived BSD-style license. It derives from several sources, all of which are distributable under BSD-style or compatible licenses. See the file LICENSE for the complete license text.