retweetOrText v = unEsc <$> ((retweet v) <|> (unpack <$> v .: "text")) where
  retweet v = do
    rt <- v .: "retweeted_status"
    user <- rt .: "user" >>= extractScreenName
    text <- rt .: "text"
    return $ "RT @" ++ user ++ ": " ++ text
retweetOrText v = unEsc <$> ((retweet v) <|> (unpack <$> v .: "text")) where
  retweet v = do
    rt <- v .: "retweeted_status"
    user <- rt .: "user" >>= extractScreenName
    text <- rt .: "text"
    return $ "RT @" ++ user ++ ": " ++ text
retweetOrText v = unEsc <$> ((retweet v) <|> (unpack <$> v .: "text")) where
  retweet v = do
    rt <- v .: "retweeted_status"
    user <- rt .: "user" >>= extractScreenName
    text <- rt .: "text"
    return $ "RT @" ++ user ++ ": " ++ text