anchor.diff:  
       member __.Beacons = subject :> IObservable<'B>
   
  +module BeaconObserver =
  +
       [<CompiledName("CreateExplorerBeaconObserver")>]
  -    static member mkExplorerBeaconObserver () =
  +    let mkExplorerBeaconObserver () =
           new BeaconObserver<ArisBeacon>(
  -            BeaconObserver.mkExplorerBeaconObserver())
  +            BeaconObserverDetails.mkExplorerBeaconObserver())
   
       [<CompiledName("CreateCommandModuleBeaconObserver")>]
  -    static member mkCommandModuleBeaconObserver () =
  +    let mkCommandModuleBeaconObserver () =
           new BeaconObserver<ArisCommandModuleBeacon>(
  -            BeaconObserver.mkCommandModuleBeaconObserver())
  +            BeaconObserverDetails.mkCommandModuleBeaconObserver())
  
positive.code: open System.Net
  open System.Reactive.Subjects
  
  module internal BeaconObserver =
  
      let private mkBeaconObserver<'B> (port : int)
                                       (mapPktToBeacon : UdpReceived -> 'B option)
  
negative.code:             NetworkConstants.ArisAvailabilityListenerPortV2
              BeaconListener.toArisCommandModuleBeacon
  
  type BeaconObserver<'B> internal (disposer : IDisposable, subject : ISubject<'B>) =
  
      let mutable disposed = false
  
  