Commit b9de29ac authored by panne's avatar panne

[project @ 2004-08-15 20:37:22 by panne]

Started to convert the users guide to DocBook XML. Not yet finished, there are
still *tons* of misplaced indexterms, but some sensible documentation can
already be generated.
parent 69907617
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-5-00"> <sect1 id="release-5-00">
<title>Release notes for version 5.00 (April 2001)</title> <title>Release notes for version 5.00 (April 2001)</title>
...@@ -200,7 +201,7 @@ ...@@ -200,7 +201,7 @@
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-5-04"> <sect1 id="release-5-04">
<title>Release notes for version 5.04</title> <title>Release notes for version 5.04</title>
...@@ -50,7 +51,7 @@ ...@@ -50,7 +51,7 @@
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-5-04"> <sect1 id="release-5-04">
<title>Release notes for version 5.04</title> <title>Release notes for version 5.04</title>
...@@ -281,7 +282,7 @@ ...@@ -281,7 +282,7 @@
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="release-6-0"> <sect1 id="release-6-0">
<title>Release notes for version 6.0</title> <title>Release notes for version 6.0</title>
...@@ -312,7 +313,7 @@ ...@@ -312,7 +313,7 @@
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: *** ;;; End: ***
--> -->
TOP = ../.. TOP = ../..
include $(TOP)/mk/boilerplate.mk include $(TOP)/mk/boilerplate.mk
SGML_DOC = users_guide XML_DOC = users_guide
INSTALL_SGML_DOC = users_guide INSTALL_XML_DOC = users_guide
# Generating index is semi-automatic, you need to:
#
# make users_guide.dvi ; make index ; make users_guide.dvi
#
# To work, it depends on you tweaking
#
# lib/sgml-tools/dist/sgmltool/latex2e/mapping
#
# to instead of saying
#
# </article> + "\\end{document}" +
#
# say
#
# </article> + "\\InputIfFileExists{index}{}{}"
# "\\end{document}" +
#
# That partially works around the problem, if nothing else.
#
index : users_guide.dvi
makeindex users_guide
@$(RM) $@
$(CP) users_guide.ind $@
$(RM) users_guide.dvi
include $(TOP)/mk/target.mk include $(TOP)/mk/target.mk
<?xml version="1.0" encoding="iso-8859-1"?>
<chapter id="bugs-and-infelicities"> <chapter id="bugs-and-infelicities">
<title>Known bugs and infelicities</title> <title>Known bugs and infelicities</title>
...@@ -157,9 +158,10 @@ checking for duplicates. The reason for this is efficiency, pure and simple. ...@@ -157,9 +158,10 @@ checking for duplicates. The reason for this is efficiency, pure and simple.
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>The <literal>Char</literal> type</term> <term>
<indexterm><primary><literal>Char</literal></primary><secondary>size The <literal>Char</literal> type
of</secondary></indexterm> <indexterm><primary><literal>Char</literal></primary><secondary>size of</secondary></indexterm>
</term>
<listitem> <listitem>
<para>Following the ISO-10646 standard, <para>Following the ISO-10646 standard,
<literal>maxBound :: Char</literal> in GHC is <literal>maxBound :: Char</literal> in GHC is
...@@ -168,10 +170,10 @@ checking for duplicates. The reason for this is efficiency, pure and simple. ...@@ -168,10 +170,10 @@ checking for duplicates. The reason for this is efficiency, pure and simple.
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>Sized integral types</term> <term>
<indexterm><primary><literal>Int</literal></primary><secondary>size of</secondary> Sized integral types
</indexterm> <indexterm><primary><literal>Int</literal></primary><secondary>size of</secondary></indexterm>
</term>
<listitem> <listitem>
<para>In GHC the <literal>Int</literal> type follows the <para>In GHC the <literal>Int</literal> type follows the
size of an address on the host architecture; in other words size of an address on the host architecture; in other words
...@@ -353,7 +355,7 @@ Loading package javavm ... linking ... WARNING: Overflown relocation field (# re ...@@ -353,7 +355,7 @@ Loading package javavm ... linking ... WARNING: Overflown relocation field (# re
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="options-debugging"> <sect1 id="options-debugging">
<title>Debugging the compiler</title> <title>Debugging the compiler</title>
...@@ -516,7 +517,7 @@ Main.skip2{-r1L6-} = ...@@ -516,7 +517,7 @@ Main.skip2{-r1L6-} =
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter" "sect1") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<chapter id="faq"> <chapter id="faq">
<title>GHC FAQ</title> <title>GHC FAQ</title>
...@@ -456,7 +457,7 @@ details.</para> ...@@ -456,7 +457,7 @@ details.</para>
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- FFI docs as a chapter --> <!-- FFI docs as a chapter -->
<chapter id="ffi"> <chapter id="ffi">
...@@ -393,7 +394,7 @@ to be inlined across modules, use the command-line and package-configuration ...@@ -393,7 +394,7 @@ to be inlined across modules, use the command-line and package-configuration
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<sect1 id="flag-reference"> <sect1 id="flag-reference">
<title>Flag reference</title> <title>Flag reference</title>
...@@ -1743,7 +1744,7 @@ Misc: ...@@ -1743,7 +1744,7 @@ Misc:
<!-- Emacs stuff: <!-- Emacs stuff:
;;; Local Variables: *** ;;; Local Variables: ***
;;; mode: sgml *** ;;; mode: xml ***
;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter") *** ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") ***
;;; End: *** ;;; End: ***
--> -->
<?xml version="1.0" encoding="iso-8859-1"?>
<chapter id="ghci"> <chapter id="ghci">
<title>Using GHCi</title> <title>Using GHCi</title>
<indexterm><primary>GHCi</primary></indexterm> <indexterm><primary>GHCi</primary></indexterm>
...@@ -800,9 +801,10 @@ $ ghci -lm ...@@ -800,9 +801,10 @@ $ ghci -lm
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term><literal>:add</literal> <term>
<replaceable>module</replaceable> ...</term> <literal>:add</literal> <replaceable>module</replaceable> ...
<indexterm><primary><literal>:add</literal></primary></indexterm> <indexterm><primary><literal>:add</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Add <replaceable>module</replaceable>(s) to the <para>Add <replaceable>module</replaceable>(s) to the
current <firstterm>target set</firstterm>, and perform a current <firstterm>target set</firstterm>, and perform a
...@@ -811,11 +813,10 @@ $ ghci -lm ...@@ -811,11 +813,10 @@ $ ghci -lm
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:browse</literal> <term>
<optional><literal>*</literal></optional><replaceable>module</replaceable> <literal>:browse</literal> <optional><literal>*</literal></optional><replaceable>module</replaceable> ...
...</term> <indexterm><primary><literal>:browse</literal></primary></indexterm>
<indexterm><primary><literal>:browse</literal></primary> </term>
</indexterm>
<listitem> <listitem>
<para>Displays the identifiers defined by the module <para>Displays the identifiers defined by the module
<replaceable>module</replaceable>, which must be either <replaceable>module</replaceable>, which must be either
...@@ -833,8 +834,10 @@ $ ghci -lm ...@@ -833,8 +834,10 @@ $ ghci -lm
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:cd</literal> <replaceable>dir</replaceable></term> <term>
<indexterm><primary><literal>:cd</literal></primary></indexterm> <literal>:cd</literal> <replaceable>dir</replaceable>
<indexterm><primary><literal>:cd</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Changes the current working directory to <para>Changes the current working directory to
<replaceable>dir</replaceable>. A <replaceable>dir</replaceable>. A
...@@ -852,8 +855,10 @@ $ ghci -lm ...@@ -852,8 +855,10 @@ $ ghci -lm
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:def</literal> <replaceable>name</replaceable> <replaceable>expr</replaceable></term> <term>
<indexterm><primary><literal>:def</literal></primary></indexterm> <literal>:def</literal> <replaceable>name</replaceable> <replaceable>expr</replaceable>
<indexterm><primary><literal>:def</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>The command <literal>:def</literal> <para>The command <literal>:def</literal>
<replaceable>name</replaceable> <replaceable>name</replaceable>
...@@ -905,20 +910,24 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -905,20 +910,24 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:help</literal></term> <term>
<indexterm><primary><literal>:help</literal></primary></indexterm> <literal>:help</literal>
<term><literal>:?</literal></term> <indexterm><primary><literal>:help</literal></primary></indexterm>
<indexterm><primary><literal>:?</literal></primary></indexterm> </term>
<term>
<literal>:?</literal>
<indexterm><primary><literal>:?</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Displays a list of the available commands.</para> <para>Displays a list of the available commands.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:info</literal> <replaceable>name</replaceable> <term>
...</term> <literal>:info</literal> <replaceable>name</replaceable> ...
<indexterm><primary><literal>:info</literal></primary> <indexterm><primary><literal>:info</literal></primary></indexterm>
</indexterm> </term>
<listitem> <listitem>
<para>Displays information about the given name(s). For <para>Displays information about the given name(s). For
example, if <replaceable>name</replaceable> is a class, then example, if <replaceable>name</replaceable> is a class, then
...@@ -933,9 +942,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -933,9 +942,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:load</literal> <term>
<replaceable>module</replaceable> ...</term> <literal>:load</literal> <replaceable>module</replaceable> ...
<indexterm><primary><literal>:load</literal></primary></indexterm> <indexterm><primary><literal>:load</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Recursively loads the specified <para>Recursively loads the specified
<replaceable>module</replaceable>s, and all the modules they <replaceable>module</replaceable>s, and all the modules they
...@@ -971,8 +981,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -971,8 +981,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:module <optional>+|-</optional> <optional>*</optional><replaceable>mod<subscript>1</subscript></replaceable> ... <optional>*</optional><replaceable>mod<subscript>n</subscript></replaceable></literal></term> <term>
<indexterm><primary><literal>:module</literal></primary></indexterm> <literal>:module <optional>+|-</optional> <optional>*</optional><replaceable>mod<subscript>1</subscript></replaceable> ... <optional>*</optional><replaceable>mod<subscript>n</subscript></replaceable></literal>
<indexterm><primary><literal>:module</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Sets or modifies the current context for statements <para>Sets or modifies the current context for statements
typed at the prompt. See <xref linkend="ghci-scope"/> for typed at the prompt. See <xref linkend="ghci-scope"/> for
...@@ -981,8 +993,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -981,8 +993,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:quit</literal></term> <term>
<indexterm><primary><literal>:quit</literal></primary></indexterm> <literal>:quit</literal>
<indexterm><primary><literal>:quit</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Quits GHCi. You can also quit by typing a control-D <para>Quits GHCi. You can also quit by typing a control-D
at the prompt.</para> at the prompt.</para>
...@@ -990,8 +1004,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -990,8 +1004,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:reload</literal></term> <term>
<indexterm><primary><literal>:reload</literal></primary></indexterm> <literal>:reload</literal>
<indexterm><primary><literal>:reload</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Attempts to reload the current target set (see <para>Attempts to reload the current target set (see
<literal>:load</literal>) if any of the modules in the set, <literal>:load</literal>) if any of the modules in the set,
...@@ -1002,8 +1018,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1002,8 +1018,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:set</literal> <optional><replaceable>option</replaceable>...</optional></term> <term>
<indexterm><primary><literal>:set</literal></primary></indexterm> <literal>:set</literal> <optional><replaceable>option</replaceable>...</optional>
<indexterm><primary><literal>:set</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Sets various options. See <xref linkend="ghci-set"/> <para>Sets various options. See <xref linkend="ghci-set"/>
for a list of available options. The for a list of available options. The
...@@ -1013,9 +1031,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1013,9 +1031,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:set</literal> <literal>args</literal> <term>
<replaceable>arg</replaceable> ...</term> <literal>:set</literal> <literal>args</literal> <replaceable>arg</replaceable> ...
<indexterm><primary><literal>:set</literal></primary></indexterm> <indexterm><primary><literal>:set</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Sets the list of arguments which are returned when the <para>Sets the list of arguments which are returned when the
program calls <literal>System.getArgs</literal><indexterm><primary>getArgs</primary> program calls <literal>System.getArgs</literal><indexterm><primary>getArgs</primary>
...@@ -1024,9 +1043,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1024,9 +1043,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:set</literal> <literal>prog</literal> <term>
<replaceable>prog</replaceable></term> <literal>:set</literal> <literal>prog</literal> <replaceable>prog</replaceable>
<indexterm><primary><literal>:set</literal></primary></indexterm> <indexterm><primary><literal>:set</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Sets the string to be returned when the program calls <para>Sets the string to be returned when the program calls
<literal>System.getProgName</literal><indexterm><primary>getProgName</primary> <literal>System.getProgName</literal><indexterm><primary>getProgName</primary>
...@@ -1035,8 +1055,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1035,8 +1055,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:show bindings</literal></term> <term>
<indexterm><primary><literal>:show bindings</literal></primary></indexterm> <literal>:show bindings</literal>
<indexterm><primary><literal>:show bindings</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Show the bindings made at the prompt and their <para>Show the bindings made at the prompt and their
types.</para> types.</para>
...@@ -1044,16 +1066,20 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1044,16 +1066,20 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:show modules</literal></term> <term>
<indexterm><primary><literal>:show modules</literal></primary></indexterm> <literal>:show modules</literal>
<indexterm><primary><literal>:show modules</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Show the list of modules currently load.</para> <para>Show the list of modules currently load.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:type</literal> <replaceable>expression</replaceable></term> <term>
<indexterm><primary><literal>:type</literal></primary></indexterm> <literal>:type</literal> <replaceable>expression</replaceable>
<indexterm><primary><literal>:type</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Infers and prints the type of <para>Infers and prints the type of
<replaceable>expression</replaceable>, including explicit <replaceable>expression</replaceable>, including explicit
...@@ -1064,8 +1090,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1064,8 +1090,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:kind</literal> <replaceable>type</replaceable></term> <term>
<indexterm><primary><literal>:kind</literal></primary></indexterm> <literal>:kind</literal> <replaceable>type</replaceable>
<indexterm><primary><literal>:kind</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Infers and prints the kind of <para>Infers and prints the kind of
<replaceable>type</replaceable>. The latter can be an arbitrary <replaceable>type</replaceable>. The latter can be an arbitrary
...@@ -1075,8 +1103,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1075,8 +1103,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:undef</literal> <replaceable>name</replaceable></term> <term>
<indexterm><primary><literal>:undef</literal></primary></indexterm> <literal>:undef</literal> <replaceable>name</replaceable>
<indexterm><primary><literal>:undef</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Undefines the user-defined command <para>Undefines the user-defined command
<replaceable>name</replaceable> (see <literal>:def</literal> <replaceable>name</replaceable> (see <literal>:def</literal>
...@@ -1085,8 +1115,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1085,8 +1115,10 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:unset</literal> <replaceable>option</replaceable>...</term> <term>
<indexterm><primary><literal>:unset</literal></primary></indexterm> <literal>:unset</literal> <replaceable>option</replaceable>...
<indexterm><primary><literal>:unset</literal></primary></indexterm>
</term>
<listitem> <listitem>
<para>Unsets certain options. See <xref linkend="ghci-set"/> <para>Unsets certain options. See <xref linkend="ghci-set"/>
for a list of available options.</para> for a list of available options.</para>
...@@ -1094,9 +1126,11 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main") ...@@ -1094,9 +1126,11 @@ Prelude> :def make (\_ -> return ":! ghc &ndash;&ndash;make Main")
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>:!</literal> <replaceable>command</replaceable>...</term> <term>
<indexterm><primary><literal>:!</literal></primary></indexterm> <literal>:!</literal> <replaceable>command</replaceable>...
<indexterm><primary>shell commands</primary><secondary>in GHCi</secondary></indexterm> <indexterm><primary><literal>:!</literal></primary></indexterm>
<indexterm><primary>shell commands</primary><secondary>in GHCi</secondary></indexterm>
</term>
<listitem> <listitem>
<para>Executes the shell command <para>Executes the shell command
<replaceable>command</replaceable>.<