-Implement more make functions, see:
-https://www.gnu.org/software/make/manual/html_node/Functions.html#Functions
\ No newline at end of file
+Make re-execs itself if the Makefile (or any include) changes, and
+goals should do something similar. See:
+https://www.gnu.org/software/make/manual/html_node/Remaking-Makefiles.html
+
+Code should be an expression, eg this ought to work:
+let foo = { echo "hello" }
+and/or anonymous functions:
+let foo = function (arg) { ... }
+
+Infinite loop when you have this goal:
+goal pod2man (page, section) = "docs/%page.%section" : "docs/%page.pod" { ... }
+This is caused by %section matching "pod" so the rule is called
+again, even if the local file docs/%page.pod actually exists.
+
+Implement make-like “eval” function (similar to include directive,
+but it evaluates the output of a function as Goalfile syntax).
+
+Implement make-like “origin” function. This is easy but it requires
+us to track to the origin of definitions which we do not do at
+the moment.
+
+Some kind of “source” directive. If goals sees this then
+it automatically sources the parameter (a shell script) into
+every shell command.