anchor.diff:          match udp with
           | Udp.Client state ->
   
  -            state.receiveStreamState.receiveStream.SetLength 0L
  +            state.receiveStreamState.Reset ()
   
               let client = state.udpClient
               let packetPool = state.packetPool
  
positive.code:     let create udpServer connectionTimeout =
  
          let packetPool = PacketPool 1024
          let sendStreamState = SendStreamState.create ()
  
          {
              packetPool = packetPool
  
negative.code: open System.Collections.Generic
  open System.IO.Compression
  
  [<Sealed>]
  type SendStreamState private (bs : ByteStream) =
  
      member __.Write (msg : 'T, f) =
          match Network.lookup.TryGetValue typeof<'T> with
          | true, id ->
              let startIndex = int bs.Position
  
              let pickler = Network.FindTypeById id
              bs.Writer.WriteByte (byte id)
              pickler.serialize (msg :> obj) bs.Writer
  
              let size = int bs.Position - startIndex
  
              f bs.Raw startIndex (int size)
  
          | _ -> ()
  
      member __.Reset () =
          bs.SetLength 0L
  
      static member Create () =
          SendStreamState (new ByteStream (Array.zeroCreate <| 1024 * 1024))
  
  [<Sealed>]
  type ReceiveStreamState private (bs : ByteStream) =
  
      let read (subscriptions : Event<obj> []) =
          let reader = bs.Reader
          let typeId = reader.ReadByte () |> int
  
          if subscriptions.Length > typeId && typeId >= 0 then
  