anchor.diff:      override x.ToString() = 
           "parameter " + (match x.Name with None -> "<unnamed" | Some s -> s)
   
  -and FSharpAssemblySignature internal (cenv, topAttribs: TypeChecker.TopAttribs option, mtyp: ModuleOrNamespaceType) = 
  -
  -    new (g, thisCcu, tcImports, topAttribs, mtyp) = FSharpAssemblySignature(cenv(g, thisCcu, tcImports), topAttribs, mtyp)
  +and FSharpAssemblySignature private (cenv, topAttribs: TypeChecker.TopAttribs option, optViewedCcu: CcuThunk option, mtyp: ModuleOrNamespaceType) = 
  +
  +    // Assembly signature for a referenced/linked assembly
  +    new (cenv, ccu: CcuThunk) = FSharpAssemblySignature((if ccu.IsUnresolvedReference then cenv else (new cenv(cenv.g, ccu, cenv.tcImports))), None, Some ccu, ccu.Contents.ModuleOrNamespaceType)
  +    
  +    // Assembly signature for an assembly produced via type-checking.
  +    new (g, thisCcu, tcImports, topAttribs, mtyp) = FSharpAssemblySignature(cenv(g, thisCcu, tcImports), topAttribs, None, mtyp)
   
       member __.Entities = 
   
  
positive.code:     member __.FileName = ccu.FileName
      member __.SimpleName = ccu.AssemblyName 
      member __.IsProviderGenerated = ccu.IsProviderGenerated
      member __.Contents = FSharpAssemblySignature((if ccu.IsUnresolvedReference then cenv else (new cenv(cenv.g, ccu, cenv.tcImports))), None, ccu.Contents.ModuleOrNamespaceType)
                   
      override x.ToString() = x.QualifiedName
  
  
negative.code:         System.Collections.ObjectModel.ReadOnlyCollection<_>(Seq.toArray arr) :> IList<_>
      let makeXmlDoc (XmlDoc x) = makeReadOnlyCollection (x)
      
      let rescopeEntity optViewedCcu (entity : Entity) = 
          match optViewedCcu with 
          | None -> mkLocalEntityRef entity
          | Some viewedCcu -> 
          match tryRescopeEntity viewedCcu entity with
          | None -> mkLocalEntityRef entity
          | Some eref -> eref
  