anchor.diff:         let extraBindings = 
             [ for extraBinding in EventDeclarationNormalization.GenerateExtraBindings cenv (bindingAttribs,binding) do
                  yield (NormalizedRecBindingDefn(containerInfo,newslotsOK,declKind,extraBinding)) ]
  -       let res,(tpenv,recBindIdx) = List.mapFold (AnalyzeAndMakeRecursiveValue overridesOK true cenv env) (tpenv,recBindIdx) extraBindings
  +       let res,(tpenv,recBindIdx) = List.mapFold (AnalyzeAndMakeAndPublishRecursiveValue overridesOK true cenv env) (tpenv,recBindIdx) extraBindings
          let extraBindings, extraValues = List.unzip res
          List.concat extraBindings, List.concat extraValues, tpenv,recBindIdx
       
  
positive.code: 
                    match parent with
                    | ParentNone -> CheckLetInNamespace binds m
                    | Parent parentModule -> 
                        let containerInfo = ModuleOrNamespaceContainerInfo(parentModule)
                        let recBinds = [ for bind in binds -> RecDefnBindingInfo(containerInfo,NoNewSlots,ModuleOrMemberBinding,bind) ]
                        if letrec then yield MutRecShape.Lets recBinds
                        else yield! List.map (List.singleton >> MutRecShape.Lets) recBinds
  
                | SynModuleDecl.Attributes _ -> failwith "assembly attributes not allowed in mutrec sections yet"
                    //let attrs = TcAttributesWithPossibleTargets cenv env AttributeTargets.Top synAttrs
  
negative.code:                          if isAugmentationTyconDefnRepr repr then None 
                           else Some (TcTyconDefnCore_Phase0_BuildInitialTycon cenv envInitial innerParent tyconDefCore)
                       c, tyconOpt) 
                   (fun innerParent synBinds ->               
                      let containerInfo = ModuleOrNamespaceContainerInfo(match innerParent with Parent p -> p | _ -> failwith "unreachable")
                      [ for synBind in synBinds -> RecDefnBindingInfo(containerInfo,NoNewSlots,ModuleOrMemberBinding,synBind) ])
  
          // Compute the active environments at each nested module.
          //
          // Add them to the environment, though this does not add the fields and 
          // constructors (because we haven't established them yet). 
          // We re-add them to the original environment later on. 
          // We don't report them to the Language Service yet as we don't know if 
          // they are well-formed (e.g. free of abbreviation cycles - see bug 952) 
          let envMutRec, withEnvs =  
              (envInitial, withTycons) ||> MutRecShapes.computeEnvs 
                (fun envAbove (MutRecDefnsPass2DataForModule (mtypeAcc, mspec)) ->  MakeInnerEnvWithAcc envAbove mspec.Id mtypeAcc mspec.ModuleOrNamespaceType.ModuleOrNamespaceKind)
                (fun envAbove decls -> 
  
                  let tycons =  decls |> List.choose (function MutRecShape.Tycon (_, tyconOpt) -> tyconOpt | _ -> None)
                  let mspecs = decls |> List.choose (function MutRecShape.Module (MutRecDefnsPass2DataForModule (_, mspec),_) -> Some mspec | _ -> None)
  
  