-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | API for Hacker News -- -- API for news.ycombinator.com @package hackernews @version 1.1.2.0 -- | Haskell port of https://github.com/HackerNews/API module Web.HackerNews.Types -- | The item and profile changes are at -- https://hacker-news.firebaseio.com/v0/updates data Updates Updates :: [ItemId] -> [UserName] -> Updates -- | Updated Items [items] :: Updates -> [ItemId] -- | Updated UserNames [profiles] :: Updates -> [UserName] -- | The current largest item id is at -- https://hacker-news.firebaseio.com/v0/maxitem. You can walk -- backward from here to discover all items. newtype MaxItem MaxItem :: ItemId -> MaxItem -- | https://hacker-news.firebaseio.com/v0/topstories newtype TopStories TopStories :: [ItemId] -> TopStories -- | https://hacker-news.firebaseio.com/v0/newstories newtype NewStories NewStories :: [ItemId] -> NewStories -- | https://hacker-news.firebaseio.com/v0/beststories newtype BestStories BestStories :: [ItemId] -> BestStories -- | https://hacker-news.firebaseio.com/v0/askstories newtype AskStories AskStories :: [ItemId] -> AskStories -- | https://hacker-news.firebaseio.com/v0/showstories newtype ShowStories ShowStories :: [ItemId] -> ShowStories -- | https://hacker-news.firebaseio.com/v0/jobstories newtype JobStories JobStories :: [ItemId] -> JobStories -- | Users are identified by case-sensitive ids, and live under -- https://hacker-news.firebaseio.com/v0/user/. Only users that -- have public activity (comments or story submissions) on the site are -- available through the API. data User User :: UserId -> Maybe Delay -> Created -> Karma -> Maybe About -> Maybe Submitted -> User -- | The user's unique username. Case-sensitive. Required. [userId] :: User -> UserId -- | Delay in minutes between a comment's creation and its visibility to -- other users. [userDelay] :: User -> Maybe Delay -- | Creation date of the user, in Unix Time. [userCreated] :: User -> Created -- | The user's karma [userKarma] :: User -> Karma -- | The user's optional self-description. HTML. [userAbout] :: User -> Maybe About -- | List of the user's stories, polls and comments. [userSubmitted] :: User -> Maybe Submitted -- | The user's karma. newtype Karma Karma :: Int -> Karma -- | The user's unique username. Case-sensitive. Required. newtype UserId UserId :: Text -> UserId -- | Delay in minutes between a comment's creation and its visibility to -- other users. newtype Delay Delay :: Int -> Delay -- | Creation date of the user, in Unix Time. newtype Created Created :: Int -> Created -- | The user's optional self-description. HTML. newtype About About :: Text -> About -- | List of the user's stories, polls and comments. newtype Submitted Submitted :: [ItemId] -> Submitted -- | The item's unique id. newtype ItemId ItemId :: Int -> ItemId -- | true if the item is deleted. newtype Deleted Deleted :: Bool -> Deleted -- | The type of item. One of "job", "story", "comment", "poll", or -- "pollopt" data ItemType Job :: ItemType Story :: ItemType Comment :: ItemType Poll :: ItemType PollOpt :: ItemType -- | The username of the item's author. newtype UserName UserName :: Text -> UserName -- | The comment, story or poll text. HTML. newtype ItemText ItemText :: Text -> ItemText -- | true if the item is dead. newtype Dead Dead :: Bool -> Dead -- | The item's parent. For comments, either another comment or the -- relevant story. For pollopts, the relevant poll. newtype Parent Parent :: ItemId -> Parent -- | Creation date of the item, in Unix Time. newtype Time Time :: Integer -> Time -- | The ids of the item's comments, in ranked display order. newtype Kids Kids :: [ItemId] -> Kids -- | The URL of the story. newtype URL URL :: Text -> URL -- | The story's score, or the votes for a pollopt. newtype Score Score :: Int -> Score -- | The title of the story, poll or job. newtype Title Title :: Text -> Title -- | A list of related pollopts, in display order. newtype Parts Parts :: [ItemId] -> Parts -- | In the case of stories or polls, the total comment count. newtype Descendants Descendants :: Int -> Descendants -- | Stories, comments, jobs, Ask HNs and even polls are just items. -- They're identified by their ids, which are unique integers, and live -- under https://hacker-news.firebaseio.com/v0/item/. data Item Item :: Maybe ItemId -> Maybe Deleted -> ItemType -> Maybe UserName -> Maybe Time -> Maybe ItemText -> Maybe Dead -> Maybe Parent -> Maybe Kids -> Maybe URL -> Maybe Score -> Maybe Title -> Maybe Parts -> Maybe Descendants -> Item [itemId] :: Item -> Maybe ItemId [itemDeleted] :: Item -> Maybe Deleted [itemType] :: Item -> ItemType [itemBy] :: Item -> Maybe UserName [itemTime] :: Item -> Maybe Time [itemText] :: Item -> Maybe ItemText [itemDead] :: Item -> Maybe Dead [itemParent] :: Item -> Maybe Parent [itemKids] :: Item -> Maybe Kids [itemURL] :: Item -> Maybe URL [itemScore] :: Item -> Maybe Score [itemTitle] :: Item -> Maybe Title [itemParts] :: Item -> Maybe Parts [itemDescendants] :: Item -> Maybe Descendants -- | Error handling for HackerNewsAPI data HackerNewsError NotFound :: HackerNewsError FailureResponseError :: Int -> Text -> Text -> HackerNewsError HNConnectionError :: Text -> HackerNewsError DecodeFailureError :: Text -> Text -> HackerNewsError InvalidContentTypeHeaderError :: Text -> Text -> HackerNewsError UnsupportedContentTypeError :: Text -> HackerNewsError instance GHC.Classes.Eq Web.HackerNews.Types.HackerNewsError instance GHC.Show.Show Web.HackerNews.Types.HackerNewsError instance GHC.Generics.Generic Web.HackerNews.Types.Item instance GHC.Classes.Eq Web.HackerNews.Types.Item instance GHC.Show.Show Web.HackerNews.Types.Item instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Descendants instance GHC.Generics.Generic Web.HackerNews.Types.Descendants instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Descendants instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Descendants instance GHC.Classes.Eq Web.HackerNews.Types.Descendants instance GHC.Show.Show Web.HackerNews.Types.Descendants instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Parts instance GHC.Generics.Generic Web.HackerNews.Types.Parts instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Parts instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Parts instance GHC.Classes.Eq Web.HackerNews.Types.Parts instance GHC.Show.Show Web.HackerNews.Types.Parts instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Title instance GHC.Generics.Generic Web.HackerNews.Types.Title instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Title instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Title instance GHC.Classes.Eq Web.HackerNews.Types.Title instance GHC.Show.Show Web.HackerNews.Types.Title instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Score instance GHC.Generics.Generic Web.HackerNews.Types.Score instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Score instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Score instance GHC.Classes.Eq Web.HackerNews.Types.Score instance GHC.Show.Show Web.HackerNews.Types.Score instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.URL instance GHC.Generics.Generic Web.HackerNews.Types.URL instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.URL instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.URL instance GHC.Classes.Eq Web.HackerNews.Types.URL instance GHC.Show.Show Web.HackerNews.Types.URL instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Kids instance GHC.Generics.Generic Web.HackerNews.Types.Kids instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Kids instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Kids instance GHC.Classes.Eq Web.HackerNews.Types.Kids instance GHC.Show.Show Web.HackerNews.Types.Kids instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Time instance GHC.Generics.Generic Web.HackerNews.Types.Time instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Time instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Time instance GHC.Classes.Eq Web.HackerNews.Types.Time instance GHC.Show.Show Web.HackerNews.Types.Time instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Parent instance GHC.Generics.Generic Web.HackerNews.Types.Parent instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Parent instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Parent instance GHC.Classes.Eq Web.HackerNews.Types.Parent instance GHC.Show.Show Web.HackerNews.Types.Parent instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Dead instance GHC.Generics.Generic Web.HackerNews.Types.Dead instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Dead instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Dead instance GHC.Classes.Eq Web.HackerNews.Types.Dead instance GHC.Show.Show Web.HackerNews.Types.Dead instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ItemText instance GHC.Generics.Generic Web.HackerNews.Types.ItemText instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ItemText instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ItemText instance GHC.Classes.Eq Web.HackerNews.Types.ItemText instance GHC.Show.Show Web.HackerNews.Types.ItemText instance GHC.Generics.Generic Web.HackerNews.Types.Updates instance GHC.Classes.Eq Web.HackerNews.Types.Updates instance GHC.Show.Show Web.HackerNews.Types.Updates instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.UserName instance GHC.Generics.Generic Web.HackerNews.Types.UserName instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.UserName instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.UserName instance GHC.Classes.Eq Web.HackerNews.Types.UserName instance GHC.Show.Show Web.HackerNews.Types.UserName instance GHC.Enum.Enum Web.HackerNews.Types.ItemType instance GHC.Generics.Generic Web.HackerNews.Types.ItemType instance GHC.Classes.Eq Web.HackerNews.Types.ItemType instance GHC.Show.Show Web.HackerNews.Types.ItemType instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Deleted instance GHC.Generics.Generic Web.HackerNews.Types.Deleted instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Deleted instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Deleted instance GHC.Classes.Eq Web.HackerNews.Types.Deleted instance GHC.Show.Show Web.HackerNews.Types.Deleted instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.MaxItem instance GHC.Generics.Generic Web.HackerNews.Types.MaxItem instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.MaxItem instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.MaxItem instance GHC.Classes.Eq Web.HackerNews.Types.MaxItem instance GHC.Show.Show Web.HackerNews.Types.MaxItem instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.TopStories instance GHC.Generics.Generic Web.HackerNews.Types.TopStories instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.TopStories instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.TopStories instance GHC.Classes.Eq Web.HackerNews.Types.TopStories instance GHC.Show.Show Web.HackerNews.Types.TopStories instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.NewStories instance GHC.Generics.Generic Web.HackerNews.Types.NewStories instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.NewStories instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.NewStories instance GHC.Classes.Eq Web.HackerNews.Types.NewStories instance GHC.Show.Show Web.HackerNews.Types.NewStories instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.BestStories instance GHC.Generics.Generic Web.HackerNews.Types.BestStories instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.BestStories instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.BestStories instance GHC.Classes.Eq Web.HackerNews.Types.BestStories instance GHC.Show.Show Web.HackerNews.Types.BestStories instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.AskStories instance GHC.Generics.Generic Web.HackerNews.Types.AskStories instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.AskStories instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.AskStories instance GHC.Classes.Eq Web.HackerNews.Types.AskStories instance GHC.Show.Show Web.HackerNews.Types.AskStories instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ShowStories instance GHC.Generics.Generic Web.HackerNews.Types.ShowStories instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ShowStories instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ShowStories instance GHC.Classes.Eq Web.HackerNews.Types.ShowStories instance GHC.Show.Show Web.HackerNews.Types.ShowStories instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.JobStories instance GHC.Generics.Generic Web.HackerNews.Types.JobStories instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.JobStories instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.JobStories instance GHC.Classes.Eq Web.HackerNews.Types.JobStories instance GHC.Show.Show Web.HackerNews.Types.JobStories instance GHC.Generics.Generic Web.HackerNews.Types.User instance GHC.Classes.Eq Web.HackerNews.Types.User instance GHC.Show.Show Web.HackerNews.Types.User instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Submitted instance GHC.Generics.Generic Web.HackerNews.Types.Submitted instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Submitted instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Submitted instance GHC.Classes.Eq Web.HackerNews.Types.Submitted instance GHC.Show.Show Web.HackerNews.Types.Submitted instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ItemId instance GHC.Generics.Generic Web.HackerNews.Types.ItemId instance Web.Internal.HttpApiData.ToHttpApiData Web.HackerNews.Types.ItemId instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ItemId instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ItemId instance GHC.Classes.Eq Web.HackerNews.Types.ItemId instance GHC.Show.Show Web.HackerNews.Types.ItemId instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.About instance GHC.Generics.Generic Web.HackerNews.Types.About instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.About instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.About instance GHC.Classes.Eq Web.HackerNews.Types.About instance GHC.Show.Show Web.HackerNews.Types.About instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Created instance GHC.Generics.Generic Web.HackerNews.Types.Created instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Created instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Created instance GHC.Classes.Eq Web.HackerNews.Types.Created instance GHC.Show.Show Web.HackerNews.Types.Created instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Delay instance GHC.Generics.Generic Web.HackerNews.Types.Delay instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Delay instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Delay instance GHC.Classes.Eq Web.HackerNews.Types.Delay instance GHC.Show.Show Web.HackerNews.Types.Delay instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.UserId instance GHC.Generics.Generic Web.HackerNews.Types.UserId instance Web.Internal.HttpApiData.ToHttpApiData Web.HackerNews.Types.UserId instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.UserId instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.UserId instance GHC.Classes.Eq Web.HackerNews.Types.UserId instance GHC.Show.Show Web.HackerNews.Types.UserId instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Karma instance GHC.Generics.Generic Web.HackerNews.Types.Karma instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Karma instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Karma instance GHC.Classes.Eq Web.HackerNews.Types.Karma instance GHC.Show.Show Web.HackerNews.Types.Karma instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Updates instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Updates instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Updates instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.User instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.User instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.User instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ItemType instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ItemType instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ItemType instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Item instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Item instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Item -- | Haskell port of https://github.com/HackerNews/API module Web.HackerNews -- | HackerNews API type HackerNewsAPI = ("item" :> (HackerCapture ItemId :> Get '[JSON] Item)) :<|> (("user" :> (HackerCapture UserId :> Get '[JSON] User)) :<|> (("maxitem.json" :> Get '[JSON] MaxItem) :<|> (("topstories.json" :> Get '[JSON] TopStories) :<|> (("newstories.json" :> Get '[JSON] NewStories) :<|> (("beststories.json" :> Get '[JSON] BestStories) :<|> (("askstories.json" :> Get '[JSON] AskStories) :<|> (("showstories.json" :> Get '[JSON] ShowStories) :<|> (("jobstories.json" :> Get '[JSON] JobStories) :<|> ("updates.json" :> Get '[JSON] Updates))))))))) -- | Custom combinator for appending '.json' to Item query data HackerCapture (a :: *) -- | Retrieve Item getItem :: Manager -> ItemId -> IO (Either HackerNewsError Item) -- | Retrieve User getUser :: Manager -> UserId -> IO (Either HackerNewsError User) -- | Retrieve MaxItem getMaxItem :: Manager -> IO (Either HackerNewsError MaxItem) -- | Retrieve TopStories getTopStories :: Manager -> IO (Either HackerNewsError TopStories) -- | Retrieve NewStories getNewStories :: Manager -> IO (Either HackerNewsError NewStories) -- | Retrieve BestStories getBestStories :: Manager -> IO (Either HackerNewsError BestStories) -- | Retrieve AskStories getAskStories :: Manager -> IO (Either HackerNewsError AskStories) -- | Retrieve ShowStories getShowStories :: Manager -> IO (Either HackerNewsError ShowStories) -- | Retrieve JobStories getJobStories :: Manager -> IO (Either HackerNewsError JobStories) -- | Retrieve Updates getUpdates :: Manager -> IO (Either HackerNewsError Updates) -- | Stories, comments, jobs, Ask HNs and even polls are just items. -- They're identified by their ids, which are unique integers, and live -- under https://hacker-news.firebaseio.com/v0/item/. data Item Item :: Maybe ItemId -> Maybe Deleted -> ItemType -> Maybe UserName -> Maybe Time -> Maybe ItemText -> Maybe Dead -> Maybe Parent -> Maybe Kids -> Maybe URL -> Maybe Score -> Maybe Title -> Maybe Parts -> Maybe Descendants -> Item [itemId] :: Item -> Maybe ItemId [itemDeleted] :: Item -> Maybe Deleted [itemType] :: Item -> ItemType [itemBy] :: Item -> Maybe UserName [itemTime] :: Item -> Maybe Time [itemText] :: Item -> Maybe ItemText [itemDead] :: Item -> Maybe Dead [itemParent] :: Item -> Maybe Parent [itemKids] :: Item -> Maybe Kids [itemURL] :: Item -> Maybe URL [itemScore] :: Item -> Maybe Score [itemTitle] :: Item -> Maybe Title [itemParts] :: Item -> Maybe Parts [itemDescendants] :: Item -> Maybe Descendants -- | Users are identified by case-sensitive ids, and live under -- https://hacker-news.firebaseio.com/v0/user/. Only users that -- have public activity (comments or story submissions) on the site are -- available through the API. data User User :: UserId -> Maybe Delay -> Created -> Karma -> Maybe About -> Maybe Submitted -> User -- | The user's unique username. Case-sensitive. Required. [userId] :: User -> UserId -- | Delay in minutes between a comment's creation and its visibility to -- other users. [userDelay] :: User -> Maybe Delay -- | Creation date of the user, in Unix Time. [userCreated] :: User -> Created -- | The user's karma [userKarma] :: User -> Karma -- | The user's optional self-description. HTML. [userAbout] :: User -> Maybe About -- | List of the user's stories, polls and comments. [userSubmitted] :: User -> Maybe Submitted -- | The item and profile changes are at -- https://hacker-news.firebaseio.com/v0/updates data Updates Updates :: [ItemId] -> [UserName] -> Updates -- | Updated Items [items] :: Updates -> [ItemId] -- | Updated UserNames [profiles] :: Updates -> [UserName] -- | The current largest item id is at -- https://hacker-news.firebaseio.com/v0/maxitem. You can walk -- backward from here to discover all items. newtype MaxItem MaxItem :: ItemId -> MaxItem -- | https://hacker-news.firebaseio.com/v0/topstories newtype TopStories TopStories :: [ItemId] -> TopStories -- | https://hacker-news.firebaseio.com/v0/newstories newtype NewStories NewStories :: [ItemId] -> NewStories -- | https://hacker-news.firebaseio.com/v0/beststories newtype BestStories BestStories :: [ItemId] -> BestStories -- | https://hacker-news.firebaseio.com/v0/askstories newtype AskStories AskStories :: [ItemId] -> AskStories -- | https://hacker-news.firebaseio.com/v0/showstories newtype ShowStories ShowStories :: [ItemId] -> ShowStories -- | https://hacker-news.firebaseio.com/v0/jobstories newtype JobStories JobStories :: [ItemId] -> JobStories -- | The user's unique username. Case-sensitive. Required. newtype UserId UserId :: Text -> UserId -- | The item's unique id. newtype ItemId ItemId :: Int -> ItemId -- | true if the item is deleted. newtype Deleted Deleted :: Bool -> Deleted -- | The type of item. One of "job", "story", "comment", "poll", or -- "pollopt" data ItemType Job :: ItemType Story :: ItemType Comment :: ItemType Poll :: ItemType PollOpt :: ItemType -- | The username of the item's author. newtype UserName UserName :: Text -> UserName -- | Creation date of the item, in Unix Time. newtype Time Time :: Integer -> Time -- | The comment, story or poll text. HTML. newtype ItemText ItemText :: Text -> ItemText -- | true if the item is dead. newtype Dead Dead :: Bool -> Dead -- | The item's parent. For comments, either another comment or the -- relevant story. For pollopts, the relevant poll. newtype Parent Parent :: ItemId -> Parent -- | The ids of the item's comments, in ranked display order. newtype Kids Kids :: [ItemId] -> Kids -- | The URL of the story. newtype URL URL :: Text -> URL -- | The story's score, or the votes for a pollopt. newtype Score Score :: Int -> Score -- | The title of the story, poll or job. newtype Title Title :: Text -> Title -- | A list of related pollopts, in display order. newtype Parts Parts :: [ItemId] -> Parts -- | In the case of stories or polls, the total comment count. newtype Descendants Descendants :: Int -> Descendants -- | Delay in minutes between a comment's creation and its visibility to -- other users. newtype Delay Delay :: Int -> Delay -- | Creation date of the user, in Unix Time. newtype Created Created :: Int -> Created -- | The user's karma. newtype Karma Karma :: Int -> Karma -- | The user's optional self-description. HTML. newtype About About :: Text -> About -- | List of the user's stories, polls and comments. newtype Submitted Submitted :: [ItemId] -> Submitted -- | Error handling for HackerNewsAPI data HackerNewsError NotFound :: HackerNewsError FailureResponseError :: Int -> Text -> Text -> HackerNewsError HNConnectionError :: Text -> HackerNewsError DecodeFailureError :: Text -> Text -> HackerNewsError InvalidContentTypeHeaderError :: Text -> Text -> HackerNewsError UnsupportedContentTypeError :: Text -> HackerNewsError instance (Web.Internal.HttpApiData.ToHttpApiData a, Servant.Client.HasClient api) => Servant.Client.HasClient (Web.HackerNews.HackerCapture a Servant.API.Sub.:> api)