about summary refs log tree commit diff
path: root/README.md
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2019-08-28T13·53+0100
committerVincent Ambo <tazjin@google.com>2019-08-28T13·55+0100
commit6468845255e5516d4567f9bef48d815549b20910 (patch)
tree156fdde8c89b19a099983698f84973972d3cc774 /README.md
parent34a591798179c87b84692712398359609a18c513 (diff)
chore: Change file layout to match repository instead of gist
Diffstat (limited to 'README.md')
-rw-r--r--README.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..55ea764d8f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,40 @@
+yants
+=====
+
+This is a tiny type-checker for data in Nix, written in Nix.
+
+Features:
+
+* Checking of primitive types (`int`, `string` etc.)
+* Checking polymorphic types (`option`, `list`, `either`)
+* Defining & checking struct/record types
+* Defining & matching enum types
+* Defining & matching sum types
+* Defining function signatures (including curried functions)
+* Types are composable! `option string`! `list (either int (option float))`!
+* Type errors also compose!
+
+Lacking:
+
+* Any kind of inference
+* Convenient syntax for attribute-set function signatures
+
+## Primitives & simple polymorphism
+
+![simple](screenshots/simple.png)
+
+## Structs
+
+![structs](screenshots/structs.png)
+
+## Nested structs!
+
+![nested structs](screenshots/nested-structs.png)
+
+## Enums!
+
+![enums](screenshots/enums.png)
+
+## Functions!
+
+![functions](screenshots/functions.png)