anchor.diff:      | Next
       | Previous
   
  -  type Weekdays =
  -    | Monday
  -    | Tuesday
  -    | Wednesday
  -    | Thursday
  -    | Friday
  -    | Saturday
  -    | Sunday
  -
     type DateParts =
       | Day
       | Week
  
positive.code:     | DayShift of DayOfWeek
      | PeriodShift of DateParts
    type AbsoluteShift =
      | Before of NewShift
      | After of NewShift
      | Ago
    and NewShift =
      | Date of SpecificDate
      | Weekday of DayOfWeek
      | Relative of RelativeOffset * RelativeShift
      | Absolute of int * DateParts * AbsoluteShift
  
  
  
  
    type Shift =
      | Date of SpecificDate
      | Weekday of DayOfWeek
      | RelativeDay of RelativeOffset * DayOfWeek
      | RelativeShift of RelativeOffset * DateParts
      | AbsoluteForwardShift of int * DateParts * Shift
      | AbsoluteBackwardShift of int * DateParts * Shift
      | Ago of int * DateParts
  
  module NewParsers =
    open Types
  
negative.code:       choice [
          relativeDateP |>> Date
          weekdaysP |>> Weekday
          relativeP
          attempt (absoluteP pars)
          fallbackP |>> fun date -> Date(Specific(date))
        ]
      pars
      |>> evaluate
  
  
  type ParserConfig =
  