diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2016-03-24 17:31:12 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2016-03-24 17:31:51 +0000 |
commit | cb08f8da37ff5fb99e1d02b8afdcb802d23e9a8d (patch) | |
tree | 4b9249f146bac2069dcd1f3b646bb4dbbb318a5c /includes | |
parent | 2b5929cc4390d03de2c4ae950d7e2a69b5065f2a (diff) | |
download | haskell-cb08f8da37ff5fb99e1d02b8afdcb802d23e9a8d.tar.gz |
Tidy up handling of coercion variables
* Comments to explain that a CoVar, whose IdInfo is CoVarId,
is always unlifted (but may be nominal or representational role)
And TyCoRep.isCoercionType picks out only those unlifted
types, NOT the lifted versions
* Introduce Var.NcId for non-co-var Ids
with predicate isNonCoVarId
* Add assertions in CoreSubst that the Id env is only
used for NcIds
* Fix lurking bug in CSE which extended the
CoreSubst Id env with a CoVar
* Fix two bugs in Specialise.spec_call, which wrongly treated
CoVars like NcIds
- needed a varToCoreExpr in one place
- needed extendSubst not extendIdSubst in another
This was the root cause of Trac #11644
Minor refactoring
* Eliminate unused mkDerivedLocalCoVarM, mkUserLocalCoVar
* Small refactor in mkSysLocalOrCoVar
Diffstat (limited to 'includes')
0 files changed, 0 insertions, 0 deletions