Skip to content
  • David Feuer's avatar
    Implement amap/coerce for Array (re #9796) · 603b7be7
    David Feuer authored and Herbert Valerio Riedel's avatar Herbert Valerio Riedel committed
    Implement an `amap`/`coerce` rule in `GHC.Arr` to match the
    `map`/`coerce` rule in GHC.Base.
    
    In order to do so, delay inlining `amap` until phase 1.
    
    To prevent the inlining delay from causing major inefficiencies due to
    missed list fusion, rewrite `amap` to avoid relying on list fusion. This
    has the extra benefit of reducing the size of the compiled amap code by
    skipping the impossible case of an array with a negative size.
    
    Reviewed By: nomeata
    
    Differential Revision: https://phabricator.haskell.org/D471
    603b7be7