-
linear-builder
Strict Text and ByteString builder, which hides mutable buffer behind linear types and takes amortized linear time.
-
countwords
Playing with counting word frequencies (and performance) in various languages. (by unhammer)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Another interesting area of performance optimisation is linear types. It's already possible to take advantage of them in libraries https://github.com/Bodigrim/linear-builder with real world performance gains and in the future in GHC. More about this here https://www.reddit.com/r/haskell/comments/5z6mxb/linear_types_make_performance_more_predictable/?utm_source=share&utm_medium=ios_app&utm_name=iossmf
Wow, thanks for the code review! Noted – I'll try them out when I have some time
The lack of concatMap fusion is a notorious issue in stream fusion. I recently implemented Higher Order Patterns in Rewrite Rules which should make it possible to write a rewrite rule for fusing concatMap in GHC 9.8.
If you want to get stream-fusion in base then I think you should first try to get https://github.com/composewell/fusion-plugin in GHC. It takes care of most of the optimization corner cases that you will invariably run into if you want to use stream-fusion reliably.