summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRichard Eisenberg <eir@cis.upenn.edu>2014-02-07 17:24:07 -0500
committerRichard Eisenberg <eir@cis.upenn.edu>2014-02-07 17:24:07 -0500
commit218dead0d85a136b5d5648e4d6c4c9cc9467eb45 (patch)
treee51a55897169374265c7e02ca0da89a2c5d45553 /docs
parent312686c172eefb74237c8a61e2cca1b2af7459c1 (diff)
downloadhaskell-218dead0d85a136b5d5648e4d6c4c9cc9467eb45.tar.gz
Fix #8706, documenting that type operators are not promoted.
Diffstat (limited to 'docs')
-rw-r--r--docs/users_guide/glasgow_exts.xml12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/users_guide/glasgow_exts.xml b/docs/users_guide/glasgow_exts.xml
index fb3eb48d3e..9910d2bd4e 100644
--- a/docs/users_guide/glasgow_exts.xml
+++ b/docs/users_guide/glasgow_exts.xml
@@ -6652,6 +6652,18 @@ See also <ulink url="http://ghc.haskell.org/trac/ghc/ticket/7347">Trac #7347</ul
</para>
</sect2>
+<sect2>
+<title>Promoting type operators</title>
+<para>
+Type operators are <emphasis>not</emphasis> promoted to the kind level. Why not? Because
+<literal>*</literal> is a kind, parsed the way identifiers are. Thus, if a programmer
+tried to write <literal>Either * Bool</literal>, would it be <literal>Either</literal>
+applied to <literal>*</literal> and <literal>Bool</literal>? Or would it be
+<literal>*</literal> applied to <literal>Either</literal> and <literal>Bool</literal>.
+To avoid this quagmire, we simply forbid promoting type operators to the kind level.
+</para>
+</sect2>
+
</sect1>