summaryrefslogtreecommitdiff
path: root/docs/users_guide/exts/rank_polymorphism.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/users_guide/exts/rank_polymorphism.rst')
-rw-r--r--docs/users_guide/exts/rank_polymorphism.rst4
1 files changed, 4 insertions, 0 deletions
diff --git a/docs/users_guide/exts/rank_polymorphism.rst b/docs/users_guide/exts/rank_polymorphism.rst
index 648ce40a70..8e9f55dd5b 100644
--- a/docs/users_guide/exts/rank_polymorphism.rst
+++ b/docs/users_guide/exts/rank_polymorphism.rst
@@ -195,6 +195,10 @@ Similarly ``f4 g4`` is not well typed, because the constraints appear in a diffe
These examples can be made to typecheck by eta-expansion. For example ``f3 (\x -> g3b x)``
is well typed, and similarly ``f3 (\x -> g3c x)`` and ``f4 (\x -> g4 x)``.
+A similar phenomenon occurs for operator sections. For example,
+``(\`g3a\` "hello")`` is not well typed, but it can be made to typecheck by eta
+expanding it to ``\x -> x \`g3a\` "hello"``.
+
Historical note. Earlier versions of GHC allowed these now-rejected applications, by inserting
automatic eta-expansions, as described in Section 4.6 of `Practical type inference for arbitrary-aank types <https://www.microsoft.com/en-us/research/publication/practical-type-inference-for-arbitrary-rank-types/>`__, where it is
called "deep skolemisation".