• simonpj@microsoft.com's avatar
    Implement -XMonoLocalBinds: a radical new flag · 903831d5
    simonpj@microsoft.com authored
    The new flag -XMonoLocalBinds tells GHC not to generalise nested
    bindings in let or where clauses, unless there is a type signature,
    in which case we use it.  
    I'm thinking about whether this might actually be a good direction for
    Haskell go to in, although it seems pretty radical.  Anyway, the flag
    is easy to implement (look at how few lines change), and having it
    will allow us to experiement with and without.
    Just for the record, below are the changes required in the boot 
    libraries -- ie the places where.  Not quite as minimal as I'd hoped,
    but the changes fall into a few standard patterns, and most represent
    (in my opinion) sytlistic improvements.  I will not push these patches,
    == running darcs what -s --repodir libraries/base
    M ./Control/Arrow.hs -2 +4
    M ./Data/Data.hs -7 +22
    M ./System/IO/Error.hs +1
    M ./Text/ParserCombinators/ReadP.hs +1
    == running darcs what -s --repodir libraries/bytestring
    M ./Data/ByteString/Char8.hs -1 +2
    M ./Data/ByteString/Unsafe.hs +1
    == running darcs what -s --repodir libraries/Cabal
    M ./Distribution/PackageDescription.hs -2 +6
    M ./Distribution/PackageDescription/Check.hs +3
    M ./Distribution/PackageDescription/Configuration.hs -1 +3
    M ./Distribution/ParseUtils.hs -2 +4
    M ./Distribution/Simple/Command.hs -1 +4
    M ./Distribution/Simple/Setup.hs -12 +24
    M ./Distribution/Simple/UserHooks.hs -1 +5
    == running darcs what -s --repodir libraries/containers
    M ./Data/IntMap.hs -2 +2
    == running darcs what -s --repodir libraries/dph
    M ./dph-base/Data/Array/Parallel/Arr/BBArr.hs -1 +3
    M ./dph-base/Data/Array/Parallel/Arr/BUArr.hs -2 +4
    M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Arrays.hs -6 +10
    M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Combinators.hs -3 +6
    M ./dph-prim-seq/Data/Array/Parallel/Unlifted/Sequential/Flat/Permute.hs -2 +4
    == running darcs what -s --repodir libraries/syb
    M ./Data/Generics/Twins.hs -5 +18
TcBinds.lhs 52.6 KB