• David Feuer's avatar
    base: Refactor/clean-up *List modules · 75979f36
    David Feuer authored
    This gets rid of all hand-unboxing in `GHC.List` and moves `Foldable`
    requirements from `Data.OldList` into `GHC.List` (preparatory work for
    addressing #9716).  Specifically, this moves the definition of
    `maximum`, `minimum`, `foldl'`, `foldl1`, `foldl1'`, `sum`, and
    `product` into `GHC.List` (which now needs to import `GHC.Num`)
    
    Make `take`, `drop`, `length`, and `!!` generally saner (see also #9510)
    
    Performance overall seems minimally affected. Some things go up; some
    things go down; nothing moves horribly much. The code is much easier to
    read.
    
    Differential Revision: https://phabricator.haskell.org/D380
    75979f36
List.lhs 33.8 KB