parseEtd
  :: C.MonadThrow m
  => Pipe Event Event o u m (Maybe Etd)
parseEtd = do
  withDef $ ptag "etd" $ do
    dest <- text "destination"
    abbr <- text "abbreviation"
    ests <- many parseEstimate
    return $ Etd
      <$> dest
      <*> abbr
      <*> Just ests
parseEtd
  :: C.MonadThrow m
  => Pipe Event Event o u m (Maybe Etd)
parseEtd = do
  withDef $ ptag "etd" $ do
    dest <- text "destination"
    abbr <- text "abbreviation"
    ests <- many parseEstimate
    return $ Etd
      <$> dest
      <*> abbr
      <*> Just ests
parseEtd = do
  withDef $ ptag "etd" $ do
    dest <- text "destination"
    abbr <- text "abbreviation"
    ests <- many parseEstimate
    return $ Etd
      <$> dest
      <*> abbr
      <*> Just ests