anchor.diff:      let e',einfo = OptimizeExpr cenv env e
       (* REVIEW: if we ever change this from being UnknownValue then we should call AbstractExprInfoByVars *)
       TObjExprMethod(slotsig,attribs,tps,vs,e',m),
  -    { TotalSize = einfo.TotalSize;
  -      FunctionSize = 0;
  -      HasEffect = false;
  -      MightMakeCriticalTailcall=false;
  +    { TotalSize = einfo.TotalSize
  +      FunctionSize = 0
  +      HasEffect = false
  +      MightMakeCriticalTailcall=false
         Info=UnknownValue}
   
   //-------------------------------------------------------------------------
  
positive.code:     | Some res -> res,vinfo
      | None ->
            Expr.Op(op,tyargs,args',m),
            { TotalSize=argsTSize + cost;
              FunctionSize=argsFSize + cost;
              HasEffect=argEffects || effect;
              MightMakeCriticalTailcall= mayBeCriticalTailcall; // discard tailcall info for args - these are not in tailcall position
              Info=valu }
  
  //-------------------------------------------------------------------------
  
negative.code: 
      let remapValInfo v = { ValExprInfo=remapExprInfo v.ValExprInfo; ValMakesNoCriticalTailcalls=v.ValMakesNoCriticalTailcalls }
      let rec remapModulInfo ss =
           { ModuleOrNamespaceInfos = ss.ModuleOrNamespaceInfos |> NameMap.map remapLazyModulInfo
             ValInfos = ss.ValInfos.Map (fun (vref,vinfo) -> 
                                                       let vref' = remapValRef tmenv vref 
                                                       let vinfo = remapValInfo vinfo
  