+
+Now that we have 'onrun' handlers, can we do the following on goal exit:
+
+ - implicit memory_set
+
+ - implicit check_target
+
+Check and enforce there's only a single target per goal.
+
+Multiple definitions of goals:
+
+ let goal file_exists filename when filename `starts_with` "/foo" ->
+ ...
+
+ let goal file_exists filename when filename `starts_with` "/bar" ->
+ ...
+
+ - Might be implemented something like this:
+ add_goal (`File_exists, fun patt -> raise Matches, fun patt -> expr)
+ then when we run goals, we check them against all patterns (how?)
+ and only if one matches to we run that function. Multi-matches are
+ not permitted.