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.