%left_assoc(__+__, __-__, __++__)%
%right_assoc(__::__)%
%prec({__++__} < {__::__})%
%string [], __::__
%list {__}, []a, __::__a
%list |[__]|, []b, __::__b
%list [|__|], []c, __::__c
%list <[__]>, []d, __::__d
%list {|__|}, []e, __::__e