anchor.diff:          let defnsDs = TcMutRecBindings_Phase2D_ExtractImplicitFieldAndMethodBindings cenv envMutRec tpenv (denv, generalizedTyparsForRecursiveBlock, defnsCs)
           
           // Phase2E - rewrite values to initialization graphs
  -        //
  -        // TODO: Note that this does initialization graphs in each type independently.
           let defnsEs = 
  -            defnsDs |> MutRecShapes.map 
  -                (fun (tyconOpt, fixupValueExprBinds, methodBinds) -> 
  -                    let fixedBinds = EliminateInitializationGraphs g true denv fixupValueExprBinds bindsm
  -                    tyconOpt, fixedBinds @ methodBinds)
  -                (fun (fixupValueExprBinds) -> 
  -                    EliminateInitializationGraphs g true denv fixupValueExprBinds bindsm)
  -                id
  +           EliminateInitializationGraphs 
  +             p23
  +             (fun morpher (tyconOpt,fixupValueExprBinds,methodBinds) -> (tyconOpt, morpher fixupValueExprBinds @ methodBinds))
  +             id
  +             (fun morpher oldBinds -> morpher oldBinds)
  +             g true denv defnsDs bindsm 
           
           defnsEs,envMutRec
   
  
positive.code:     else
          None
  
  
  //-------------------------------------------------------------------------
  // Post-transform initialization graphs using the 'lazy' interpretation.
  
negative.code:             error(Error(FSComp.SR.tcAttributesInvalidInPatterns(),m))
              //analyzeRecursiveDeclPat pat' 
  
          // This is for the construct 'let rec x = ... and do ... and y = ...' (DEPRECATED IN pars.mly )
          //
          // Also for 
          //    module rec M = 
          //        printfn "hello" // side effects in recursive modules
          //        let x = 1
          | SynPat.Const (SynConst.Unit, m) | SynPat.Wild m -> 
               let id = ident (cenv.niceNameGen.FreshCompilerGeneratedName("doval",m),m)
               analyzeRecursiveDeclPat tpenv (SynPat.Named (SynPat.Wild m, id, false, None, m))
               
          | SynPat.Named (SynPat.Wild _, id,_,vis2,_) -> 
              AnalyzeRecursiveStaticMemberOrValDecl (cenv,envinner,tpenv,declKind,newslotsOK,overridesOK,tcrefContainerInfo,vis1,id,vis2,declaredTypars,memberFlagsOpt,thisIdOpt,bindingAttribs,valSynInfo,ty,bindingRhs,mBinding,flex)
  