%prec({__+__} < {__*__})%
%prec({__*__} < {__^__})%
%prec({+__} <> {__^__})%
%prec({__-->__} < {__{__}--__-->{__}__})%
%string empty, __::::__
%left_assoc(__+__, __*__)%
%left_assoc(__-->__)%
%number __@@__
%floating __:::__, __E__
%list [__], [], __::__