Commit d46fdf25 authored by Ben Gamari's avatar Ben Gamari 🐢
Browse files

users_guide: Various spelling fixes

Summary:
Today when reading through the users manual I noticed a few spelling issues.
This prompted me to run the document through ispell which turned up even more
issues. I've tried to be conservative here; most of the corrections are
misspellings and typos but in a few cases I've moved from American to British
orthography.

Test Plan: Read.

Reviewers: austin

Reviewed By: austin

Subscribers: bgamari, thomie

Differential Revision: https://phabricator.haskell.org/D925
parents 0d6c97ba a90712b4
......@@ -606,5 +606,6 @@ Loading package javavm ... linking ... WARNING: Overflown relocation field (# re
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -345,5 +345,6 @@ solve givens deriveds wanteds = ...
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -94,7 +94,7 @@
<tbody>
<row>
<entry><option>--help</option>,<option>-?</option></entry>
<entry>Disply help</entry>
<entry>Display help</entry>
<entry>mode</entry>
<entry>-</entry>
</row>
......@@ -1984,7 +1984,7 @@
<row>
<entry><option>-fliberate-case-threshold</option>=<replaceable>n</replaceable></entry>
<entry>Set the size threshold for the liberate-case transformation to <replaceable>n</replaceable> (default: 2000)</entry>
<entry>dynamis</entry>
<entry>dynamic</entry>
<entry><option>-fno-liberate-case-threshold</option></entry>
</row>
......@@ -2013,7 +2013,7 @@
<entry>
<option>-fmax-inline-memcpy-insns</option>=<replaceable>n</replaceable>
</entry>
<entry>Inline memcpy calls if they would generate no more
<entry>Inline <literal>memcpy</literal> calls if they would generate no more
than <replaceable>n</replaceable> pseudo instructions
(default: 32).
</entry>
......@@ -2025,7 +2025,7 @@
<entry>
<option>-fmax-inline-memset-insns</option>=<replaceable>n</replaceable>
</entry>
<entry>Inline memset calls if they would generate no more
<entry>Inline <literal>memset</literal> calls if they would generate no more
than <replaceable>n</replaceable> pseudo instructions
(default: 32).
</entry>
......@@ -3406,5 +3406,6 @@ Misc:
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -1185,8 +1185,8 @@ would then be rejected.
In short, if you want GADT-like behaviour for pattern synonyms,
then (unlike unlike concrete data constructors like <literal>S1</literal>)
you must write its type with explicit provided equalities.
For a concrete data construoctr like <literal>S1</literal> you can write
its type signature as eigher <literal>S1 :: Bool -> S Bool</literal> or
For a concrete data constructor like <literal>S1</literal> you can write
its type signature as either <literal>S1 :: Bool -> S Bool</literal> or
<literal>S1 :: (b~Bool) => Bool -> S b</literal>; the two are equivalent.
Not so for pattern synonyms: the two forms are different, in order to
distinguish the two cases above. (See <ulink url="https://ghc.haskell.org/trac/ghc/ticket/9953">Trac #9953</ulink> for
......@@ -1372,7 +1372,7 @@ rec { b &lt;- f a c ===> (b,c) &lt;- mfix (\ ~(b,c) -> do { b &lt;- f a c
A <literal>rec</literal>-block tells the compiler where precisely the recursive knot should be tied. It turns out that
the placement of the recursive knots can be rather delicate: in particular, we would like the knots to be wrapped
around as minimal groups as possible. This process is known as <emphasis>segmentation</emphasis>, and is described
in detail in Secton 3.2 of <ulink url="https://sites.google.com/site/leventerkok/recdo.pdf">A recursive do for
in detail in Section 3.2 of <ulink url="https://sites.google.com/site/leventerkok/recdo.pdf">A recursive do for
Haskell</ulink>. Segmentation improves polymorphism and reduces the size of the recursive knot. Most importantly, it avoids
unnecessary interference caused by a fundamental issue with the so-called <emphasis>right-shrinking</emphasis>
axiom for monadic recursion. In brief, most monads of interest (IO, strict state, etc.) do <emphasis>not</emphasis>
......@@ -1522,7 +1522,7 @@ Here are some other important points in using the recursive-do notation:
<para>Parallel list comprehensions are a natural extension to list
comprehensions. List comprehensions can be thought of as a nice
syntax for writing maps and filters. Parallel comprehensions
extend this to include the zipWith family.</para>
extend this to include the <literal>zipWith</literal> family.</para>
<para>A parallel list comprehension has multiple independent
branches of qualifier lists, each separated by a `|' symbol. For
......@@ -4064,7 +4064,7 @@ can be mentioned in the <literal>deriving</literal> clause.
<listitem><para>
GHC has a custom solver for discharging constraints that involve
class <literal>Typeable</literal>, and handwritten instances are forbidden.
This ensures that the programmer cannot subert the type system by
This ensures that the programmer cannot subvert the type system by
writing bogus instances.
</para></listitem>
......@@ -4082,8 +4082,8 @@ instance (Typeable t1, .., Typeable t_n) =>
Typeable (T t1 .. t_n)
</programlisting>
This rule works for any concrete type constructor, including type
constructors with polymorhic kinds. The only restriction is that
if the type constructor has a polymorhic kind, then it has to be applied
constructors with polymorphic kinds. The only restriction is that
if the type constructor has a polymorphic kind, then it has to be applied
to all of its kinds parameters, and these kinds need to be concrete
(i.e., they cannot mention kind variables).
</para></listitem>
......@@ -4512,7 +4512,7 @@ globally configurable settings in a program. For example,
assumeRH :: a -> a
-- Deterministic version of the Miller test
-- correctness depends on the generalized Riemann hypothesis
-- correctness depends on the generalised Riemann hypothesis
isPrime :: RiemannHypothesis => Integer -> Bool
isPrime n = assumeRH (...)
</programlisting>
......@@ -4707,12 +4707,12 @@ To get a more useful version of the Collects class, Hugs provides a mechanism
that allows programmers to specify dependencies between the parameters of a
multiple parameter class (For readers with an interest in theoretical
foundations and previous work: The use of dependency information can be seen
both as a generalization of the proposal for `parametric type classes' that was
both as a generalisation of the proposal for `parametric type classes' that was
put forward by Chen, Hudak, and Odersky, or as a special case of Mark Jones's
later framework for "improvement" of qualified types. The
underlying ideas are also discussed in a more theoretical and abstract setting
in a manuscript [implparam], where they are identified as one point in a
general design space for systems of implicit parameterization.).
general design space for systems of implicit parameterisation.).
To start with an abstract example, consider a declaration such as:
<programlisting>
......@@ -4944,7 +4944,7 @@ The <option>-XFlexibleInstances</option> flag implies <option>-XTypeSynonymInsta
</itemizedlist>
</para>
<para>
However, the instance declaration must still conformm to the rules for instance
However, the instance declaration must still conform to the rules for instance
termination: see <xref linkend="instance-termination"/>.
</para>
</sect3>
......@@ -4960,7 +4960,7 @@ is a type variable that occurs in the head.
<para>
The <option>-XFlexibleContexts</option> flag relaxes this rule, as well
as relaxing the corresponding rule for type signatures (see <xref linkend="flexible-contexts"/>).
Specfically, <option>-XFlexibleContexts</option>, allows (well-kinded) class constraints
Specifically, <option>-XFlexibleContexts</option>, allows (well-kinded) class constraints
of form <literal>(C t1 ... tn)</literal> in the context of an instance declaration.
</para>
<para>
......@@ -4968,7 +4968,7 @@ Notice that the flag does not affect equality constraints in an instance context
they are permitted by <option>-XTypeFamilies</option> or <option>-XGADTs</option>.
</para>
<para>
However, the instance declaration must still conformm to the rules for instance
However, the instance declaration must still conform to the rules for instance
termination: see <xref linkend="instance-termination"/>.
</para>
......@@ -5146,7 +5146,7 @@ makes instance inference go into a loop, because it requires the constraint
<para>
The <option>-XUndecidableInstances</option> flag is also used to lift some of the
restricitions imposed on type family instances. See <xref linkend="type-family-decidability"/>.
restrictions imposed on type family instances. See <xref linkend="type-family-decidability"/>.
</para>
</sect3>
......@@ -5164,7 +5164,7 @@ GHC also provides a way to to loosen
the instance resolution, by
allowing more than one instance to match, <emphasis>provided there is a most
specific one</emphasis>. Moreover, it can be loosened further, by allowing more than one instance to match
irespective of whether there is a most specific one.
irrespective of whether there is a most specific one.
This section gives the details.
</para>
<para>
......@@ -5229,7 +5229,7 @@ Eliminate any candidate IX for which both of the following hold:
<listitem><para>
If exactly one non-incoherent candidate remains, select it. If all
remaining candidates are incoherent, select an arbitary
remaining candidates are incoherent, select an arbitrary
one. Otherwise the search fails (i.e. when more than one surviving candidate is not incoherent).
</para></listitem>
......@@ -5303,7 +5303,7 @@ to <literal>Int</literal>, in which case instance (D) would be more specific sti
So GHC rejects the program.</para>
<para>
If, however, you add the flag <option>-XIncoherentInstances</option> when
compiling the module that contians (D), GHC will instead pick (C), without
compiling the module that contains (D), GHC will instead pick (C), without
complaining about the problem of subsequent instantiations.
</para>
<para>
......@@ -6329,7 +6329,7 @@ Note the following points:
</para></listitem>
<listitem><para>
The default declaration must mention only type <emphasis>variables</emphasis> on the left hand side,
and the right hand side must mention only type varaibels bound on the left hand side.
and the right hand side must mention only type variables bound on the left hand side.
However, unlike the associated type family declaration itself,
the type variables of the default instance are independent of those of the parent class.
</para></listitem>
......@@ -6729,7 +6729,7 @@ But that is not always the case. Consider
<programlisting>
type family F a
</programlisting>
Type family declararations have no right-hand side, but GHC must still infer a kind
Type family declarations have no right-hand side, but GHC must still infer a kind
for <literal>F</literal>. Since there are no constraints, it could infer
<literal>F :: forall k1 k2. k1 -> k2</literal>, but that seems <emphasis>too</emphasis>
polymorphic. So GHC defaults those entirely-unconstrained kind variables to <literal>*</literal> and
......@@ -6853,7 +6853,7 @@ gets defaulted to <literal>*</literal>.
</para></listitem>
<listitem><para>
A closed type familey has a complete signature when all of its type variables
A closed type family has a complete signature when all of its type variables
are annotated and a return kind (with a top-level <literal>::</literal>) is supplied.
</para></listitem>
</itemizedlist>
......@@ -6943,7 +6943,7 @@ Promotion</ulink>, which appeared at TLDI 2012.
Standard Haskell has a rich type language. Types classify terms and serve to
avoid many common programming mistakes. The kind language, however, is
relatively simple, distinguishing only lifted types (kind <literal>*</literal>),
type constructors (eg. kind <literal>* -> * -> *</literal>), and unlifted
type constructors (e.g. kind <literal>* -> * -> *</literal>), and unlifted
types (<xref linkend="glasgow-unboxed"/>). In particular when using advanced
type system features, such as type families (<xref linkend="type-families"/>)
or GADTs (<xref linkend="gadt"/>), this simple kind system is insufficient,
......@@ -7168,7 +7168,7 @@ annotation (see <xref linkend="explicit-namespaces"/>).
</para>
<para>
Here is an exampe of using type-level numeric literals to provide a safe
Here is an example of using type-level numeric literals to provide a safe
interface to a low-level function:
<programlisting>
import GHC.TypeLits
......@@ -7203,7 +7203,7 @@ example = from (Point 1 2) (Get :: Label "x")
<sect2 id="typelit-runtime">
<title>Runtime Values for Type-Level Literals</title>
<para>
Sometimes it is useful to access the value-level literal assocaited with
Sometimes it is useful to access the value-level literal associated with
a type-level literal. This is done with the functions
<literal>natVal</literal> and <literal>symbolVal</literal>. For example:
<programlisting>
......@@ -7260,7 +7260,7 @@ GHC.TypeLits> natVal (Proxy :: Proxy (2 + 3))
</para>
<para>
At present, GHC is quite limited in its reasoning about arithmetic:
it will only evalute the arithmetic type functions and compare the results---
it will only evaluate the arithmetic type functions and compare the results---
in the same way that it does for any other type function. In particular,
it does not know more general facts about arithmetic, such as the commutativity
and associativity of <literal>(+)</literal>, for example.
......@@ -7550,7 +7550,7 @@ and fail.
<para>
So in fact we use this as our <emphasis>definition</emphasis> of ambiguity: a type
<literal><replaceable>ty</replaceable></literal> is
ambiguious if and only if <literal>((undefined :: <replaceable>ty</replaceable>)
ambiguous if and only if <literal>((undefined :: <replaceable>ty</replaceable>)
:: <replaceable>ty</replaceable>)</literal> would fail to typecheck. We use a
very similar test for <emphasis>inferred</emphasis> types, to ensure that they too are
unambiguous.
......@@ -7625,7 +7625,7 @@ constraints lead to types of the form <literal>(?x::t') => t</literal>, which sa
function uses a dynamically-bound variable <literal>?x</literal>
of type <literal>t'</literal>". For
example, the following expresses the type of a sort function,
implicitly parameterized by a comparison function named <literal>cmp</literal>.
implicitly parameterised by a comparison function named <literal>cmp</literal>.
<programlisting>
sort :: (?cmp :: a -> a -> Bool) => [a] -> [a]
</programlisting>
......@@ -7638,8 +7638,8 @@ any valid identifier (e.g. <literal>ord ?x</literal> is a valid expression).
Use of this construct also introduces a new
dynamic-binding constraint in the type of the expression.
For example, the following definition
shows how we can define an implicitly parameterized sort function in
terms of an explicitly parameterized <literal>sortBy</literal> function:
shows how we can define an implicitly parameterised sort function in
terms of an explicitly parameterised <literal>sortBy</literal> function:
<programlisting>
sortBy :: (a -> a -> Bool) -> [a] -> [a]
......@@ -8005,7 +8005,7 @@ and <option>-XRank2Types</option> are synonyms for
<option>-XRankNTypes</option>. They used to specify finer
distinctions that GHC no longer makes. (They should really elicit a
deprecation warning, but they don't, purely to avoid the need to
library authors to change their old flags specifciations.)
library authors to change their old flags specifications.)
</para>
<sect3 id="univ">
......@@ -9157,7 +9157,7 @@ main = print "b"
</link>. Should you so wish, it is possible to enable
<literal>-fdefer-type-errors</literal> without enabling
<literal>-fdefer-typed-holes</literal>, by explicitly specifying
<literal>-fno-defer-typed-holes</literal> on the commandline after the
<literal>-fno-defer-typed-holes</literal> on the command-line after the
<literal>-fdefer-type-errors</literal> flag.
</para>
<para>
......@@ -9427,7 +9427,7 @@ baz b = [| quux $(mkPat b) = x + y |]
<para>
The difference in treatment of outermost and nested pattern splices is
because outermost splices are run at compile time. GHC can then use
the result of running the splice when analyzing the expressions within
the result of running the splice when analysing the expressions within
the pattern's scope. Nested splices, on the other hand, are <emphasis>not</emphasis>
run at compile time; they are run when the bracket is spliced in, sometime later.
Since nested pattern splices may refer to local variables, there is no way for GHC
......@@ -9458,7 +9458,7 @@ f n = \ [haskell|y|] -> y+n
<listitem>
<para>
Top-level declaration splices break up a source file into
<emphasis>delcaration groups</emphasis>. A
<emphasis>declaration groups</emphasis>. A
<emphasis>declaration group</emphasis> is the group of
declarations created by a top-level declaration splice, plus
those following it, down to but not including the next
......@@ -9906,7 +9906,7 @@ $ ./main
<title>Arrow notation
</title>
<para>Arrows are a generalization of monads introduced by John Hughes.
<para>Arrows are a generalisation of monads introduced by John Hughes.
For more details, see
<itemizedlist>
......
......@@ -105,7 +105,7 @@
</variablelist>
</sect1>
<sect1 id="wrong-compilee">
<sect1 id="wrong-compile">
<title>When your program &ldquo;does the wrong thing&rdquo;</title>
<indexterm><primary>problems running your program</primary></indexterm>
......@@ -208,5 +208,6 @@
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -169,7 +169,7 @@
</varlistentry>
</variablelist>
<para>There are several other haskell and GHC-related mailing
<para>There are several other Haskell and GHC-related mailing
lists served by <literal>www.haskell.org</literal>. Go to <ulink
url="http://www.haskell.org/mailman/listinfo/"><literal>http://www.haskell.org/mailman/listinfo/</literal></ulink>
for the full list.</para>
......@@ -314,5 +314,6 @@
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -11,5 +11,6 @@
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -82,7 +82,7 @@ $ ghc-pkg list
<para>An installed package is either <emphasis>exposed</emphasis>
or <emphasis>hidden</emphasis> by default. Packages hidden by
default are listed in parentheses
(eg. <literal>(lang-1.0)</literal>), or possibly in blue if your
(e.g. <literal>(lang-1.0)</literal>), or possibly in blue if your
terminal supports colour, in the output of <literal>ghc-pkg
list</literal>. Command-line flags, described below, allow you
to expose a hidden package or hide an exposed one. Only modules
......@@ -1424,7 +1424,7 @@ haddock-html: /usr/share/doc/ghc/html/libraries/unix
</term>
<listitem>
<para>(optional freeform) A string describing the stability of the package
(eg. stable, provisional or experimental).</para>
(e.g. stable, provisional or experimental).</para>
</listitem>
</varlistentry>
......@@ -1903,5 +1903,6 @@ package_id_n
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -198,5 +198,6 @@ nfib n | n &#60;= 1 = 1
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -834,7 +834,7 @@ $ cat foo.hspp</screen>
<para>On Darwin/OS X/iOS only, link in the framework <replaceable>name</replaceable>.
This option corresponds to the <option>-framework</option> option for Apple's Linker.
Please note that frameworks and packages are two different things - frameworks don't
contain any haskell code. Rather, they are Apple's way of packaging shared libraries.
contain any Haskell code. Rather, they are Apple's way of packaging shared libraries.
To link to Apple's &ldquo;Carbon&rdquo; API, for example, you'd use
<option>-framework Carbon</option>.
</para>
......@@ -1368,5 +1368,6 @@ $ cat foo.hspp</screen>
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -1782,5 +1782,6 @@ Options:
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -9,7 +9,7 @@
<sect1 id="runghc-introduction">
<title>Flags</title>
<para>The runghc commandline looks like:</para>
<para>The runghc command-line looks like:</para>
<screen>
runghc [runghc flags] [GHC flags] module [program args]
</screen>
......@@ -42,5 +42,6 @@ runghc [runghc flags] [GHC flags] module [program args]
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -1600,5 +1600,6 @@ $ ./a.out +RTS --info
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -953,5 +953,6 @@
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -1346,5 +1346,6 @@ first line, GHC considers it an orphan module.
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -260,3 +260,10 @@ ghc -dynamic Main.hs -o main -lfoo -L. -optl-Wl,-rpath,'$ORIGIN'
</sect2>
</sect1>
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -58,7 +58,7 @@ should go here!</para>
<emphasis>real memory</emphasis> on your machine, and the
machine starts &ldquo;thrashing,&rdquo; <emphasis>the party
is over</emphasis>. Compile times will be worse than
terrible! Use something like the csh-builtin
terrible! Use something like the csh builtin
<command>time</command> command to get a report on how many
page faults you're getting.</para>
......@@ -544,5 +544,6 @@ be required).
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -1290,7 +1290,7 @@ test.hs:(5,4)-(6,7):
</indexterm>
<indexterm><primary>deprecated-flags</primary></indexterm>
<para>Causes a warning to be emitted when a deprecated
commandline flag is used.</para>
command-line flag is used.</para>
<para>This option is on by default.</para>
</listitem>
......@@ -1455,7 +1455,7 @@ foreign import "&amp;f" f :: FunPtr t
<para>This option is on by default. As usual you can suppress it on a per-module basis
with <option>-fno-warn-redundant-constraints</option>. Occasionally you may specifically
want a function to have a more constrained signature than necessary, perhaps to
leave yourself wiggle-rooom for changing the implementation without changing the
leave yourself wiggle-room for changing the implementation without changing the
API. In that case, you can suppress the warning on a per-function basis, using a
call in a dead binding. For example:
<programlisting>
......@@ -1622,7 +1622,7 @@ f foo = foo { x = 6 }
<para>This option is on by default, and warns you whenever
the construction of a labelled field constructor isn't
complete, missing initializers for one or more fields. While
complete, missing initialisers for one or more fields. While
not an error (the missing fields are initialised with
bottoms), it is often an indication of a programmer error.</para>
</listitem>
......@@ -2607,7 +2607,8 @@ _ = rhs3 -- No warning: lone wild-card pattern
<indexterm><primary><option>-fmax-inline-memcpy-insn</option></primary></indexterm>
</term>
<listitem>
<para>Inline memcpy calls if they would generate no more than n pseudo instructions (default: 32).
<para>Inline <literal>memcpy</literal> calls if they would generate
no more than n pseudo instructions (default: 32).
</para>
</listitem>
</varlistentry>
......@@ -2618,7 +2619,8 @@ _ = rhs3 -- No warning: lone wild-card pattern
<indexterm><primary><option>-fmax-inline-memset-insns</option></primary></indexterm>
</term>
<listitem>
<para>Inline memset calls if they would generate no more than n pseudo instructions (default: 32).
<para>Inline <literal>memset</literal> calls if they would generate
no more than n pseudo instructions (default: 32).
</para>
</listitem>
</varlistentry>
......@@ -2884,11 +2886,11 @@ foldl f z (Stream step s _) = foldl_loop SPEC z s
<para>Here, after GHC inlines the body of
<literal>foldl</literal> to a call site, it will perform
call-pattern specialization very aggressively on
call-pattern specialisation very aggressively on
<literal>foldl_loop</literal> due to the use of
<literal>SPEC</literal> in the argument of the loop
body. <literal>SPEC</literal> from
<literal>GHC.Types</literal> is specifically recognized by
<literal>GHC.Types</literal> is specifically recognised by
the compiler.</para>
<para>(NB: it is extremely important you use
......@@ -3534,5 +3536,6 @@ data D = D !C
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -602,5 +602,6 @@ tags:
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
......@@ -570,5 +570,6 @@ $ tester
<!-- Emacs stuff:
;;; Local Variables: ***
;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; ispell-local-dictionary: "british" ***
;;; End: ***
-->
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment