File: README

package info (click to toggle)
haskell-src-exts 0.2.1~darcs20071212-2
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 348 kB
  • ctags: 14
  • sloc: haskell: 3,777; makefile: 144; sh: 42
file content (78 lines) | stat: -rw-r--r-- 2,780 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
========================================================================
		HSX - Haskell-Source with eXtensions
========================================================================

HSX 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.

Apart from the more standard extensions supported by e.g. GHC, HSX 
also provides support for HaRP (Haskell Regular Patterns) and HSP 
(Haskell Server Pages) syntax, and supplies functions for 
desugaring these extensions into vanilla Haskell (with extensions).

------------------------------------------------------------------------
Package structure:

The modules that comprise HSX all reside in the hierarchic 
namespace Language.Haskell.Hsx. The exposed modules are:

* Language.Haskell.Hsx.Syntax - The abstract syntax tree that the other 
  modules work on.
* Language.Haskell.Hsx.Build - Combinators for building abstract syntax.
* Language.Haskell.Hsx.Parser - Functions for parsing Haskell source 
  code into an abstract syntax representation.
* Language.Haskell.Hsx.Pretty - Pretty-printer for the abstract syntax.
* Language.Haskell.Hsx.Transform - Desugar HaRP and HSP code into 
  vanilla Haskell (with extensions).

* Language.Haskell.Hsx - 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
* Liberal class and instance heads
* Implicit parameters (ghc and hugs)
* Pattern guards
* Generalized algebraic data types (GADTs)
* Template Haskell (TH)
* Universal and existential quantification (forall)
* Empty data type declarations
* Unboxed tuples (# #)
* Regular patterns
* Haskell XML, HSP style

As-of-yet unsupported extensions:

* Pragmas. These can exist in the code but are treated as comments.
* 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 HSX 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.

------------------------------------------------------------------------
Building:

See the file INSTALL