anchor.diff:      let ilMethRef = minfo.ILMethodRef
       let newobj = ctor && (match valUseFlags with NormalValUse -> true | _ -> false)
       let exprTy = if ctor then minfo.ApparentEnclosingType else minfo.GetFSharpReturnTy(amap, m, minst)
  -    let retTy = (if not ctor && (ilMethRef.ReturnType = ILType.Void) then [] else [exprTy])
  +    let retTy = if not ctor && ilMethRef.ReturnType = ILType.Void then [] else [exprTy]
       let isDllImport = minfo.IsDllImport g
       Expr.Op(TOp.ILCall(useCallvirt,isProtected,valu,newobj,valUseFlags,isProp,isDllImport,ilMethRef,minfo.DeclaringTypeInst,minst,retTy),[],args,m),
       exprTy
  
positive.code:             | _ -> 
              match amap.g.knownFSharpCoreModules.TryGetValue(declaringEntity.LogicalName) with
              | true,modRef -> 
                  match modRef.ModuleOrNamespaceType.AllValsByLogicalName |> Seq.tryPick (fun (KeyValue(_,v)) -> if v.CompiledName = methodName then Some v else None) with 
                  | Some v -> Some (mkNestedValRef modRef v)
                  | None -> None
              | _ -> None
          else
              None
  
negative.code:                     elif isFunTy g enclTy then [ domainOfFunTy g enclTy; rangeOfFunTy g enclTy ]  // provided expressions can call Invoke
                      else minfo.DeclaringTypeInst
                  let actualMethInst = minst
                  let retTy = if not isCtor && (ilMethRef.ReturnType = ILType.Void) then [] else [exprTy]
                  let noTailCall = false
                  let expr = Expr.Op(TOp.ILCall(useCallvirt,isProtected,valu,isNewObj,valUseFlags,isProp,noTailCall,ilMethRef,actualTypeInst,actualMethInst, retTy),[],allArgs,m)
                  expr,exprTy
  