shithub: MicroHs

Download patch

ref: d85af065bd709705a0377b345321cee6daafaf28
parent: 3b9c34f8b0ddd235e9a969f1246aab87f7dbd471
author: Lennart Augustsson <lennart@augustsson.net>
date: Sun Dec 24 08:22:30 EST 2023

Small updates

--- a/Makefile
+++ b/Makefile
@@ -92,6 +92,12 @@
 	time bin/mhs +RTS -v -RTS -isrc MicroHs.Main
 
 #
+timecachecompile: bin/mhs
+	@-rm -f .mhscache
+	bin/mhs -C AllOfLib
+	bin/mhs +RTS -v -RTS -C -isrc MicroHs.Main
+
+#
 cachelib:
 	@-rm -f .mhscache
 	bin/mhs -C AllOfLib
--- a/README.md
+++ b/README.md
@@ -51,6 +51,7 @@
    * NegativeLiterals
    * NoMonomorphismRestriction
    * OverlappingInstances
+   * PolyKinds
    * RankNTypes
    * QualifiedDo
    * ScopedTypeVariables
--- a/TODO
+++ b/TODO
@@ -20,6 +20,7 @@
   - instead of skolemization, use regular variables, making sure they are unique
   - allow existential quantification
     # works partially, but not constraint solving doesn't happen in all the right places
+    # check for escaping skolemized variables
 * Try Oleg's abstraction algorithm
   - Seems to be slower
 * Redo type synonym expansion
@@ -26,8 +27,7 @@
   - Only non-injective synonyms necessitate expansion(?)
   - Do expansion during unification
 * Redo handling of synonym and instance tables.
-  - These tables can persist during the compilation
-    and only grow
+  - These tables can persist during the compilation and only grow
 * Implement two level tables for instances even in the tricky cases
 * Handle tupled dictionaries better for recursive calls
 * Split eval.c
@@ -40,6 +40,3 @@
   - In GC mark pass
   - In evaluator
 * Fix bug uncovered by Data.Type.Equality
-* Stratify types/kinds/sorts
-  - Do kind variables this way 'data forall (k:Kind) . T (a::k) = C'
-* Implement polykinds
--