name: MapWith version: 0.2.0.0 synopsis: mapWith: like fmap, but with additional parameters (isFirst, isLast, etc). category: Combinators maintainer: dj112358@outlook.com description: fmap over Traversables (including lists), but pass additional parameters to the map function, such as isFirst, isLast, prevElt, nextElt, index from start or end, custom params. For examples see https://github.com/davjam/MapWith/blob/master/doc/examples.hs homepage: https://github.com/davjam/MapWith#readme license: BSD3 license-file: LICENSE author: David James copyright: (c) David James, 2020. build-type: Simple tested-with: GHC==8.0.2, GHC==8.4.3, GHC==8.8.3, GHC==8.10.1 extra-source-files: ChangeLog.md README.md cabal-version: >=1.10 source-repository head type: git location: https://github.com/davjam/MapWith.git library exposed-modules: MapWith CurryTF hs-source-dirs: src ghc-options: -Wall other-extensions: ExistentialQuantification default-language: Haskell2010 build-depends: base >= 4.9.1 && < 4.15 Test-Suite test-MapWith main-is: MapWithTest.hs Other-modules: MapWith CurryTF type: exitcode-stdio-1.0 hs-source-dirs: src test default-language: Haskell2010 build-depends: base Test-Suite test-CurryTF main-is: CurryTFTest.hs Other-modules: CurryTF type: exitcode-stdio-1.0 hs-source-dirs: src test default-language: Haskell2010 build-depends: base --without -fno-prof-auto, SCCs are added to too many functions and then prevent inlining from happening (which gives bad results for uncurryN) --supposedly I can control this with a cabal.project file - but so far cabal doesn't seem to pick it up, and none of the options --here (https://cabal.readthedocs.io/en/latest/cabal-project.html?highlight=cabal.project.local#cfg-field-profiling-detail) seem to be quite what I want. --So adding SCCs explicitly (per https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html#inserting-cost-centres-by-hand) --cabal bench tuning --ghc-options="-O2 -ddump-simpl -dsuppress-all -ddump-to-file -fno-prof-auto" --cabal bench tuning --ghc-options="-O2 -ddump-rule-firings -fno-prof-auto" --cabal bench tuning --ghc-options="-O2 -fno-prof-auto" --benchmark-options="+RTS -P -hd" --hp2ps -e8in -c tuning.hp benchmark tuning main-is: Tuning.hs Other-modules: MapWith CurryTF hs-source-dirs: src perf type: exitcode-stdio-1.0 default-language: Haskell2010 build-depends: base --cabal bench benchmarks --ghc-options="-O2 -funfolding-use-threshold=150 -fno-prof-auto" --benchmark-options="+RTS -p -RTS" --benchmark-option="100000000 19" --cabal bench benchmarks --ghc-options="-O2 -funfolding-use-threshold=150 -fno-prof-auto" --benchmark-options="+RTS -P -hd -xt -RTS" --benchmark-option="1000000 19" --hp2ps -e8in -c benchmarks.hp benchmark benchmarks main-is: BechmarksPerf.hs Other-modules: MapWith CurryTF Benchmarks hs-source-dirs: src perf type: exitcode-stdio-1.0 default-language: Haskell2010 build-depends: base --cabal bench BenchmarksSimpl --ghc-options="-O2 -ddump-simpl -dsuppress-all -ddump-to-file -fno-prof-auto" --cabal bench BenchmarksSimpl --ghc-options="-O2 -ddump-rule-firings -fno-prof-auto" benchmark BenchmarksSimpl main-is: BechmarksSimpl.hs Other-modules: MapWith CurryTF Benchmarks hs-source-dirs: src perf type: exitcode-stdio-1.0 default-language: Haskell2010 build-depends: base