anchor.diff:              mkStaticCall_String_Concat_Array cenv.g m arg
   
       match expr with
  -    | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, methRef, _, _, _) as op, tyargs, args, m) when IsILMethodRefSystemStringConcatOverload cenv.g.ilg methRef || IsILMethodRefSystemStringConcatArray cenv.g.ilg methRef ->
  +    | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _) as op, tyargs, args, m) 
  +      when IsILMethodRefSystemStringConcat mref || IsILMethodRefSystemStringConcatArray mref ->
           OptimizeExprOpReductions cenv env (op, tyargs, args, m)
       | _ ->
           OptimizeExpr cenv env expr
  
positive.code:         //printfn "Not eliminating because no Run found"
          None
  
  let IsILMethodRefDeclaringTypeSystemString (ilg: ILGlobals) (mref: ILMethodRef) =
      mref.DeclaringTypeRef.Scope.IsAssemblyRef &&
      mref.DeclaringTypeRef.Scope.AssemblyRef.Name = ilg.typ_String.TypeRef.Scope.AssemblyRef.Name &&
      mref.DeclaringTypeRef.BasicQualifiedName = ilg.typ_String.BasicQualifiedName
                  
  let IsILMethodRefSystemStringConcatOverload (ilg: ILGlobals) (mref: ILMethodRef) =
      IsILMethodRefDeclaringTypeSystemString ilg mref &&
      mref.Name = "Concat" &&
      mref.ReturnType.BasicQualifiedName = ilg.typ_String.BasicQualifiedName &&
      mref.ArgCount >= 2 && mref.ArgCount <= 4 && mref.ArgTypes |> List.forall(fun ilty -> ilty.BasicQualifiedName = ilg.typ_String.BasicQualifiedName)
  
  let IsILMethodRefSystemStringConcatArray (ilg: ILGlobals) (mref: ILMethodRef) =
      IsILMethodRefDeclaringTypeSystemString ilg mref &&
      mref.Name = "Concat" &&
      mref.ReturnType.BasicQualifiedName = ilg.typ_String.BasicQualifiedName &&
      mref.ArgCount = 1 && mref.ArgTypes.Head.BasicQualifiedName = "System.String[]"
      
  /// Optimize/analyze an expression
  let rec OptimizeExpr cenv (env: IncrementalOptimizationEnv) expr =
  
negative.code: and MakeOptimizedSystemStringConcatCall cenv env m args =
      let rec optimizeArg argExpr accArgs =
          match argExpr, accArgs with
          | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _), _, [ Expr.Op(TOp.Array, _, args, _) ], _), _ 
            when IsILMethodRefSystemStringConcatArray mref ->
              optimizeArgs args accArgs
  
          | Expr.Op(TOp.ILCall(_, _, _, _, _, _, _, mref, _, _, _), _, args, _), _ 
            when IsILMethodRefSystemStringConcat mref ->
              optimizeArgs args accArgs
  
          // Optimize string constants, e.g. "1" + "2" will turn into "12"
  