getCommutes :: Destination -> IO [Commute]
getCommutes destination = do
  maybePredictions <- fmap decode $ getPredictionsJSON destination
  maybeStops <- fmap decode getStopsJSON
  tz <- getCurrentTimeZone
  let maybeCommute = do
        predictions <- maybePredictions
        stops <- maybeStops
        topLevelToCommute tz destination stops predictions
  pure $ maybeToList maybeCommute
getCommutes :: Destination -> IO [Commute]
getCommutes destination = do
  maybePredictions <- fmap decode $ getPredictionsJSON destination
  maybeStops <- fmap decode getStopsJSON
  tz <- getCurrentTimeZone
  let maybeCommute = do
        predictions <- maybePredictions
        stops <- maybeStops
        topLevelToCommute tz destination stops predictions
  pure $ maybeToList maybeCommute
getCommutes destination = do
  maybePredictions <- fmap decode $ getPredictionsJSON destination
  maybeStops <- fmap decode getStopsJSON
  tz <- getCurrentTimeZone
  let maybeCommute = do
        predictions <- maybePredictions
        stops <- maybeStops
        topLevelToCommute tz destination stops predictions
  pure $ maybeToList maybeCommute