fused-effects / fused-effects/fused-effects

Improve constant factors of injection into sums.

Open
#166 6 comments 0 reactions 0 assignees View on GitHub
enhancement performance
Dominant language
Haskell
Stars
672
Forks
51
PR merge metrics
No merged PRs in 30d

Description

Right now we pay a performance penalty when using multiple effects in parallel, even though they fuse correctly, because `inj` (which is called every `send` is O(n) in the number of effects rather than O(1)). A smarter `Sum`/`Union` type could perhaps ameliorate this situation, though we may have to change some code upstream.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing `inj`, which is called by every `send`, and inspect the `Sum`/`Union` types and any upstream code they depend on. Done means reducing injection from O(n) to O(1) for multiple parallel effects without breaking their fusion behavior, with performance evidence and relevant tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.