pub fn start_event_listener<AddedType: ReadAll + AppendAll + Send + Sync + 'static, RemovedType: ReadAll + AppendAll + Send + Sync + 'static, AddedEvent: ReadAll + AppendAll + SignalArgs + GetVal<AddedType>, RemovedEvent: ReadAll + AppendAll + SignalArgs + GetVal<RemovedType>>(
    interface: String,
    active_listener: Arc<AtomicBool>,
    sender: Arc<Sender<Events<AddedType, RemovedType>>>
) -> Result<(), Error>