anchor.diff:              )
   
       // Functions
  -    let ArityNFunctionNameMaker n xs = xs |> Array.map (fun name -> attempt (pstring name)) |> choice <!> ("Arity" + n.ToString() + "FunctionName")
  -    let ArityAtLeastNFunctionNameMaker nplus xs = xs |> Array.map (fun name -> attempt (pstring name)) |> choice <!> ("Arity" + nplus.ToString() + "+FunctionName")
  +    let ArityNFunctionNameMaker n xs = xs |> Array.map (fun name -> attempt_opt (pstring name)) |> choice_opt <!> ("Arity" + n.ToString() + "FunctionName")
  +    let ArityAtLeastNFunctionNameMaker nplus xs = xs |> Array.map (fun name -> attempt_opt (pstring name)) |> choice_opt <!> ("Arity" + nplus.ToString() + "+FunctionName")
   
       let Arity0Names: string[] = [|"COLUMN"; "NA"; "NOW"; "PI"; "RAND"; "ROW"; "SHEET"; "SHEETS"; "TODAY"|]
       let Arity0FunctionName: P<string> = ArityNFunctionNameMaker 0 (lmf Arity0Names)
  
positive.code:     do ExpressionDeclImpl :=
          fun (R: P<Range>) ->
              (
                  ((attempt (UnaryOpExpr R))
                  <|> (attempt (BinOpExpr R))
                  <|> (ExpressionSimple R))
              )
              <!> "Expression"
  
  
negative.code:                                             R
                                              |>> (fun rng -> ReferenceRange(us, rng) :> Reference)
  //                                    <!> "RangeReferenceNOWorksheet"
      let RangeReference R = (attempt_opt (RangeReferenceWorkbook R))
                           <||> (attempt_opt (RangeReferenceWorksheet R))
                           <||> RangeReferenceNoWorksheet R
                           <!> "RangeReference"
  
      let ARWQuoted = (between
  