% ISO double-quoted list notation follows the active double_quotes flag.
%% ?- default_chars(X0).
%% ?- default_empty(X0).
%% ?- default_shape(X0).
%% ?- atom_mode(X0).
%% ?- atom_functor(X0).
%% ?- atom_shape(X0).
%% ?- codes_mode(X0).
%% ?- codes_shape(X0).

stored_chars("ab").
stored_empty("").
default_chars(Value) :- stored_chars(Value).
default_empty(Value) :- stored_empty(Value).
default_shape(compound) :- compound("a"), \+ atomic("a").

:- set_prolog_flag(double_quotes, atom).
stored_atom("ab").
stored_compound("pair"(a, b)).
atom_mode(Value) :- stored_atom(Value).
atom_functor(Value) :- stored_compound(Value).
atom_shape(atomic) :- atom("a"), atomic("a").

:- set_prolog_flag(double_quotes, codes).
stored_codes("ab").
codes_mode(Value) :- stored_codes(Value).
codes_shape(compound) :- compound("a"), \+ atomic("a").
