anchor.diff:  type StatusHolder = { mutable status: AvailableSonarStatus }
   
   module BeaconListeners =
  -    type SonarAvailability  = Aris.ProtocolMessages.Sonar.Availability
  -    type DefenderAvailability = Aris.ProtocolMessages.DefenderAvailability.Availability
  -    type CMBeacon = Aris.ProtocolMessages.CommandModule.CommandModuleBeacon
  +    type SonarAvailability  = Aris.Availability
  +    type DefenderAvailability = Defender.Availability
  +    type CMBeacon = Aris.CommandModuleBeacon
   
       open Beacons
   
  
positive.code: 
                  // Beacon management
  
                  member __.GetKey beacon = beacon.serialNumber
  
                  member __.IsChanged old newer = old.srcIpAddr <> newer.srcIpAddr
  
                  // Logging
  
                  member __.Added beacon =
  
                      defenderLog.DefenderDetected beacon.serialNumber beacon.srcIpAddr
  
                  member __.Expired beacon lastUpdate =
  
                      defenderLog.DefenderExpired beacon.serialNumber lastUpdate beacon.srcIpAddr
  
                  member __.Replaced old newer =
  
                      defenderLog.DefenderChangedAddress old.serialNumber old.srcIpAddr newer.srcIpAddr
          }
  
          let combinedNotifications = match callbacks with
  
negative.code:     Revision : uint32 option
  }
  with
      static member inline ValueOrNone<'T when 'T : equality> (v : 'T)
          = if (v = Unchecked.defaultof<'T>) then None else Some v
  
      static member internal From(pkt : Udp.UdpReceived) =
  
          let cms = Aris.CommandModuleBeacon.Parser.ParseFrom(pkt.udpResult.Buffer)
          {
              SrcIpAddr = pkt.udpResult.RemoteEndPoint.Address
              ArisCurrent =   CommandModuleBeacon.ValueOrNone cms.ArisCurrent
              ArisPower =     CommandModuleBeacon.ValueOrNone cms.ArisPower
              ArisVoltage =   CommandModuleBeacon.ValueOrNone cms.ArisVoltage
              CpuTemp =       CommandModuleBeacon.ValueOrNone cms.CpuTemp
              Revision =      CommandModuleBeacon.ValueOrNone cms.Revision
          }
  
  
  