</varlistentry>
<varlistentry>
+ <term>Data types with no constructors</term>
+ <listitem>
+ <para>See <xref LinkEnd="nullary types">.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>Parallel list comprehensions</term>
<listitem>
<para>An extension to the list comprehension syntax to support
</sect1>
+<sect1 id="nullary types">
+<title>Data types with no constructors</title>
+
+<para>With the <option>-fglasgow-exts</options> flag, GHC lets you declare
+a data type with no constructors. For example:</para>
+<programlisting>
+ data S -- S :: *
+ data T a -- T :: * -> *
+</programlisting>
+<para>Syntactically, the declaration lacks the "= constrs" part. The
+type can be parameterised, but only over ordinary types, of kind *; since
+Haskell does not have kind signatures, you cannot parameterise over higher-kinded
+types.</para>
+
+<para>Such data types have only one value, namely bottom.
+Nevertheless, they can be useful when defining "phantom types".</para>
+</sect1>
+
<sect1 id="pattern-guards">
<title>Pattern guards</title>