Simplify uniqAway

Authored by bgamari on Nov 10 2019, 8:41 PM.

Description

Simplify uniqAway

This does two things:

  • Eliminate all uses of Unique.deriveUnique, which was quite easy to mis-use and extremely subtle.
  • Rename the previous "derived unique" notion to "local unique". This is possible because the only places where uniqAway can be safely used are those where local uniqueness (with respect to some InScopeSet) is sufficient.
  • Rework the implementation of VarEnv.uniqAway, as discussed in Trac #17462. This should make the operation significantly more efficient than its previous iterative implementation..

Metric Decrease:

T9872c
T12227
T9233
T14683
T5030
T12545
hie002

Metric Increase:

T9961

Details

Committed
Marge Bot <ben+marge-bot@smart-cactus.org>Dec 3 2019, 8:04 PM
Parents
rGHC25019d18109c: Drop Uniquable constraint for AnnTarget
Branches
Unknown
Tags
Unknown
Marge Bot <ben+marge-bot@smart-cactus.org> committed rGHC78b67ad0e891: Simplify uniqAway (authored by bgamari).Dec 3 2019, 8:04 PM