anchor.diff:  
   and OptimizeMethods cenv env baseValOpt l = OptimizeList (OptimizeMethod cenv env baseValOpt) l
   and OptimizeMethod cenv env baseValOpt (TObjExprMethod(slotsig, attribs, tps, vs, e, m) as tmethod) = 
  -    if verboseOptimizations then dprintf "OptimizeMethod\n";
       let env = {env with latestBoundId=Some tmethod.Id; functionVal = None}
       let env = BindTypeVarsToUnknown tps env
       let env = BindInternalValsToUnknown cenv vs env
  
positive.code:     let nms = PrettyTypes.PrettyTyparNames (fun _ -> true) (env.typarInfos |> List.map (fun (tp,_) -> tp.Name) ) tps
      (tps,nms) ||> List.iter2 (fun tp nm -> 
              if PrettyTypes.NeedsPrettyTyparName tp  then 
                  tp.Data.typar_id <- ident (nm,tp.Range));      
      List.fold (fun sofar arg -> BindTypeVar arg UnknownTypeValue sofar) env tps 
  
  let BindCcu (ccu:Tast.CcuThunk) mval env (g:TcGlobals) = 
  #if DEBUG
      if verboseOptimizationInfo then 
          dprintf "*** Reloading optimization data for assembly %s, info = \n%s\n" ccu.AssemblyName (showL (Layout.squashTo 192 (moduleInfoL g mval)));  
  #else
      ignore g
  #endif
  
      { env with globalModuleInfos=env.globalModuleInfos.Add(ccu.AssemblyName,mval)  }
  
  
  
negative.code: let TryGetInfoForEntity sv n = 
      match sv.ModuleOrNamespaceInfos.TryFind n with 
      | Some info -> Some (info.Force())
      | None -> None
  
  let rec TryGetInfoForPath sv (p:_[]) i = 
      if i >= p.Length then Some sv else 
  