anchor.diff:              }
   
   
  -        let dog = DogGroup d1 :> IDog
  +        let dog = DogRoot (Mod.init <| (DogGroup d1 :> IDog))
   
   
           let chunkVisualization t2 ((trafo,vertics,colors,leak) : PointChunk) : ISg =
  
positive.code:                 yield! c?Leafs()
              }
  
          member x.Leafs(t : DogGroup) : aset<RenderData> =
              aset {
                  for e in t.Children do
                      yield! e?Leafs()
              }
  
          member x.Trafos(r : Root<IDog>) = 
              r.Child?Trafo <- [Mod.init Trafo3d.Identity]
  
negative.code:         member x.Trafos = localTrafos
          member x.Child = c
  
      type DogRoot(c : IMod<IDog>) =
          interface IDog
          member x.Child = c
  
      type RenderData = Data * IMod<Trafo3d>
  
      [<Semantic>]
      type DogSemantics() = 
  
          let getMyTrafo d =
              Mod.mapN (fun (xs:seq<Trafo3d>) -> Seq.fold (*) Trafo3d.Identity xs) ( d?Trafos )
  
          member x.Leafs(data : DataDog) : aset<RenderData> =
              aset {
                  let! d = data.Data
  //                let trafo : IMod<Trafo3d> = Mod.constant Trafo3d.Identity // data?Trafo()
  //                let trafo : IMod<Trafo3d> = data?Trafo()
  //                let trafo : IMod<Trafo3d> = getMyTrafo data
                  let trafo : IMod<Trafo3d> = data?Trafo2
                  yield d,trafo
              }
  
  