From: simonmar Date: Thu, 15 Mar 2001 12:07:54 +0000 (+0000) Subject: [project @ 2001-03-15 12:07:54 by simonmar] X-Git-Tag: Approximately_9120_patches~2399 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=33e03e0ba6cc2cbaf17ae80ba4f9b2500b648232;p=ghc-hetmet.git [project @ 2001-03-15 12:07:54 by simonmar] fix up markup --- diff --git a/ghc/docs/users_guide/glasgow_exts.sgml b/ghc/docs/users_guide/glasgow_exts.sgml index d71941e..779332b 100644 --- a/ghc/docs/users_guide/glasgow_exts.sgml +++ b/ghc/docs/users_guide/glasgow_exts.sgml @@ -19,141 +19,122 @@ performance because of the implementation costs of Haskell's Executive summary of our extensions: - - - - -Unboxed types and primitive operations: - - -You can get right down to the raw machine types and operations; -included in this are “primitive arrays” (direct access to Big Wads -of Bytes). Please see and following. - - - - - -Type system extensions: - - GHC supports a large number of extensions to Haskell's type -system. Specifically: - - - - -Multi-parameter type classes: - - - - - - - - -Functional dependencies: - - - - - - + - -Implicit parameters: - - - - - - - - -Local universal quantification: - - - - - - - - -Extistentially quantification in data types: - - - - - - - - -Scoped type variables: - - -Scoped type variables enable the programmer to supply type signatures -for some nested declarations, where this would not be legal in Haskell -98. Details in . - - - - + + Unboxed types and primitive operations: + + You can get right down to the raw machine types and + operations; included in this are “primitive + arrays” (direct access to Big Wads of Bytes). Please + see and following. + + + + Type system extensions: + + GHC supports a large number of extensions to Haskell's + type system. Specifically: + + + + Multi-parameter type classes: + + + + + + + Functional dependencies: + + + + + + + Implicit parameters: + + + + + + + Local universal quantification: + + + + + + + Extistentially quantification in data types: + + + + + + + Scoped type variables: + + Scoped type variables enable the programmer to + supply type signatures for some nested declarations, + where this would not be legal in Haskell 98. Details in + . + + + + + - -Pattern guards - - -Instead of being a boolean expression, a guard is a list of qualifiers, exactly as in a list comprehension. See . - - - + + Pattern guards + + Instead of being a boolean expression, a guard is a list + of qualifiers, exactly as in a list comprehension. See . + + - -Foreign calling: - - -Just what it sounds like. We provide lots of rope that you -can dangle around your neck. Please see . - - - + + Foreign calling: + + Just what it sounds like. We provide + lots of rope that you can dangle around + your neck. Please see . + + - -Pragmas - - -Pragmas are special instructions to the compiler placed in the source -file. The pragmas GHC supports are described in . - - - + + Pragmas + + Pragmas are special instructions to the compiler placed + in the source file. The pragmas GHC supports are described in + . + + - -Rewrite rules: - - -The programmer can specify rewrite rules as part of the source program -(in a pragma). GHC applies these rewrite rules wherever it can. -Details in . - - - + + Rewrite rules: + + The programmer can specify rewrite rules as part of the + source program (in a pragma). GHC applies these rewrite rules + wherever it can. Details in . + + - -Generic classes: - - -Generic class declarations allow you to define a class -whose methods say how to work over an arbitrary data type. -Then it's really easy to make any new type into an instance of -the class. This generalises the rather ad-hoc "deriving" feature -of Haskell 98. -Details in . - - - - - + + Generic classes: + + Generic class declarations allow you to define a class + whose methods say how to work over an arbitrary data type. + Then it's really easy to make any new type into an instance of + the class. This generalises the rather ad-hoc "deriving" + feature of Haskell 98. Details in . + + + Before you get too carried away working at the lowest level (e.g., @@ -214,15 +195,6 @@ program), you may wish to check if there are libraries that provide a - : - - - See . Only relevant if - you also use . - - - - @@ -2333,7 +2305,7 @@ declaration. For example, both these declarations are illegal: Reason: exactly which implicit parameter you pick up depends on exactly where you invoke a function. But the ``invocation'' of instance declarations is done behind the scenes by the compiler, so it's hard to figure out exactly where it is done. -Easiest thing is to outlaw the offending types. +Easiest thing is to outlaw the offending types.