X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=docs%2Fusers_guide%2Fglasgow_exts.xml;h=e42bf79f92c05e92f107443407b2ea941fca2fde;hp=87e2e0df2662054a900d594391d81bb1a37ff5c6;hb=0edaca4834b511ac2c58fea3734a75cc52ac5c50;hpb=709faa1b6cbc3704e23da7d99392475a7e4207cd
diff --git a/docs/users_guide/glasgow_exts.xml b/docs/users_guide/glasgow_exts.xml
index 87e2e0d..e42bf79 100644
--- a/docs/users_guide/glasgow_exts.xml
+++ b/docs/users_guide/glasgow_exts.xml
@@ -92,7 +92,7 @@ documentation describes all the libraries that come with GHC.
Haskell 98 described in , except where otherwise
noted. We are trying to move away from this portmanteau flag,
- and towards enabling features individaully.
+ and towards enabling features individually.
New reserved words: forall (only in
types), mdo.
@@ -333,7 +333,7 @@ the result of such processing is part of the description of the
url="http://www.haskell.org/ghc/docs/papers/core.ps.gz">External
Core language.
So that document is a good place to look for a type-set version.
-We would be very happy if someone wanted to volunteer to produce an SGML
+We would be very happy if someone wanted to volunteer to produce an XML
back end to the program that processes primops.txt so that
we could include the results here in the User Guide.
@@ -753,7 +753,7 @@ view :: Type -> TypeView
The representation of Typ is held abstract, permitting implementations
-to use a fancy representation (e.g., hash-consing to managage sharing).
+to use a fancy representation (e.g., hash-consing to manage sharing).
Without view patterns, using this signature a little inconvenient:
@@ -1113,7 +1113,7 @@ In this example, the list output would take on
(The function sortWith is not a keyword; it is an ordinary
function that is exported by GHC.Exts.)
-There are five new forms of compehension qualifier,
+There are five new forms of comprehension qualifier,
all introduced by the (existing) keyword then:
@@ -1160,7 +1160,7 @@ then group by e using f
is a function supplied to f by the compiler which lets it compute e on every
element of the list being transformed. However, unlike the non-grouping case,
f additionally partitions the list into a number of sublists: this means that
- at every point after this statement, binders occuring before it in the comprehension
+ at every point after this statement, binders occurring before it in the comprehension
refer to lists of possible values, not single values. To help understand
this, let's look at an example:
@@ -1296,7 +1296,7 @@ output = [ x
In all cases (apart from arrow notation), the static semantics should be that of the desugared form,
-even if that is a little unexpected. For emample, the
+even if that is a little unexpected. For example, the
static semantics of the literal 368
is exactly that of fromInteger (368::Integer); it's fine for
fromInteger to have any of the types:
@@ -1537,11 +1537,12 @@ For example, in a let, it applies in the right-hand
sides of other let-bindings and the body of the
letC. Or, in recursive do
expressions (), the local fixity
-declarations of aA let statement scope over other
+declarations of a let statement scope over other
statements in the group, just as the bound name does.
-Moreover, a local fixity declatation *must* accompany a local binding of
+
+Moreover, a local fixity declaration *must* accompany a local binding of
that name: it is not possible to revise the fixity of name bound
elsewhere, as in
@@ -1550,6 +1551,7 @@ let infixr 9 $ in ...
Because local fixity declarations are technically Haskell 98, no flag is
necessary to enable them.
+
@@ -1829,7 +1831,7 @@ apply fn to val to get a boolean. For e
-What this allows us to do is to package heterogenous values
+What this allows us to do is to package heterogeneous values
together with a bunch of functions that manipulate them, and then treat
that collection of packages in a uniform manner. You can express
quite a bit of object-oriented-like programming this way.
@@ -2210,9 +2212,9 @@ like this:
data NumInst a
= Num a => MkNumInst (NumInst a)
-Notice that, unlike the situation when declaring an existental, there is
+Notice that, unlike the situation when declaring an existential, there is
no forall, because the Num constrains the
-data type's univerally quantified type variable a.
+data type's universally quantified type variable a.
A constructor may have both universal and existential type variables: for example,
the following two declarations are equivalent:
@@ -3648,8 +3650,8 @@ in GHC, you can give the foralls if you want. See a is "reachable" if it appears
+in the same constraint as either a type variable free in
type, or another reachable type variable.
A value with a type that does not obey
this reachability restriction cannot be used without introducing
@@ -4252,7 +4254,7 @@ it has rank-2 types on the left of a function arrow.
GHC has three flags to control higher-rank types:
- : data constructors (only) can have polymorphic argment types.
+ : data constructors (only) can have polymorphic argument types.
: any function (including data constructors) can have a rank-2 type.
@@ -4592,7 +4594,7 @@ In Haskell, a programmer-written type signature is implicitly quantified over
its free type variables (Section
4.1.2
-of the Haskel Report).
+of the Haskell Report).
Lexically scoped type variables affect this implicit quantification rules
as follows: any type variable that is in scope is not universally
quantified. For example, if type variable a is in scope,
@@ -4690,8 +4692,8 @@ already in scope (i.e. bound by the enclosing context), matters are simple: the
signature simply constrains the type of the pattern in the obvious way.
-Unlike expression and declaration type signatures, pattern type signatures are not implictly generalised.
-The pattern in a patterm binding may only mention type variables
+Unlike expression and declaration type signatures, pattern type signatures are not implicitly generalised.
+The pattern in a pattern binding may only mention type variables
that are already in scope. For example:
f :: forall a. [a] -> (Int, [a])
@@ -5015,14 +5017,14 @@ Wiki page.
That is, ''thing interprets thing in a type context.
- These Names can be used to construct Template Haskell expressions, patterns, delarations etc. They
+ These Names can be used to construct Template Haskell expressions, patterns, declarations etc. They
may also be given as an argument to the reify function.
-(Compared to the original paper, there are many differnces of detail.
+(Compared to the original paper, there are many differences of detail.
The syntax for a declaration splice uses "$" not "splice".
The type of the enclosed expression must be Q [Dec], not [Q Dec].
Type splices are not implemented, and neither are pattern splices or quotations.
@@ -6220,7 +6222,7 @@ key_function :: Int -> String -> (Bool, Double)
function "f" has a number of other effects:
-No funtions are inlined into f. Otherwise
+No functions are inlined into f. Otherwise
GHC might inline a big function into f's right hand side,
making f big; and then inline f blindly.
@@ -7194,7 +7196,7 @@ g x = show x
- However, when external for is generated (via
+ However, when external core is generated (via
), there will be Notes attached to the
expressions show and x.
The core function declaration for f is:
@@ -7545,6 +7547,7 @@ standard behaviour.
;;; Local Variables: ***
;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
+ ;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->