diff options
author | vivid-synth <vivid.haskell@gmail.com> | 2017-02-14 09:51:54 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-02-14 10:53:01 -0500 |
commit | c3bbd1afc85cd634d8d26e27bafb92cc7481667b (patch) | |
tree | 729e78fe6b02eecef0035d4220cdad44d3b401a0 /testsuite/tests/ghci/scripts/T4175.stdout | |
parent | 2f1017b924740e66f093b0baba62ac0b1528abf8 (diff) | |
download | haskell-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 'testsuite/tests/ghci/scripts/T4175.stdout')
0 files changed, 0 insertions, 0 deletions