summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorIavor S. Diatchki <iavor.diatchki@gmail.com>2013-01-13 16:29:10 -0800
committerIavor S. Diatchki <iavor.diatchki@gmail.com>2013-01-13 16:29:10 -0800
commitfe61599ffebb27924c4beef47b6237542644f3f4 (patch)
tree6a13816727861a177b1b9d564aa6b6ef4ccebb96 /compiler/codeGen
parent6387eba88dc95e6b56133309509c387628986171 (diff)
downloadhaskell-fe61599ffebb27924c4beef47b6237542644f3f4.tar.gz
Use a version of the coverage condition even with UndecidableInstances.
This fixes bug #1241 and #2247. When UndecidableInstances are on, we use the "Liberal Coverage Condition", which is what GHC used to do in the past. This is the gist of the check: class C a b | a -> b instance theta => C t1 t2 we check that `fvs t2` is a subset of `fd-closure(theta,fvs t1)`. This is strictly more general than the coverage condition, while it still guarantees consistency with the FDs of the class. This check is completely orthogonal to termination (it by no means guarantees it). I am not sure of the role of the "coverage condition" in termination--- the comments suggest that it is important. This is why, for the moment, we only use this check when UndecidableInstances are on.
Diffstat (limited to 'compiler/codeGen')
0 files changed, 0 insertions, 0 deletions