time(Call) :-
nl,print('calling: '),print(Call),nl,
statistics(runtime,[Start,_]),
statistics(total_runtime,[StartT,_]),
statistics(walltime,[StartW,_]),
call(Call),
statistics(runtime,[End,_]),
statistics(total_runtime,[EndT,_]),
statistics(walltime,[EndW,_]),
print('exit: '), print(Call),nl,
Tot is End-Start,
print('Runtime: '), print(Tot), print(' ms'),
TotT is EndT-StartT,
print(' Total Runtime: '), print(TotT), print(' ms'),
TotW is EndW-StartW,
print(' Walltime: '), print(TotW), print(' ms'),nl.