summaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorSandy Maguire <sandy@sandymaguire.me>2019-05-16 12:12:10 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-05-26 08:57:20 -0400
commit2d0cf6252957b8980d89481ecd0b79891da4b14b (patch)
tree5857aa9938a0a587da3a53539ef2eb6f3c32f1d9 /rules
parent9be1749d24211c1a78334692d34be10dbc650371 (diff)
downloadhaskell-2d0cf6252957b8980d89481ecd0b79891da4b14b.tar.gz
Let the specialiser work on dicts under lambdas
Following the discussion under #16473, this change allows the specializer to work on any dicts in a lambda, not just those that occur at the beginning. For example, if you use data types which contain dictionaries and higher-rank functions then once these are erased by the optimiser you end up with functions such as: ``` go_s4K9 Int# -> forall (m :: * -> *). Monad m => (forall x. Union '[State (Sum Int)] x -> m x) -> m () ``` The dictionary argument is after the Int# value argument, this patch allows `go` to be specialised.
Diffstat (limited to 'rules')
0 files changed, 0 insertions, 0 deletions