Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
fizruk committed Aug 17, 2024
1 parent bcab548 commit 7677f06
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Generating Efficient and Scope-Safe Abstract Syntax with Free (Scoped) Monads an
This project provides an implementation of the efficient scope-safe representation
for syntax with binders (think λ-abstraction, let-binding, for-loop, etc.).
The underlying representation is based on the IFL 2022 paper by Maclaurin, Radul, and Paszke [«The Foil: Capture-Avoiding Substitution With No Sharp Edges»](https://doi.org/10.1145/3587216.3587224)[^1]. This project extends the foil with patterns, as well as two
techniques for free generation of the foil. The details are presented in the paper [«Free Foil: Generating Efficient and Scope-Safe Abstract Syntax»](https://arxiv.org/abs/2405.16384)[^2]. Also see the [slides from the ICCQ 2024 presentation](https://fizruk.github.io/files/iccq-2024-free-foil-slides.pdf).
techniques for free generation of the foil. The details are presented in the paper [«Free Foil: Generating Efficient and Scope-Safe Abstract Syntax»](https://arxiv.org/abs/2405.16384)[^2]. Also see the [slides from the ICCQ 2024 presentation](https://fizruk.github.io/files/iccq-2024-free-foil-slides.pdf) (also [video](https://youtu.be/06gudJKXpkk?si=FbR03r-bngdZUdlf)).

In brief, following the paper:

Expand All @@ -25,12 +25,12 @@ In brief, following the paper:

Additionally, we implement:

1. Tempalte Haskell generation for the free foil.
1. Template Haskell generation for the free foil.
2. Generalized support for patterns using `withPattern` method (currently in `CoSinkable`).
3. Generic α-equivalence for the free foil and α-equivalence support for patterns using `UnifiablePattern` typeclass.
4. Generic conversion functions for the free foil.

In addition to this repository, we have benchmarks the foil and the free foil against each other and other implementation of λ-calculus.
In addition to this repository, we have benchmarks for the foil and the free foil against each other and other implementation of λ-calculus.
See [KarinaTyulebaeva/lambda-n-ways](https://github.com/KarinaTyulebaeva/lambda-n-ways), a fork of Stephanie Weirich's benchmark suite ([sweirich/lambda-n-ways](https://github.com/sweirich/lambda-n-ways)).

## Project structure
Expand All @@ -55,6 +55,7 @@ The Haskell code is organized into two packages as follows:

- generic substitution for this generic representation of syntax with binders
- generic α-normalization and α-equivalence checks
- generic conversion helpers

- [`Control.Monad.Free.Foil.TH`](https://fizruk.github.io/free-foil/haddock/free-foil-0.0.3/Control-Monad-Free-Foil-TH.html) provides Template Haskell functions that generate helpers specifically for free foil, including the generation of the signature bifunctor, convenient pattern synonyms, conversion helpers, and instances needed to enable general α-equivalence.

Expand Down Expand Up @@ -90,5 +91,5 @@ In Haskell:
9. We do not (yet) provide a Church-encoded version of the free foil, which should improve its performance.

[^1]: Dougal Maclaurin, Alexey Radul, and Adam Paszke. 2023. _The Foil: Capture-Avoiding Substitution With No Sharp Edges._ In Proceedings of the 34th Symposium on Implementation and Application of Functional Languages (IFL '22). Association for Computing Machinery, New York, NY, USA, Article 8, 1–10. <https://doi.org/10.1145/3587216.3587224>
[^2]: Nikolai Kudasov, Renata Shakirova, Egor Shalagin, Karina Tyulebaeva. 2024. _Free Foil: Generating Efficient and Scope-Safe Abstract Syntax._ To appear in ICCQ 2024. <https://arxiv.org/abs/2405.16384>
[^2]: Nikolai Kudasov, Renata Shakirova, Egor Shalagin, Karina Tyulebaeva. 2024. _Free Foil: Generating Efficient and Scope-Safe Abstract Syntax._ 4th International Conference on Code Quality (ICCQ), Innopolis, Russian Federation, 2024, pp. 1-16 <http://doi.org/10.1109/ICCQ60895.2024.10576867> (arXiv version at <https://arxiv.org/abs/2405.16384>)
[^3]: Nikolai Kudasov. _Free Monads, Intrinsic Scoping, and Higher-Order Preunification._ To appear in TFP 2024. <https://arxiv.org/abs/2204.05653>

0 comments on commit 7677f06

Please sign in to comment.