anchor.diff:  
     Particle({this.mass: 1.0, this.velocity: 0.0, this.position: 0.0});
   
  -  void applyImpluse(double impluse) {
  -    velocity += impluse / mass;
  +  void applyImpulse(double impulse) {
  +    velocity += impulse / mass;
     }
   
     void update(double deltaT) {
  
positive.code:   }
  
    void update(double deltaT) {
      particle.applyImpluse(spring.force * deltaT);
      particle.update(deltaT);
      _applyInvariants();
    }
  
negative.code: 
    void update(double deltaT) {
      particle.update(deltaT);
      // Note that we apply the impulse from gravity after updating the particle's
      // position so that we overestimate the distance traveled by the particle.
      // That ensures that we actually hit the edge of the box and don't wind up
      // reversing course.
      particle.applyImpulse(kGravity * slope * deltaT);
      box.confine(particle);
    }
  }
  