anchor.diff:          let tab = nenv.eUnqualifiedItems
           // add the type name for potential use as a constructor
           // The rules are
  -        // -	The unqualified lookup table in the environment can contain map names to a set of type names (the set of type names is a new kind of "item"). 
  -        // -	When the contents of a type definition is added to the environment, an entry is added in this table for all class and struct types.
  -        // -	When opening a module, types are added first to the environment, then values, then auto-opened sub-modules. 
  -        // -	When a value is added by an "open" previously available type names will become inaccessible by this table. 
  +        // - The unqualified lookup table in the environment can contain map names to a set of type names (the set of type names is a new kind of "item"). 
  +        // - When the contents of a type definition is added to the environment, an entry is added in this table for all class and struct types.
  +        // - When opening a module, types are added first to the environment, then values, then auto-opened sub-modules. 
  +        // - When a value is added by an "open" previously available type names will become inaccessible by this table. 
           let tab = 
  -
               // This may explore into an unreferenced assembly if the name
               // is a type abbreviation. If it does, assume the name does not
               // have a constructor.
  
positive.code:         eUnqualifiedItems.Add (vref.LogicalName, Item.Value vref)  
  
  /// Add an F# value to the table of available extension members, if necessary, as an FSharp-style extension member
  let AddValRefToExtensionMembers pri (eIndexedExtensionMembers: TyconRefMultiMap<_>)  (vref:ValRef) =
      if vref.IsMember && vref.IsExtensionMember then
          eIndexedExtensionMembers.Add (vref.MemberApparentParent, FSExtMem (vref,pri)) 
      else
  
negative.code:             if mayHaveConstruction then 
                  tab.LinearTryModifyThenLaterFlatten (tcref.DisplayName, (fun prev ->
                      match prev with 
                      | Some (Item.UnqualifiedType tcrefs) -> Item.UnqualifiedType (tcref::tcrefs)
                      | _ -> Item.UnqualifiedType [tcref]))
              else
                  tab
          if isILOrRequiredQualifiedAccess || ucrefs.Length = 0 then 
              tab 
          else 
              AddUnionCases2 bulkAddMode tab ucrefs
  
      let ePatItems = 
          if isILOrRequiredQualifiedAccess || ucrefs.Length = 0 then 
              nenv.ePatItems 
          else 
              AddUnionCases1 nenv.ePatItems ucrefs
  
      { nenv with 
          eFieldLabels = eFieldLabels
          eUnqualifiedItems = eUnqualifiedItems
          ePatItems = ePatItems
          eIndexedExtensionMembers = eIndexedExtensionMembers 
  