</ProgramListing>
<IndexTerm><Primary>Integer type</Primary></IndexTerm>
-The primitive ops to support large <Literal>Integers</Literal> use the ``pieces'' of the
+The primitive ops to support large <Literal>Integers</Literal> use the “pieces” of the
representation, and are as follows:
</Para>
<Para>
Operations for indexing off of C pointers (<Literal>Addr#</Literal>s) to snatch values
-are listed under ``arrays''.
+are listed under “arrays”.
</Para>
</Sect2>
</Para>
<Para>
-We use the terms ``reading'' and ``writing'' to refer to accessing
+We use the terms “reading” and “writing” to refer to accessing
<Emphasis>mutable</Emphasis> arrays (see <XRef LinkEnd="sect-mutable">), and
-``indexing'' to refer to reading a value from an <Emphasis>immutable</Emphasis>
+“indexing” to refer to reading a value from an <Emphasis>immutable</Emphasis>
array.
</Para>
But the <Emphasis>only</Emphasis> effect of this parameterisation is in the type
system: all values of type <Literal>State#</Literal> are represented in the same way.
Indeed, they are all represented by nothing at all! The code
-generator ``knows'' to generate no code, and allocate no registers
+generator “knows” to generate no code, and allocate no registers
etc, for primitive states.
</Para>
<Para>
The type <Literal>GHC.RealWorld</Literal> is truly opaque: there are no values defined
-of this type, and no operations over it. It is ``primitive'' in that
+of this type, and no operations over it. It is “primitive” in that
sense - but it is <Emphasis>not unlifted!</Emphasis> Its only role in life is to be
the type which distinguishes the <Literal>IO</Literal> state transformer.
</Para>
<Para>
Mutable arrays can be allocated. Only pointer-arrays are initialised;
-arrays of non-pointers are filled in by ``user code'' rather than by
+arrays of non-pointers are filled in by “user code” rather than by
the array-allocation primitive. Reason: only the pointer case has to
worry about GC striking with a partly-initialised array.
</Para>
</Para>
<Para>
-One can take ``equality'' of mutable arrays. What is compared is the
+One can take “equality” of mutable arrays. What is compared is the
<Emphasis>name</Emphasis> or reference to the mutable array, not its contents.
</Para>