getRemovalActions p ANALOG = do -- This pin is no longer analog
        bs <- gets boardState
        liftIO $ modifyMVar bs $ \bst -> do
                let aPins = analogReportingPins bst
                    acts  = [AnalogReport p False | p `S.member` aPins] -- no need for an analog report on this port anymore
                    bst'  = bst { analogReportingPins = p `S.delete` aPins }
                return (bst', acts)
getRemovalActions p ANALOG = do -- This pin is no longer analog
        bs <- gets boardState
        liftIO $ modifyMVar bs $ \bst -> do
                let aPins = analogReportingPins bst
                    acts  = [AnalogReport p False | p `S.member` aPins] -- no need for an analog report on this port anymore
                    bst'  = bst { analogReportingPins = p `S.delete` aPins }
                return (bst', acts)
getRemovalActions p ANALOG = do -- This pin is no longer analog
        bs <- gets boardState
        liftIO $ modifyMVar bs $ \bst -> do
                let aPins = analogReportingPins bst
                    acts  = [AnalogReport p False | p `S.member` aPins] -- no need for an analog report on this port anymore
                    bst'  = bst { analogReportingPins = p `S.delete` aPins }
                return (bst', acts)