anchor.diff:  // BNF, except in reverse, bottom-up order.
   
   
  -//
  -// Expressions.
  -//
  +(*
  + * Expressions.
  + *)
   
   /// Parser for lvalues.
   let parseLValue, parseLValueRef = createParserForwardedToRef<LValue, unit> ()
  
positive.code: do parseExpressionRef := parseOrExpression
  
  
  //
  // Atomic actions.
  //
  
  /// Parser for compare-and-swaps.
  /// This parser DOES NOT parse whitespace afterwards.
  
negative.code:                           (curry3 CompareAndSwap))
  
  /// Parser for fetch sigils.
  let parseFetchSigil =
      choice [ pstring "++" >>% Increment
               pstring "--" >>% Decrement ] <|>% Direct
  
  /// Parser for fetch sources.
  let parseFetchSrc =
  