@@ -0,0 +1,36 @@
1+# Roadmap
2+
3+Some of these items may be present in the issues as well, but this file
4+lists larger areas, experimental areas and organizes items by areas. We can
5+also use the areas listed here as labels (aspect:topic) on issues.
6+
7+## Scheduling
8+
9+* Free applicative and Free Alternative, batched Alternative (push
10+ scheduling instead of pull scheduling)
11+* N-ary operations e.g. real balanced interleave
12+* Scheduling: Coalescing of tasks based on programmer defined criteria
13+ * Batching based on the target host
14+ * Batching/chunking for parallel/distributed execution
15+ * Batching iterations
16+
17+## Concurerncy
18+
19+* Controlled parallelism:
20+ * Control based on the level in the tree
21+ * Control based on the CPU/IO utilization based pacing
22+ * Utilize non-blocking IO
23+* Performance: Measure lock/CAS contention overhead, an option to
24+ dequeue work and run in batches instead of one at a time to reduce lock
25+ contention?
26+* Cross thread recursion
27+
28+## Persistence
29+
30+* Pause and resume using something like
31+ [monad-recorder](https://hackage.haskell.org/package/monad-recorder)
32+* Save internal buffered state during a pause?
33+
34+## Testing
35+
36+* improve coverage