Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fusers

This repository contains in-progress work on a Haskell effectful streaming library that guarantees fusion statically with staging. This should enable programmers to write performant and effectful stream processing code without having to rely on GHC's rewriting system for fusion.

The ideas in this repository are not new, but as far as I can tell, this is the first project to try to glue them all together. The main inspiration comes from:

  1. Stream Fusion and Streamly. The first presents as state-machine model of pure (pull) streams, and the second extends this concept to to effectful streams.
  2. Stream Fusion, To Completeness, which shows how to use staging/program generation to eliminate the overhead of pull streams without relying on rewrite rules.
  3. Closure-Free Programming in 2-Level Type Theory, and in particular Monadic Binding-Time Improvement from Section 3.4, which shows how to further fuse monadic actions. Similarly, this project (also by Andras Kovacs) demonstrates a similar idea, albeit without effects.

About

A stream processing library to defeat all other stream processing libraries

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages