Enhancements to pa_goal: - Include the source file location in the generated goal code so we can improve error messages. - Implement some sort of tracing based on the above. 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.