what(X,atom) :- atom(X), !.
what(X,integer) :- integer(X), !.
what(X,float) :- float(X), !.
what(_,wat).

% what_nc is "no cut"
what_nc(X,atom) :- atom(X).
what_nc(X,integer) :- integer(X).
what_nc(X,float) :- float(X).
what_nc(_,wat).

v(apple). v(7). v([1,2,3]).
