diff --git a/purescript/README.md b/purescript/README.md new file mode 100644 index 0000000..5dd6ff9 --- /dev/null +++ b/purescript/README.md @@ -0,0 +1,19 @@ +# 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 | +| [gadts](./gadts) | Experiment regarding ways to encode GADTs in Purescript | +| [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 | +| [purpleflow](./purpleflow) | Unfinished dependently-typed programming language | +| [sprint](./sprint) | Failled effect-system based on typelevel lists | +| [streams](./streams) | Playing with `purescript-pipes` | +| [typelevel](./typelevel) | Typelevel naturals, vectors, sum-types, orderings and lambda-calculus evaluation and a value-level bounded-type GADT | diff --git a/purescript/abilities/README.md b/purescript/abilities/README.md new file mode 100644 index 0000000..ab7534a --- /dev/null +++ b/purescript/abilities/README.md @@ -0,0 +1,12 @@ +# Abilities + +Implementation of my idea of abusing typeclass-dictionaries in order to create a barebones effect system. + +## File structure + +| File | Description | +| -------------------------------------- | ---------------------------------------------------------------- | +| [Abilities.purs](./src/Abilities.purs) | Overloaded pure do-notation enabling implicit dictionary passing | +| [Ask.purs](./src/Ask.purs) | Reader-monad effect | +| [Io.purs](./src/Ask.purs) | IO-monad effect | +| [Main.purs](./src/Main.purs) | Demo showcasing usage of `IO` together with `Ask` | diff --git a/purescript/canopy/README.md b/purescript/canopy/README.md index 8764694..6d7a3e5 100644 --- a/purescript/canopy/README.md +++ b/purescript/canopy/README.md @@ -4,9 +4,9 @@ This directory contains an (unfinished) attempt at writing a [Diplomacy](<https: ## File structure -| File | Description | -| ------------------------------------ | ------------------------------------------------------------------------------ | -| [Tagless.purs](./src/Tagless.purs) | Experiments regarding tagless representations of inductive types | -| [Graph.purs](./src/Graph.purs) | Simple directed-graph type | -| [DipMap.purs](./src/DipMap.purs) | Representation for diplomacy maps | -| [DipMap.purs](./src/Adjudecate.purs) | Types for logical propositions. The adjudecation logic was supposed to go here | +| File | Description | +| ---------------------------------------- | ------------------------------------------------------------------------------ | +| [Tagless.purs](./src/Tagless.purs) | Experiments regarding tagless representations of inductive types | +| [Graph.purs](./src/Graph.purs) | Simple directed-graph type | +| [DipMap.purs](./src/DipMap.purs) | Representation for diplomacy maps | +| [Adjudecate.purs](./src/Adjudecate.purs) | Types for logical propositions. The adjudecation logic was supposed to go here | diff --git a/purescript/compose/README.md b/purescript/compose/README.md new file mode 100644 index 0000000..1903417 --- /dev/null +++ b/purescript/compose/README.md @@ -0,0 +1,13 @@ +# Compose + +Overload do-notation for: + +- function composition +- usage of existential types + +## File structure + +| File | Description | +| ---------------------------------- | ------------------------------------------- | +| [Compose.purs](./src/Compose.purs) | Function composition do-notation | +| [Main.purs](./src/Main.purs) | Demo usage and existential-type do-notation | diff --git a/purescript/ecs/README.md b/purescript/ecs/README.md new file mode 100644 index 0000000..ec11e78 --- /dev/null +++ b/purescript/ecs/README.md @@ -0,0 +1,10 @@ +# Ecs + +Purescript-wrapper for [thi.ng/ecs](thi.ng/ecs) + +## File structure + +| File | Description | +| ---------------------------------- | ------------------------------------------------------- | +| [Types.purs](./src/Types.purs) | Type definitions | +| [Keys.purs](./src/Utils/Keys.purs) | Extract value-level arrays containing the keys of a row | diff --git a/purescript/typelevel/README.md b/purescript/typelevel/README.md new file mode 100644 index 0000000..f8530d8 --- /dev/null +++ b/purescript/typelevel/README.md @@ -0,0 +1,14 @@ +# Typelevel + +Experiments in the realm of typelevel Purescript computation. + +## File structure + +| File | Description | +| ------------------------------------ | -------------------------------------------------- | +| [Ast.purs](./src/Ast.purs) | Typelevel sum-types and a bit of typelevel parsing | +| [Num.purs](./src/Num.purs) | Typelevel naturals | +| [Vec.purs](./src/Vec.purs) | Typelevel fixed-size lists | +| [Ordering.purs](./src/Ordering.purs) | Typelevel orderings | +| [Term.purs](./src/Term.purs) | Typelevel lambda-calculus evaluation | +| [Fin.purs](./src/Fin.purs) | Bounded naturals using a GADT representation |