# Purescript

| Name                                          | Description                                                                                                          |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| [abilities](./abilities/)                     | Typeclass-dictionary abuse enabling the creation of a barebones effect system                                        |
| [bug](./bug/)                                 | Unknown reason of existence                                                                                          |
| [canopy](./canopy/)                           | Unfinished attempt at writing a [Diplomacy](<https://en.wikipedia.org/wiki/Diplomacy_(game)>) adjudecation engine    |
| [compose](./compose/)                         | Overload do-notation for function composition and existential types                                                  |
| [ecs](./ecs/)                                 | Purescript-wrapper for [thi.ng/ecs](thi.ng/ecs)                                                                      |
| [existentials-blog](./existentials-blog)      | Perhaps supposed to turn into a blog about existentials?                                                             |
| [existentials](./existentials)                | Experiment regarding the Church-encoding of existential types                                                        |
| [factorio-throughput](./factorio-throughput/) | Experiments with computing throughput of factorio systems                                                            |
| [free](./free/)                               | Experiments regarding free monads and interpreting algebras                                                          |
| [gadts](./gadts)                              | Experiment regarding ways to encode GADTs in Purescript                                                              |
| [kombinators](./kombinators)                  | Attempt at generating factorio combinator networks programmatically                                                  |
| [lambda-calculus](./lambda-calculus)          | Lambda calculus evaluator                                                                                            |
| [lunarline](./lunarline)                      | Attempt at optimizing a functional language using compile-time partial evaluation                                    |
| [lune](./lune)                                | Failed effect-system project                                                                                         |
| [maps](./maps)                                | Attempt at implementing maps with membership proofs                                                                  |
| [proofs](./proofs)                            | Attempt at expressing mathematical proofs using Purescript's effect system                                           |
| [purebird](./purebird)                        | Flappy-bird game                                                                                                     |
| [purpleflow](./purpleflow)                    | Unfinished dependently-typed programming language                                                                    |
| [reverse-state](./reverse-state)              | Implementation of, (drum roll), reverse state                                                                        |
| [run-supply](./run-supply)                    | Effect for generating an infinite supply of unique values                                                            |
| [slice](./slice)                              | Basic benchmarks and a `Slice` type                                                                                  |
| [sprint](./sprint)                            | Failled effect-system based on typelevel lists                                                                       |
| [strategy](./strategy)                        | Unfinished attempt at implementing a mixed strategy nash equilibrium solver                                          |
| [streams](./streams)                          | Playing with `purescript-pipes`                                                                                      |
| [switcheroo](./switcheroo)                    | Index-monad based stream library idea                                                                                |
| [thumbor](./thumbor)                          | Dropped attempt at writing purescript bindings for [thumbor-ts](https://github.com/Brettm12345/thumbor-ts)           |
| [typelevel](./typelevel)                      | Typelevel naturals, vectors, sum-types, orderings and lambda-calculus evaluation and a value-level bounded-type GADT |