# 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)