diff options
author | Richard Eisenberg <eir@cis.upenn.edu> | 2013-08-05 16:54:44 +0100 |
---|---|---|
committer | Richard Eisenberg <eir@cis.upenn.edu> | 2013-08-05 17:28:03 +0100 |
commit | 9082111dcdbad7d161ecb0a08bb467f6c62e0a1b (patch) | |
tree | 84f7b23a26ba73b3c3da5746254429a2fd54b689 /docs/users_guide | |
parent | 334131bce7822ede7099c0d825b78200094c779e (diff) | |
download | haskell-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.xml | 8 |
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> |