parseEstimate
  :: C.MonadThrow m
  => Pipe Event Event o u m (Maybe Estimate)
parseEstimate = do
  withDef $ ptag "estimate" $ do
    minu <- text "minutes"
    plat <- text "platform"
    dir  <- text "direction"
    len  <- text "length"
    col  <- text "color"
    hex  <- text "hexcolor"
    bike <- text "bikeflag"
    return $ Estimate
      <$> minu
      <*> plat
      <*> dir
      <*> len
      <*> col
      <*> hex
      <*> bike
parseEstimate
  :: C.MonadThrow m
  => Pipe Event Event o u m (Maybe Estimate)
parseEstimate = do
  withDef $ ptag "estimate" $ do
    minu <- text "minutes"
    plat <- text "platform"
    dir  <- text "direction"
    len  <- text "length"
    col  <- text "color"
    hex  <- text "hexcolor"
    bike <- text "bikeflag"
    return $ Estimate
      <$> minu
      <*> plat
      <*> dir
      <*> len
      <*> col
      <*> hex
      <*> bike
parseEstimate = do
  withDef $ ptag "estimate" $ do
    minu <- text "minutes"
    plat <- text "platform"
    dir  <- text "direction"
    len  <- text "length"
    col  <- text "color"
    hex  <- text "hexcolor"
    bike <- text "bikeflag"
    return $ Estimate
      <$> minu
      <*> plat
      <*> dir
      <*> len
      <*> col
      <*> hex
      <*> bike