summaryrefslogtreecommitdiff
path: root/docs/users_guide/8.2.1-notes.rst
diff options
context:
space:
mode:
authorvivid-synth <vivid.haskell@gmail.com>2017-02-14 09:51:54 -0500
committerBen Gamari <ben@smart-cactus.org>2017-02-14 10:53:01 -0500
commitc3bbd1afc85cd634d8d26e27bafb92cc7481667b (patch)
tree729e78fe6b02eecef0035d4220cdad44d3b401a0 /docs/users_guide/8.2.1-notes.rst
parent2f1017b924740e66f093b0baba62ac0b1528abf8 (diff)
downloadhaskell-c3bbd1afc85cd634d8d26e27bafb92cc7481667b.tar.gz
Allow type defaulting for multi-param type classes with ExtendedDefaultRules
Expressions like the following will now typecheck: ``` data A x = A deriving Show class ToA a x where toA :: a -> A x instance ToA Integer x where toA _ = A main = print (toA 5 :: A Bool) ``` The new defaulting rules are Find all the unsolved constraints. Then: * Find those that have exactly one free type variable, and partition that subset into groups that share a common type variable `a`. * Now default `a` (to one of the types in the default list) if at least one of the classes `Ci` is an interactive class Reviewers: goldfire, bgamari, austin, mpickering, simonpj Reviewed By: bgamari, simonpj Subscribers: mpickering, simonpj, goldfire, thomie Differential Revision: https://phabricator.haskell.org/D2822
Diffstat (limited to 'docs/users_guide/8.2.1-notes.rst')
-rw-r--r--docs/users_guide/8.2.1-notes.rst3
1 files changed, 3 insertions, 0 deletions
diff --git a/docs/users_guide/8.2.1-notes.rst b/docs/users_guide/8.2.1-notes.rst
index 00e6c7c4b5..d70dc50e42 100644
--- a/docs/users_guide/8.2.1-notes.rst
+++ b/docs/users_guide/8.2.1-notes.rst
@@ -154,6 +154,9 @@ Compiler
allocation and a potential space leak when deriving ``Functor`` for
a recursive type.
+- The :ghc-flag:`-XExtendedDefaultRules` extension now defaults multi-parameter
+ typeclasses. See :ghc-ticket:`12923`.
+
GHCi
~~~~