{Goal}
This control construct allows the programmer to bypass the Prolog compiler. Can be used e.g. for calling external Prolog code. The argument is called within the context of the pseudo-object user. It is also possible to use {Closure} as the first argument of call/2-N calls. In this case, Closure will be extended with the remaining arguments of the call/2-N call in order to construct a goal that will be called within the context of user.
This control construct may also be used in place of an object identifier when sending a message. In this case, the result of proving its argument is used as an object identifier in the message sending call.
{+callable}
instantiation_errortype_error(callable, Goal)N1/D1 < N2/D2 :-
{N1*D2 < N2*D1}.
call_in_user(F, X, Y, Z) :-
call({F}, X, Y, Z).
| ?- {circle(Id, Radius, Color)}::area(Area).