+
+
+
+TO-DO
+
+ - Types other than strings. Int and bool would be useful. However
+ this also implies that we should do type inference and/or checking.
+
+ - Default arguments
+
+ goal build (project, bool release = true) = ...
+ build ("foo")
+ build ("foo", false)
+
+ - Anonymous functions
+ Any code section is potentially a closure
+
+ let hello = { echo "hello" }
+
+ let f = function (name, version) { CODE }
+ f ("goals", "0.1")
+
+
+ - Cover some of the other tools that are better makes.
+ (Note I'm not covering all DAG solvers like Ninja unless they
+ bring something new to the table)
+
+ * Plan 9 mk - has alternate build predicates
+
+ * https://github.com/casey/just - has functions and multi-parameter rules
+
+ * http://www.crufty.net/help/sjg/bmake-meta-mode.htm
+ - alternative route to finding deps by snooping on file
+ accesses at the kernel level
+ * https://github.com/apenwarr/redo - similar to above
+
+ * https://web.archive.org/web/20001027183954/http://software-carpentry.codesourcery.com/entries/build/Tromey/Tromey.html
+
+
+----
+to do:
+
+ - Explain predicates better, Kashyap found it confusing.
+