write_info( What, That ) :- write( What ), write( ' : ' ), var( That ), !, write( unistantiated_variable(That) ), nl. write_info( _What, That ) :- ( That=[_H|_T] -> write( '[' ), nl, write_list( That, 3 ), write( ']' ), nl ; write( That ), nl ). write_item( Item ) :- ( var(Item) -> write( Item ) ; ( Item = (A/B,Code) -> name( Atom, [Code] ), write( (A/B,Atom) ) ; write( Item ) ) ). write_list( Var, _Tabs ) :- var( Var ), !, write( var_in_write_list(Var) ), nl, abort. write_list( [], _Tabs ). write_list( [H|T], Tabs ) :- ( is_list(H) -> RecTab is Tabs * 2, write( '[' ), nl, write_list( H, RecTab ), write( ']' ), nl ; tab( Tabs ), write_item( H ), write( ',' ), nl ), write_list( T, Tabs ). write_pivots( List ) :- write( possible_steps_to_consider ), nl, write( '[' ), nl, write_piv_list( List, 3 ). write_piv_list( [], _Tab ) :- write( ']' ), nl. write_piv_list( [X-Y-Z-_Throw|T], Tab ) :- name( Yatom, [Y] ), tab( Tab ), write( X-Yatom-Z ), nl, write_piv_list( T, Tab ). write_branches_prob( Message, List ) :- write( Message ), write( ' : [' ), nl, write_branches_prob_list( List, 3 ), write( ']' ), nl. write_branches_prob_list( [], _Tab ). write_branches_prob_list( [(BrProb,_Data,_Cont)|T], Tab ) :- Numcal is BrProb, tab( Tab ), write( BrProb ), write( ' (' ), write( Numcal ), write( '),' ), write_branches_prob_list( T, Tab ). write_store( Store ) :- Enqs = [ act(Active), gr(Graph), rts(Roots), cnt(Count), vs(Variables), fdi(FdIs) ], store_enquire( Store, Enqs ), write( 'Store :' ), nl, write_headed_list( active, Active ), write_headed_list( graph, Graph ), write_headed_list( roots, Roots ), write( ' count : ' ), write( Count ), nl, write_headed_list( variables, Variables ), write_headed_list( fdis, FdIs ). write_headed_list( Heading, List ) :- write( ' ' ), write( Heading ), write( ' : ' ), nl, write_list( List, 2 ).