popPlaces :: Marking value -> [PlaceNo] -> (Marking value, [value])
    popPlaces marking placeNos = mapAccumL adjust marking placeNos
        where adjust marking placeNo = (DM.insert placeNo values marking, value)
                where value:values = marking DM.! placeNo
popPlaces :: Marking value -> [PlaceNo] -> (Marking value, [value])
popPlaces marking placeNos = mapAccumL adjust marking placeNos
        where adjust marking placeNo = (DM.insert placeNo values marking, value)
                where value:values = marking DM.! placeNo
popPlaces marking placeNos = mapAccumL adjust marking placeNos
        where adjust marking placeNo = (DM.insert placeNo values marking, value)
                where value:values = marking DM.! placeNo