-- Using !! here is okay as signal buffer passed is supposed to be really short (<= 3 signals).
getRecentSignal :: SignalList -> Maybe Signal
getRecentSignal signals@(CSignalList (_:_)) = Just $ sigList !! 0
  where sigList = signalList signals
getRecentSignal :: SignalList -> Maybe Signal
getRecentSignal signals@(CSignalList (_:_)) = Just $ sigList !! 0
  where sigList = signalList signals
getRecentSignal signals@(CSignalList (_:_)) = Just $ sigList !! 0
  where sigList = signalList signals