+AbstractType : ?(#1) >>
 ?(#1) : _
 X, Y : ?(#2)
 ...
;

DataType = AbstractType [GenericType, Integer : +-]