anchor.diff:              ()
           | JointAngle jointAngle ->
               match (physicsEngine.Bodies.TryGetValue jointAngle.TargetId, physicsEngine.Bodies.TryGetValue jointAngle.TargetId2) with
  -            | ((true, body), (true, body2)) ->
  +            | ((true, (_, body)), (true, (_, body2))) ->
                   let joint = JointFactory.CreateAngleJoint (physicsEngine.PhysicsContext, body, body2)
                   joint.TargetAngle <- jointAngle.TargetAngle
                   joint.Softness <- jointAngle.Softness
               | (_, _) -> Log.debug "Could not set create a joint for one or more non-existent bodies."
           | JointDistance jointDistance ->
               match (physicsEngine.Bodies.TryGetValue jointDistance.TargetId, physicsEngine.Bodies.TryGetValue jointDistance.TargetId2) with
  -            | ((true, body), (true, body2)) ->
  +            | ((true, (_, body)), (true, (_, body2))) ->
                   let joint = JointFactory.CreateDistanceJoint (physicsEngine.PhysicsContext, body, body2, FarseerPhysicsEngine.toPhysicsV2 jointDistance.Anchor, FarseerPhysicsEngine.toPhysicsV2 jointDistance.Anchor2)
                   joint.Length <- FarseerPhysicsEngine.toPhysics jointDistance.Length
                   joint.Frequency <- jointDistance.Frequency
  
positive.code: 
      static member private setBodyEnabled (setBodyEnabledMessage : SetBodyEnabledMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue setBodyEnabledMessage.PhysicsId with
          | (true, body) -> body.Enabled <- setBodyEnabledMessage.Enabled
          | (false, _) -> Log.debug ("Could not set enabled of non-existent body with PhysicsId = " + scstring setBodyEnabledMessage.PhysicsId + "'.")
  
      static member private setBodyPosition (setBodyPositionMessage : SetBodyPositionMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue setBodyPositionMessage.PhysicsId with
          | (true, body) -> body.Position <- FarseerPhysicsEngine.toPhysicsV2 setBodyPositionMessage.Position
          | (false, _) -> Log.debug ("Could not set position of non-existent body with PhysicsId = " + scstring setBodyPositionMessage.PhysicsId + "'.")
  
      static member private setBodyRotation (setBodyRotationMessage : SetBodyRotationMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue setBodyRotationMessage.PhysicsId with
          | (true, body) -> body.Rotation <- setBodyRotationMessage.Rotation
          | (false, _) -> Log.debug ("Could not set rotation of non-existent body with PhysicsId = " + scstring setBodyRotationMessage.PhysicsId + "'.")
  
      static member private setBodyAngularVelocity (setBodyAngularVelocityMessage : SetBodyAngularVelocityMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue setBodyAngularVelocityMessage.PhysicsId with
          | (true, body) -> body.AngularVelocity <- setBodyAngularVelocityMessage.AngularVelocity
          | (false, _) -> Log.debug ("Could not set angular velocity of non-existent body with PhysicsId = " + scstring setBodyAngularVelocityMessage.PhysicsId + "'.")
  
      static member private applyBodyAngularImpulse (applyBodyAngularImpulseMessage : ApplyBodyAngularImpulseMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue applyBodyAngularImpulseMessage.PhysicsId with
          | (true, body) -> body.ApplyAngularImpulse (applyBodyAngularImpulseMessage.AngularImpulse)
          | (false, _) -> Log.debug ("Could not apply angular impulse to non-existent body with PhysicsId = " + scstring applyBodyAngularImpulseMessage.PhysicsId + "'.")
  
      static member private setBodyLinearVelocity (setBodyLinearVelocityMessage : SetBodyLinearVelocityMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue setBodyLinearVelocityMessage.PhysicsId with
          | (true, body) -> body.LinearVelocity <- FarseerPhysicsEngine.toPhysicsV2 setBodyLinearVelocityMessage.LinearVelocity
          | (false, _) -> Log.debug ("Could not set linear velocity of non-existent body with PhysicsId = " + scstring setBodyLinearVelocityMessage.PhysicsId + "'.")
  
      static member private applyBodyLinearImpulse (applyBodyLinearImpulseMessage : ApplyBodyLinearImpulseMessage) physicsEngine =
          match physicsEngine.Bodies.TryGetValue applyBodyLinearImpulseMessage.PhysicsId with
          | (true, body) -> body.ApplyLinearImpulse (FarseerPhysicsEngine.toPhysicsV2 applyBodyLinearImpulseMessage.LinearImpulse)
          | (false, _) -> Log.debug ("Could not apply linear impulse to non-existent body with PhysicsId = " + scstring applyBodyLinearImpulseMessage.PhysicsId + "'.")
  
      static member private applyBodyForce applyBodyForceMessage physicsEngine =
          match physicsEngine.Bodies.TryGetValue applyBodyForceMessage.PhysicsId with
          | (true, body) -> body.ApplyForce (FarseerPhysicsEngine.toPhysicsV2 applyBodyForceMessage.Force)
          | (false, _) -> Log.debug ("Could not apply force to non-existent body with PhysicsId = " + scstring applyBodyForceMessage.PhysicsId + "'.")
  
      static member private handlePhysicsMessage physicsEngine physicsMessage =
  
negative.code:                           Position = FarseerPhysicsEngine.toPixelV2 body.Position
                            Rotation = body.Rotation }
                  physicsEngine.IntegrationMessages.Add bodyTransformMessage
                  
      static member applyGravity physicsStepAmount physicsEngine =
          for (gravityScale, body) in physicsEngine.Bodies.Values do
              let linearVelocity = body.LinearVelocity + physicsEngine.PhysicsContext.Gravity * Common.Vector2 (0.0f, gravityScale) * physicsStepAmount
              body.LinearVelocity <- linearVelocity
  
      /// Make a physics engine.
      static member make gravity =
  