anchor.diff:  and MakeOptimizedSystemStringConcatCall cenv env m args =
       let rec optimizeArg e accArgs =
           match e, accArgs with
  -        | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, methRef, _, _, _), _, [ Expr.Op(TOp.Array, _, args, _) ], _), _ when IsSystemStringConcatArray methRef ->
  +        | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _), _, [ Expr.Op(TOp.Array, _, args, _) ], _), _ when IsILMethodRefSystemStringConcatArray cenv.g.ilg mref ->
               optimizeArgs args accArgs
   
  -        | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, methRef, _, _, _), _, args, _), _ when IsSystemStringConcatOverload methRef ->
  +        | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _), _, args, _), _ when IsILMethodRefSystemStringConcatOverload cenv.g.ilg mref ->
               optimizeArgs args accArgs
   
           // Optimize string constants, e.g. "1" + "2" will turn into "12"
  
positive.code:             mkStaticCall_String_Concat_Array cenv.g m arg
  
      match e with
      | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, methRef, _, _, _) as op, tyargs, args, m) when IsSystemStringConcatOverload methRef || IsSystemStringConcatArray methRef ->
          OptimizeExprOpReductions cenv env (op, tyargs, args, m)
      | _ ->
          OptimizeExpr cenv env e
  
negative.code:     | TOp.ILAsm([], [ty]), _, [a] when typeEquiv cenv.g (tyOfExpr cenv.g a) ty -> OptimizeExpr cenv env a
  
      // Optimize calls when concatenating strings, e.g. "1" + "2" + "3" + "4" .. etc.
      | TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _), _, [ Expr.Op(TOp.Array, _, args, _) ] when IsILMethodRefSystemStringConcatArray cenv.g.ilg mref ->
          MakeOptimizedSystemStringConcatCall cenv env m args
      | TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _), _, args when IsILMethodRefSystemStringConcatOverload cenv.g.ilg mref ->
          MakeOptimizedSystemStringConcatCall cenv env m args
  
      | _ -> 
  