... | ... | @@ -53,7 +53,7 @@ The problem with this scheme is that it involves two phases of heuristics (rules |
|
|
|
|
|
|
|
|
|
|
|
A partial remedy to this solution is to stop relying on rewrite rules, and use directly non-recursive representations. For example the following representation from Lippmeier et al. [ http://benl.ouroborus.net/papers/2016-polarized/dpdf-FHPC2016-preprint.pdf](http://benl.ouroborus.net/papers/2016-polarized/dpdf-FHPC2016-preprint.pdf):
|
|
|
A partial remedy to this solution is to stop relying on rewrite rules, and use directly non-recursive representations. For example the following representation from Lippmeier et al. [http://benl.ouroborus.net/papers/2016-polarized/dpdf-FHPC2016-preprint.pdf](http://benl.ouroborus.net/papers/2016-polarized/dpdf-FHPC2016-preprint.pdf):
|
|
|
|
|
|
|
|
|
```
|
... | ... | @@ -115,9 +115,9 @@ Quoting Lippmeier et al.: |
|
|
|
|
|
Literature on this style of non-recursive representations includes additionally:
|
|
|
|
|
|
- Push and Pull arrays in Feldspar [ https://scholar.google.com/scholar?oi=bibs&hl=en&cites=5417443716167196803](https://scholar.google.com/scholar?oi=bibs&hl=en&cites=5417443716167196803)
|
|
|
- On the duality of streams [ https://jyp.github.io/pdf/Organ.pdf](https://jyp.github.io/pdf/Organ.pdf)
|
|
|
- Composable Efficient Array Computations using Linear Types [ http://www.cse.chalmers.se/\~josefs/publications/vectorcomp.pdf](http://www.cse.chalmers.se/~josefs/publications/vectorcomp.pdf)
|
|
|
- Push and Pull arrays in Feldspar [https://scholar.google.com/scholar?oi=bibs&hl=en&cites=5417443716167196803](https://scholar.google.com/scholar?oi=bibs&hl=en&cites=5417443716167196803)
|
|
|
- On the duality of streams [https://jyp.github.io/pdf/Organ.pdf](https://jyp.github.io/pdf/Organ.pdf)
|
|
|
- Composable Efficient Array Computations using Linear Types [http://www.cse.chalmers.se/\~josefs/publications/vectorcomp.pdf](http://www.cse.chalmers.se/~josefs/publications/vectorcomp.pdf)
|
|
|
|
|
|
# Diminishing GC pressure
|
|
|
|
... | ... | @@ -134,7 +134,7 @@ A consequence of this choice is that linear data will only exist when pointed to |
|
|
|
|
|
|
|
|
According to de Vries
|
|
|
([ http://www.well-typed.com/blog/2016/09/sharing-conduit/](http://www.well-typed.com/blog/2016/09/sharing-conduit/)):
|
|
|
([http://www.well-typed.com/blog/2016/09/sharing-conduit/](http://www.well-typed.com/blog/2016/09/sharing-conduit/)):
|
|
|
|
|
|
|
|
|
>
|
... | ... | @@ -255,4 +255,4 @@ precisely controlling where (not) to apply full-laziness. Moreover, |
|
|
the user of a library written for streams would never have to worry
|
|
|
about inadvertent sharing, because the types of the library functions
|
|
|
would specify exactly the right behavior.
|
|
|
See [ https://jyp.github.io/pdf/Organ.pdf](https://jyp.github.io/pdf/Organ.pdf) for how such a library may look like. |
|
|
See [https://jyp.github.io/pdf/Organ.pdf](https://jyp.github.io/pdf/Organ.pdf) for how such a library may look like. |