to_bb(_A, _B, _C, _D, _E) :-	% eg u_cpt concept keys args who_set
	to_bb(_A), csep,
	to_bb(_B, _C, _D, _E).
to_bb(_A, _B, _C, _D) :-	% eg user_dialog tell_usr concept value
	to_bb(_A), csep,
	to_bb(_B, _C, _D).
to_bb(_A, _B, _C) :-		% eg user_dialog ask_usr cpt
	to_bb(_A), csep,	% or notify_me area id_string
	to_bb(_B, _C).
to_bb(_A, _B) :-		% eg mk_area area
	to_bb(_A), csep,
	to_bb(_B), nl, ttyflush.
to_bb([_Head]) :-
	!, writeline(_Head).
to_bb([_Head|_Tail]) :-
	!, to_bb(_Head), ksep,
	to_bb(_Tail).
to_bb([]) :-
	!.
to_bb(_Arg) :-
	!, write(_Arg).

writeline([_Head|_Tail]) :-
	writeline(_Head),
	writeline(_Tail).
writeline([_Head]) :-
	writeline(_Head).
writeline([]).
writeline(_Arg) :-
	write(_Arg).

csep :-					% bb's concept separator
	write('	').			%% 	= \t
ksep :-					% bb's concept key separator
	write('	').			%% 	= \t
tsep :-					% bb's text separator
	write('\n').			%% 	= '\n'


quitrqst :-					/* user said quit */
	to_bb(quitrqst, kb-uc),
	halt.
quitrqst(_) :-
	to_bb(quitrqst, kb-uc),
	halt.
quitrqst(_,_) :-
	to_bb(quitrqst, kb-uc),
	halt.

	
