summaryrefslogtreecommitdiff
path: root/docs/users_guide
diff options
context:
space:
mode:
authorRichard Eisenberg <eir@cis.upenn.edu>2013-08-05 16:54:44 +0100
committerRichard Eisenberg <eir@cis.upenn.edu>2013-08-05 17:28:03 +0100
commit9082111dcdbad7d161ecb0a08bb467f6c62e0a1b (patch)
tree84f7b23a26ba73b3c3da5746254429a2fd54b689 /docs/users_guide
parent334131bce7822ede7099c0d825b78200094c779e (diff)
downloadhaskell-9082111dcdbad7d161ecb0a08bb467f6c62e0a1b.tar.gz
Added support for writing and checking closed type families is hs-boot files.
As documented in the users' guide, you can now write type family Foo a where .. in a hs-boot file to declare an abstract closed type family.
Diffstat (limited to 'docs/users_guide')
-rw-r--r--docs/users_guide/separate_compilation.xml8
1 files changed, 7 insertions, 1 deletions
diff --git a/docs/users_guide/separate_compilation.xml b/docs/users_guide/separate_compilation.xml
index 44206f0948..84f6684307 100644
--- a/docs/users_guide/separate_compilation.xml
+++ b/docs/users_guide/separate_compilation.xml
@@ -836,7 +836,13 @@ values. For example:
</programlisting>
</para></listitem>
<listitem><para> Fixity declarations are exactly as in Haskell.</para></listitem>
-<listitem><para> Type synonym declarations are exactly as in Haskell.</para></listitem>
+<listitem><para> Vanilla type synonym declarations are exactly as in Haskell.</para></listitem>
+<listitem><para> Open type and data family declarations are exactly as in Haskell.</para></listitem>
+<listitem><para> A closed type family may optionally omit its equations, as in the following example:
+<programlisting>
+ type family ClosedFam a where ..
+</programlisting>
+The <literal>..</literal> is meant literally -- you should write two dots in your file. Note that the <literal>where</literal> clause is still necessary to distinguish closed families from open ones. If you give any equations of a closed family, you must give all of them, in the same order as they appear in the accompanying Haskell file.</para></listitem>
<listitem><para> A data type declaration can either be given in full, exactly as in Haskell, or it
can be given abstractly, by omitting the '=' sign and everything that follows. For example:
<programlisting>