
expand_goal(+Term, -TransTerm)

   Apply goal inline expansion to Term

Arguments
   Term                A callable term.
   TransTerm           A variable or callable term.

Type
   Predicate Database and Compiler

Description
    Applies a goal inline expansion to Term, if any is visible in the
    caller module. If no inline/1 or inline/2 declaration is visible,
    TransTerm is identical to Term.
    
    Normally, goal inline expansion is performed implicitly by the compiler.
    For certain meta-programming applications (e.g. for writing other
    compilers) it can be performed explicitly using expand_goal/2.
    Goal inline expansion is the third transformation which is applied during
    the compilation process: macro expansion, then clause expansion, then
    goal inline expansion.


Modes and Determinism
   expand_goal(+, -) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Examples
   
    [eclipse 1]: lib(fd).
    yes.

    [eclipse 5]: expand_goal(X#>Y, G).
    X = X
    Y = Y
    G = fd_arith : fd_gec(X, -1, Y, -1, 0)
    yes.


See Also
   inline / 1, inline / 2, portray / 3, expand_clause / 2
