streamly/dev/resources.md
Harendra Kumar 7c5fd94660 Rename the design dir to dev
Now that it hosts all sorts of developer documentation
2021-06-16 19:52:54 +05:30

46 lines
2.8 KiB
Markdown

# Resources
This document lists some resources, papers, documents that might be
related to the areas covered by Streamly and may help in designing and
implementing features in Streamly.
## Non-Determinism/Logic
* [Backtracking, Interleaving, and Terminating Monad Transformers](https://pdfs.semanticscholar.org/42eb/2d71af7e00356a41fae47c7752299dc6700d.pdf)
* [Monad Transformers for Backtracking Search](https://arxiv.org/pdf/1406.2058.pdf)
* [Continuations for Parallel Logic Programming](http://www.softlab.ntua.gr/~nickie/Papers/todoran-2000-cplp.pdf)
* [A Concurrent Extension of Functional Logic
Programming Languages](http://convecs.inria.fr/people/Wendelin.Serwe/Pubs/lopstr99.pdf)
## Arrows
* [Generalising Monads to Arrows](http://www.cse.chalmers.se/~rjmh/Papers/arrows.pdf)
* [Monads, Kleisli Arrows, Comonads and other Rambling Thoughts](http://blog.sigfpe.com/2006/06/monads-kleisli-arrows-comonads-and.html)
## Concurrency
* https://en.wikipedia.org/wiki/Fork-join_model
* https://en.wikipedia.org/wiki/Work_stealing
* https://en.wikipedia.org/wiki/Task_parallelism
* https://en.wikipedia.org/wiki/OpenMP
* https://en.wikipedia.org/wiki/Cilk See the "see also" section on this page
* https://en.wikipedia.org/wiki/Green_threads
* [Fraxl: Abstracting Async.Concurrently](http://elvishjerricco.github.io/2016/09/17/abstracting-async-concurrently.html)
## Streaming
* [Coroutines for streaming](https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/coroutines-for-streaming)
* [Stackless purescript](http://blog.functorial.com/posts/2015-07-31-Stackless-PureScript.html)
* [Coroutine Pipelines](https://themonadreader.files.wordpress.com/2011/10/issue19.pdf)
* [Faster Coroutine Pipelines](https://dl.acm.org/ft_gateway.cfm?id=3110249&ftid=1902054&dwn=1&CFID=982135108&CFTOKEN=78426775)
## Distributed
* [Making reliable distributed systems in the presence of software errors](http://erlang.org/download/armstrong_thesis_2003.pdf)
* [Towards Haskell in the Cloud](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/remote.pdf?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Fsimonpj%2Fpapers%2Fparallel%2Fremote.pdf)
* https://github.com/transient-haskell/transient/wiki/Transient-tutorial
* http://haskell-distributed.github.io/wiki.html
* https://en.wikipedia.org/wiki/MapReduce
## FRP
* https://github.com/HeinrichApfelmus/frp-guides
* [Push-Pull Functional Reactive Programming](http://conal.net/papers/push-pull-frp/push-pull-frp.pdf)
* [Functional Reactive Programming, Refactored](http://www.cs.nott.ac.uk/~psxip1/papers/2016-HaskellSymposium-Perez-Barenz-Nilsson-FRPRefactored-short.pdf)
* [Back to the Future: Time Travel in FRP](http://www.cs.nott.ac.uk/~psxip1/papers/2017-HaskellSymposium-Perez-BackToTheFuture-TimeTravelInFRP-latest.pdf)