anchor.diff:      {
           heartbeatInterval : TimeSpan
           mutable heartbeatTime : TimeSpan
  +        mutable pingTime : TimeSpan
       }
   
   type ClientData =
       {
  -        mutable pingTime : TimeSpan
           peerConnected : Event<IUdpEndPoint>
           peerDisconnected : Event<IUdpEndPoint>
       }
  
positive.code: 
      let createClientData () =
          {
              pingTime = TimeSpan.Zero
              peerConnected = Event<IUdpEndPoint> ()
              peerDisconnected = Event<IUdpEndPoint> ()
          }
  
negative.code:     | Server of IUdpServer * ServerData
      | ServerWithEndPoint of IUdpServer * IUdpEndPoint * ConnectedClientData
  
  [<AbstractClass>]
  type Peer (udp : Udp) as this =
  
      let packetPool = PacketPool 1024
  