parseDepart
  :: C.MonadThrow m
  => Pipe Event Event o u m (Maybe Depart)
parseDepart = do
  withDef $ ptag "root" $ do
    uri  <- text "uri"
    date <- text "date"
    time <- text "time"
    stns <- many parseStation
    msg  <- text "message"
    return $ Depart
      <$> uri
      <*> date
      <*> time
      <*> Just stns
      <*> msg
parseDepart
  :: C.MonadThrow m
  => Pipe Event Event o u m (Maybe Depart)
parseDepart = do
  withDef $ ptag "root" $ do
    uri  <- text "uri"
    date <- text "date"
    time <- text "time"
    stns <- many parseStation
    msg  <- text "message"
    return $ Depart
      <$> uri
      <*> date
      <*> time
      <*> Just stns
      <*> msg
parseDepart = do
  withDef $ ptag "root" $ do
    uri  <- text "uri"
    date <- text "date"
    time <- text "time"
    stns <- many parseStation
    msg  <- text "message"
    return $ Depart
      <$> uri
      <*> date
      <*> time
      <*> Just stns
      <*> msg