goal_expansion(Goal, ExpandedGoal)
Defines an expansion for a goal. The first argument is the goal to be expanded. The expanded goal is returned in the second argument. This predicate is called recursively on the expanded goal. Thus, care must be taken to avoid compilation loops. This predicate, when defined, is automatically called by the expand_goal/2 method. Use of this predicate by the expand_goal/2 method may be restricted by using a scope directive for it. This predicate is called when compiling source files, when dynamically creating new objects, and when asserting predicate clauses.
goal_expansion(+callable, -callable)