anchor.diff:      | dayUnspecified
       | dayAndMonthUnspecified;
   
  -monthUnspecified : Year Dash UU;
  -dayUnspecified : YearMonth Dash UU;
  +monthUnspecified : year Dash UU;
  +dayUnspecified : yearMonth Dash UU;
   uncertainOrApproxDate : date uaSymbol;
  -dayAndMonthUnspecified : Year Dash UU Dash UU;
  -
  -season : Year Dash seasonNumber;
  +dayAndMonthUnspecified : year Dash UU Dash UU;
  +
  +season : year Dash seasonNumber;
   seasonNumber : '21' | '22' | '23' | '24';
   uaSymbol : QuestionMark | Tilde | QuestionMarkTilde;
   
  
positive.code:     ;
  
  partialUncertainOrApproximate : iuaBase | OpenParen iuaBase CloseParen uaSymbol;
  day : Day;
  year : Year;
  dash : Dash;
  iuaBase
      : Year uaSymbol Dash Month (Dash partialDay uaSymbol)?
      | Year uaSymbol Dash MonthDay uaSymbol?
      | year uaSymbol? Dash partialMonth uaSymbol Dash day
      //| Year uaSymbol? Dash partialMonth uaSymbol (Dash partialDay uaSymbol)? // works
      | YearMonth uaSymbol Dash partialDay uaSymbol
      | YearMonth uaSymbol Dash Day
      | YearMonth Dash partialDay uaSymbol // next one(?)
      | Year Dash partialMonthDay uaSymbol
      | season uaSymbol
      ;
  
  
negative.code: Colon : ':';
  Slash : '/';
  
  year : PositiveYear | NegativeYear | '0000';
  NegativeYear : Dash PositiveYear;
  PositiveYear
      : PositiveDigit Digit Digit Digit
  