about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--yants.md22
-rw-r--r--z-yants-tests.nix (renamed from yants-tests.nix)0
2 files changed, 19 insertions, 3 deletions
diff --git a/yants.md b/yants.md
index 6db2068255dc..e10e120f08b6 100644
--- a/yants.md
+++ b/yants.md
@@ -1,9 +1,21 @@
 yants
 =====
 
-This is a tiny type-checker for data in Nix, written in Nix. It doesn't have all
-the features I think it should have (yet), but it works and its types are
-composable.
+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 function signatures (including curried functions)
+* Types are composable! `option string`! `list (either int (option float))`!
+
+Lacking:
+
+* Any kind of inference (Nix's reflection ability is not strong enough)
+* Convenient syntax for attribute-set function signatures
 
 ## Primitives & simple polymorphism
 
@@ -20,3 +32,7 @@ composable.
 ## Enums!
 
 ![enums](https://gist.githubusercontent.com/tazjin/ad6d48bc2416335acc5da4a197eb9ddc/raw/b435b5996a176a9e824c42da4713a1d30f261338/z-enums.png)
+
+## Functions!
+
+![functions](https://gist.githubusercontent.com/tazjin/ad6d48bc2416335acc5da4a197eb9ddc/raw/ccece1eb9a1cb3b1add1ba1a1f65df3adca64a8f/z-functions.png)
diff --git a/yants-tests.nix b/z-yants-tests.nix
index e089aab4670a..e089aab4670a 100644
--- a/yants-tests.nix
+++ b/z-yants-tests.nix