Exibir os tempos de execução para cada objetivo de uma cláusula de predicado

Eu quero ver o tempo de execução dentro dos objetivos do predicado comSICStus Prolog.

Exemplo:

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 fazer isso ?

eu tenteitime_out(:Goal, +Time, -Result) delibrary(timeout) mas eu recebi este erro:

| ?- 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

questionAnswers(3)

yourAnswerToTheQuestion