anchor.diff:                ParticleBuffer = Array.zeroCreate particleMax
                 ParticleSeed = particleSeed
                 Constraint = constrain
  -              Initializer = initializer
  -              InPlaceBehavior = inPlaceBehavior
  -              CompositionalBehaviors = behaviors
  +              ParticleInitializer = particleInitializer
  +              ParticleBehavior = particleBehavior
  +              ParticleBehaviors = particleBehaviors
  +              EmitterBehavior = emitterBehavior
  +              EmitterBehaviors = emitterBehaviors
                 ToParticlesDescriptor = toParticlesDescriptor }
   
           interface Emitter with
  
positive.code:             (emitter :> Emitter).Resize particleMax :?> BasicEmitter
  
          /// Make a basic particle emitter.
          let make time body elevation absolute blend image lifeTimeOpt particleLifeTimeOpt particleRate particleMax particleSeed constrain initializer inPlaceBehavior behaviors =
              BasicEmitter.make time body elevation absolute blend image lifeTimeOpt particleLifeTimeOpt particleRate particleMax particleSeed constrain initializer inPlaceBehavior behaviors toParticlesDescriptor
  
          /// Make an empty basic particle emitter.
          let makeEmpty time lifeTimeOpt particleLifeTimeOpt particleRate particleMax =
              let image = asset Assets.Default.PackageName Assets.Default.ImageName
              let particleSeed = Unchecked.defaultof<BasicParticle>
              let initializer = fun _ _ (emitter : BasicEmitter) -> emitter.ParticleSeed
              let inPlaceBehavior = fun _ _ _ -> Output.empty
              let behaviors = Behaviors.empty
              make time Body.defaultBody 0.0f false Transparent image lifeTimeOpt particleLifeTimeOpt particleRate particleMax particleSeed Constraint.empty initializer inPlaceBehavior behaviors
  
          /// Make the default basic particle emitter.
          let makeDefault time lifeTimeOpt particleLifeTimeOpt particleRate particleMax =
  
negative.code:             emitter.ParticleIndex <- particleIndex
              let particle = &emitter.ParticleBuffer.[particleIndex]
              particle.Life <- { LifeTimeOpt = particle.Life.LifeTimeOpt; StartTime = time }
              particle <- emitter.ParticleInitializer time constrain emitter
  
          /// Determine emitter's liveness.
          static member getLiveness time emitter =
  