Mostrar los tiempos de ejecución para cada objetivo de una cláusula de predicado

Quiero ver el tiempo de ejecución dentro de los objetivos del predicado conSICStus Prolog.

Ejemplo:

pred :-
   goal1,
   time,
   goal2,
   time.

go :-
   call(pred).

time_go :-
   go,
   times(go).

Resultado Esperado:

?- time_go.
times_go = 1000ms ,   
times_go_goal1 = 500ms,
times_go_goal2 = 500ms

Como hacer eso ?

Lo intentétime_out(:Goal, +Time, -Result) delibrary(timeout) pero recibí este error:

| ?- time_out(char_code(a,N), T, Res).
! Instantiation error in argument 2 of user:time_out/3
! goal:  time_out(user:char_code(a,_193),_179,_181)

| ?- time_out(char_code(a,N), 1000, Res).
N = 97,
Res = success ? ; % Res=timeout in other example

Respuestas a la pregunta(3)

Su respuesta a la pregunta