-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds.
--   
--   Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds.
--   
--   To help working with the multiple feed formats we've ended up with,
--   this set of modules provides parsers, pretty printers and some utility
--   code for querying and just generally working with a concrete
--   representation of feeds in Haskell.
--   
--   See here for an example of how to create an Atom feed:
--   https://github.com/haskell-party/feed/blob/master/tests/Example/CreateAtom.hs
--   
--   For basic reading and editing of feeds, consult the documentation of
--   the Text.Feed.* hierarchy.
@package feed
@version 1.3.2.1

module Text.Atom.Feed
type URI = Text
type NCName = Text
type Date = Text
type MediaType = Text
type Attr = (Name, [Content])
data Feed
Feed :: URI -> TextContent -> Date -> [Person] -> [Category] -> [Person] -> Maybe Generator -> Maybe URI -> [Link] -> Maybe URI -> Maybe TextContent -> Maybe TextContent -> [Entry] -> [Attr] -> [Element] -> Feed
[feedId] :: Feed -> URI
[feedTitle] :: Feed -> TextContent
[feedUpdated] :: Feed -> Date
[feedAuthors] :: Feed -> [Person]
[feedCategories] :: Feed -> [Category]
[feedContributors] :: Feed -> [Person]
[feedGenerator] :: Feed -> Maybe Generator
[feedIcon] :: Feed -> Maybe URI
[feedLinks] :: Feed -> [Link]
[feedLogo] :: Feed -> Maybe URI
[feedRights] :: Feed -> Maybe TextContent
[feedSubtitle] :: Feed -> Maybe TextContent
[feedEntries] :: Feed -> [Entry]
[feedAttrs] :: Feed -> [Attr]
[feedOther] :: Feed -> [Element]
data Entry
Entry :: URI -> TextContent -> Date -> [Person] -> [Category] -> Maybe EntryContent -> [Person] -> [Link] -> Maybe Date -> Maybe TextContent -> Maybe Source -> Maybe TextContent -> Maybe InReplyTo -> Maybe InReplyTotal -> [Attr] -> [Element] -> Entry
[entryId] :: Entry -> URI
[entryTitle] :: Entry -> TextContent
[entryUpdated] :: Entry -> Date
[entryAuthors] :: Entry -> [Person]
[entryCategories] :: Entry -> [Category]
[entryContent] :: Entry -> Maybe EntryContent
[entryContributor] :: Entry -> [Person]
[entryLinks] :: Entry -> [Link]
[entryPublished] :: Entry -> Maybe Date
[entryRights] :: Entry -> Maybe TextContent
[entrySource] :: Entry -> Maybe Source
[entrySummary] :: Entry -> Maybe TextContent
[entryInReplyTo] :: Entry -> Maybe InReplyTo
[entryInReplyTotal] :: Entry -> Maybe InReplyTotal
[entryAttrs] :: Entry -> [Attr]
[entryOther] :: Entry -> [Element]
data EntryContent
TextContent :: Text -> EntryContent
HTMLContent :: Text -> EntryContent
XHTMLContent :: Element -> EntryContent
MixedContent :: Maybe Text -> [Node] -> EntryContent
ExternalContent :: Maybe MediaType -> URI -> EntryContent
data Category
Category :: Text -> Maybe URI -> Maybe Text -> [Element] -> Category

-- | the tag/term of the category.
[catTerm] :: Category -> Text

-- | optional URL for identifying the categorization scheme.
[catScheme] :: Category -> Maybe URI

-- | human-readable label of the category
[catLabel] :: Category -> Maybe Text

-- | unknown elements, for extensibility.
[catOther] :: Category -> [Element]
data Generator
Generator :: Maybe URI -> Maybe Text -> Text -> Generator
[genURI] :: Generator -> Maybe URI
[genVersion] :: Generator -> Maybe Text
[genText] :: Generator -> Text
data Link
Link :: URI -> Maybe (Either NCName URI) -> Maybe MediaType -> Maybe Text -> Maybe Text -> Maybe Text -> [Attr] -> [Element] -> Link
[linkHref] :: Link -> URI
[linkRel] :: Link -> Maybe (Either NCName URI)
[linkType] :: Link -> Maybe MediaType
[linkHrefLang] :: Link -> Maybe Text
[linkTitle] :: Link -> Maybe Text
[linkLength] :: Link -> Maybe Text
[linkAttrs] :: Link -> [Attr]
[linkOther] :: Link -> [Element]
data TextContent
TextString :: Text -> TextContent
HTMLString :: Text -> TextContent
XHTMLString :: Element -> TextContent
txtToString :: TextContent -> String
data Source
Source :: [Person] -> [Category] -> Maybe Generator -> Maybe URI -> Maybe URI -> [Link] -> Maybe URI -> Maybe TextContent -> Maybe TextContent -> Maybe TextContent -> Maybe Date -> [Element] -> Source
[sourceAuthors] :: Source -> [Person]
[sourceCategories] :: Source -> [Category]
[sourceGenerator] :: Source -> Maybe Generator
[sourceIcon] :: Source -> Maybe URI
[sourceId] :: Source -> Maybe URI
[sourceLinks] :: Source -> [Link]
[sourceLogo] :: Source -> Maybe URI
[sourceRights] :: Source -> Maybe TextContent
[sourceSubtitle] :: Source -> Maybe TextContent
[sourceTitle] :: Source -> Maybe TextContent
[sourceUpdated] :: Source -> Maybe Date
[sourceOther] :: Source -> [Element]
data Person
Person :: Text -> Maybe URI -> Maybe Text -> [Element] -> Person
[personName] :: Person -> Text
[personURI] :: Person -> Maybe URI
[personEmail] :: Person -> Maybe Text
[personOther] :: Person -> [Element]
data InReplyTo
InReplyTo :: URI -> Maybe URI -> Maybe MediaType -> Maybe URI -> [Attr] -> [Node] -> InReplyTo
[replyToRef] :: InReplyTo -> URI
[replyToHRef] :: InReplyTo -> Maybe URI
[replyToType] :: InReplyTo -> Maybe MediaType
[replyToSource] :: InReplyTo -> Maybe URI
[replyToOther] :: InReplyTo -> [Attr]
[replyToContent] :: InReplyTo -> [Node]
data InReplyTotal
InReplyTotal :: Integer -> [Attr] -> InReplyTotal
[replyToTotal] :: InReplyTotal -> Integer
[replyToTotalOther] :: InReplyTotal -> [Attr]
newCategory :: Text -> Category
nullFeed :: URI -> TextContent -> Date -> Feed
nullEntry :: URI -> TextContent -> Date -> Entry
nullGenerator :: Text -> Generator
nullLink :: URI -> Link
nullSource :: Source
nullPerson :: Person
instance GHC.Show.Show Text.Atom.Feed.EntryContent
instance GHC.Show.Show Text.Atom.Feed.Category
instance GHC.Show.Show Text.Atom.Feed.Generator
instance GHC.Classes.Eq Text.Atom.Feed.Generator
instance GHC.Show.Show Text.Atom.Feed.Link
instance GHC.Show.Show Text.Atom.Feed.TextContent
instance GHC.Show.Show Text.Atom.Feed.Person
instance GHC.Show.Show Text.Atom.Feed.Source
instance GHC.Show.Show Text.Atom.Feed.InReplyTo
instance GHC.Show.Show Text.Atom.Feed.InReplyTotal
instance GHC.Show.Show Text.Atom.Feed.Entry
instance GHC.Show.Show Text.Atom.Feed.Feed

-- | Convert from Atom to XML
module Text.Atom.Feed.Export
atom_prefix :: Maybe Text
atom_thr_prefix :: Maybe Text
atomNS :: Text
atomThreadNS :: Text
xmlns_atom :: Attr
xmlns_atom_thread :: Attr
atomName :: Text -> Name
atomAttr :: Text -> Text -> Attr
atomNode :: Text -> [Node] -> Element
atomLeaf :: Text -> Text -> Element
atomThreadName :: Text -> Name
atomThreadAttr :: Text -> Text -> Attr
atomThreadNode :: Text -> [Node] -> Element
atomThreadLeaf :: Text -> Text -> Element
xmlFeed :: Feed -> Element
textFeed :: Feed -> Maybe Text
xmlEntry :: Entry -> Element
xmlContent :: EntryContent -> Element
xmlCategory :: Category -> Element
xmlLink :: Link -> Element
xmlSource :: Source -> Element
xmlGenerator :: Generator -> Element
xmlAuthor :: Person -> Element
xmlContributor :: Person -> Element
xmlPerson :: Person -> [Node]
xmlInReplyTo :: InReplyTo -> Element
xmlInReplyTotal :: InReplyTotal -> Element
xmlId :: Text -> Element
xmlIcon :: URI -> Element
xmlLogo :: URI -> Element
xmlUpdated :: Date -> Element
xmlPublished :: Date -> Element
xmlRights :: TextContent -> Element
xmlTitle :: TextContent -> Element
xmlSubtitle :: TextContent -> Element
xmlSummary :: TextContent -> Element
xmlTextContent :: Text -> TextContent -> Element
mb :: (a -> b) -> Maybe a -> [b]

-- | Convert from XML to Atom
module Text.Atom.Feed.Import
pNodes :: Text -> [Element] -> [Element]
pQNodes :: Name -> [Element] -> [Element]
pNode :: Text -> [Element] -> Maybe Element
pQNode :: Name -> [Element] -> Maybe Element
pLeaf :: Text -> [Element] -> Maybe Text
pQLeaf :: Name -> [Element] -> Maybe Text
pAttr :: Text -> Element -> Maybe Text
pAttrs :: Text -> Element -> [Text]
pQAttr :: Name -> Element -> Maybe Text
pMany :: Text -> (Element -> Maybe a) -> [Element] -> [a]
children :: Element -> [Element]
elementFeed :: Element -> Maybe Feed
pTextContent :: Text -> [Element] -> Maybe TextContent
pPerson :: Element -> Maybe Person
pCategory :: Element -> Maybe Category
pGenerator :: Element -> Generator
pSource :: Element -> Source
pLink :: Element -> Maybe Link
pEntry :: Element -> Maybe Entry
pContent :: Element -> Maybe EntryContent
pInReplyTotal :: [Element] -> Maybe InReplyTotal
pInReplyTo :: [Element] -> Maybe InReplyTo

module Text.Atom.Feed.Link

-- | Atom feeds uses typed IRI links to represent information / metadata
--   that is of interest to the consumers (software, in the main) of feeds.
--   For instance, the edit link relation attached to an atom:entry element
--   points to the IRI to use to update/edit it.
--   
--   The Atom standard encourages that such typed links to be registered
--   with IANA if they have wider applicability, and the
--   LinkRelation data type encodes the currently registered link
--   types (derived from:
--   http://www.iana.org/assignments/link-relations.html on 2007-10-28]
data LinkRelation
LinkAlternate :: LinkRelation
LinkCurrent :: LinkRelation
LinkEnclosure :: LinkRelation
LinkEdit :: LinkRelation
LinkEditMedia :: LinkRelation
LinkFirst :: LinkRelation
LinkLast :: LinkRelation
LinkLicense :: LinkRelation
LinkNext :: LinkRelation
LinkNextArchive :: LinkRelation
LinkPayment :: LinkRelation
LinkPrevArchive :: LinkRelation
LinkPrevious :: LinkRelation
LinkRelated :: LinkRelation
LinkReplies :: LinkRelation
LinkSelf :: LinkRelation
LinkVia :: LinkRelation
LinkOther :: String -> LinkRelation
showLinkRelation :: LinkRelation -> String
showLinkAttr :: LinkRelation -> String -> String
instance GHC.Show.Show Text.Atom.Feed.Link.LinkRelation
instance GHC.Classes.Eq Text.Atom.Feed.Link.LinkRelation

module Text.Atom.Feed.Validate
data VTree a
VNode :: [a] -> [VTree a] -> VTree a
VLeaf :: [a] -> VTree a
type ValidatorResult = VTree (Bool, String)
advice :: String -> ValidatorResult
demand :: String -> ValidatorResult
valid :: ValidatorResult
mkTree :: [(Bool, String)] -> [ValidatorResult] -> ValidatorResult
flattenT :: VTree a -> [a]
validateEntry :: Element -> ValidatorResult
checkEntryAuthor :: Element -> ValidatorResult
checkCats :: Element -> ValidatorResult
checkContents :: Element -> ValidatorResult
checkContributor :: Element -> ValidatorResult
checkContentLink :: Element -> ValidatorResult
checkLinks :: Element -> ValidatorResult
checkId :: Element -> ValidatorResult
checkPublished :: Element -> ValidatorResult
checkRights :: Element -> ValidatorResult
checkSource :: Element -> ValidatorResult
checkSummary :: Element -> ValidatorResult
checkTitle :: Element -> ValidatorResult
checkUpdated :: Element -> ValidatorResult
checkCat :: Element -> ValidatorResult
checkContent :: Element -> ValidatorResult
checkTerm :: Element -> ValidatorResult
checkAuthor :: Element -> ValidatorResult
checkPerson :: Element -> ValidatorResult
checkName :: Element -> ValidatorResult
checkEmail :: Element -> ValidatorResult
checkUri :: Element -> ValidatorResult
instance GHC.Show.Show a => GHC.Show.Show (Text.Atom.Feed.Validate.VTree a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.Atom.Feed.Validate.VTree a)

-- | Types for the Atom Publishing Protocol (APP)
module Text.Atom.Pub
data Service
Service :: [Workspace] -> [Element] -> Service
[serviceWorkspaces] :: Service -> [Workspace]
[serviceOther] :: Service -> [Element]
data Workspace
Workspace :: TextContent -> [Collection] -> [Element] -> Workspace
[workspaceTitle] :: Workspace -> TextContent
[workspaceCols] :: Workspace -> [Collection]
[workspaceOther] :: Workspace -> [Element]
data Collection
Collection :: URI -> TextContent -> [Accept] -> [Categories] -> [Element] -> Collection
[collectionURI] :: Collection -> URI
[collectionTitle] :: Collection -> TextContent
[collectionAccept] :: Collection -> [Accept]
[collectionCats] :: Collection -> [Categories]
[collectionOther] :: Collection -> [Element]
data Categories
CategoriesExternal :: URI -> Categories
Categories :: Maybe Bool -> Maybe URI -> [Category] -> Categories
newtype Accept
Accept :: Text -> Accept
[acceptType] :: Accept -> Text
instance GHC.Show.Show Text.Atom.Pub.Categories

-- | Serializing Atom Publishing Protocol types as XML.
module Text.Atom.Pub.Export
mkQName :: Maybe Text -> Text -> Name
mkElem :: Name -> [Attr] -> [Element] -> Element
mkLeaf :: Name -> [Attr] -> Text -> Element
mkAttr :: Text -> Text -> Attr
xmlns_app :: Attr
appNS :: Text
xmlService :: Service -> Element
xmlWorkspace :: Workspace -> Element
xmlCollection :: Collection -> Element
xmlCategories :: Categories -> Element
xmlAccept :: Accept -> Element

-- | Representing the DublinCore metadata elements in Haskell. For
--   information on the Dublin Core Metadata Element Set, see:
--   http://dublincore.org/
module Text.DublinCore.Types

-- | A DCItem pairs a specific element with its (string) value.
data DCItem
DCItem :: DCInfo -> Text -> DCItem
[dcElt] :: DCItem -> DCInfo
[dcText] :: DCItem -> Text

-- | The Dublin Core Metadata Element Set, all 15 of them (plus an
--   extension constructor.)
data DCInfo

-- | A name given to the resource.
DC_Title :: DCInfo

-- | An entity primarily responsible for making the content of the
--   resource.
DC_Creator :: DCInfo

-- | The topic of the content of the resource.
DC_Subject :: DCInfo

-- | An account of the content of the resource.
DC_Description :: DCInfo

-- | An entity responsible for making the resource available
DC_Publisher :: DCInfo

-- | An entity responsible for making contributions to the content of the
--   resource.
DC_Contributor :: DCInfo

-- | A date associated with an event in the life cycle of the resource
--   (YYYY-MM-DD)
DC_Date :: DCInfo

-- | The nature or genre of the content of the resource.
DC_Type :: DCInfo

-- | The physical or digital manifestation of the resource.
DC_Format :: DCInfo

-- | An unambiguous reference to the resource within a given context.
DC_Identifier :: DCInfo

-- | A Reference to a resource from which the present resource is derived.
DC_Source :: DCInfo

-- | A language of the intellectual content of the resource.
DC_Language :: DCInfo

-- | A reference to a related resource.
DC_Relation :: DCInfo

-- | The extent or scope of the content of the resource.
DC_Coverage :: DCInfo

-- | Information about rights held in and over the resource.
DC_Rights :: DCInfo

-- | Other; data type extension mechanism.
DC_Other :: Text -> DCInfo
infoToTag :: DCInfo -> Text
dc_element_names :: [Text]
instance GHC.Show.Show Text.DublinCore.Types.DCInfo
instance GHC.Classes.Eq Text.DublinCore.Types.DCInfo
instance GHC.Show.Show Text.DublinCore.Types.DCItem
instance GHC.Classes.Eq Text.DublinCore.Types.DCItem

-- | The basic syntax for putting together feeds.
--   
--   For instance, to create a feed with a single item item: (nullRSS "rss
--   title" "link") {rssChannel=(nullChannel "channel title" "link")
--   {rssItems=[(nullItem "item title")]}}
module Text.RSS.Syntax
data RSS
RSS :: Text -> [Attr] -> RSSChannel -> [Element] -> RSS
[rssVersion] :: RSS -> Text
[rssAttrs] :: RSS -> [Attr]
[rssChannel] :: RSS -> RSSChannel
[rssOther] :: RSS -> [Element]
type URLString = Text

-- | RFC 822 conforming.
type DateString = Text
data RSSChannel
RSSChannel :: Text -> URLString -> Text -> [RSSItem] -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe DateString -> Maybe DateString -> [RSSCategory] -> Maybe Text -> Maybe URLString -> Maybe RSSCloud -> Maybe Integer -> Maybe RSSImage -> Maybe Text -> Maybe RSSTextInput -> Maybe [Integer] -> Maybe [Text] -> [Element] -> RSSChannel
[rssTitle] :: RSSChannel -> Text
[rssLink] :: RSSChannel -> URLString
[rssDescription] :: RSSChannel -> Text
[rssItems] :: RSSChannel -> [RSSItem]
[rssLanguage] :: RSSChannel -> Maybe Text
[rssCopyright] :: RSSChannel -> Maybe Text
[rssEditor] :: RSSChannel -> Maybe Text
[rssWebMaster] :: RSSChannel -> Maybe Text

-- | rfc 822 conforming.
[rssPubDate] :: RSSChannel -> Maybe DateString

-- | rfc 822 conforming.
[rssLastUpdate] :: RSSChannel -> Maybe DateString
[rssCategories] :: RSSChannel -> [RSSCategory]
[rssGenerator] :: RSSChannel -> Maybe Text
[rssDocs] :: RSSChannel -> Maybe URLString
[rssCloud] :: RSSChannel -> Maybe RSSCloud
[rssTTL] :: RSSChannel -> Maybe Integer
[rssImage] :: RSSChannel -> Maybe RSSImage
[rssRating] :: RSSChannel -> Maybe Text
[rssTextInput] :: RSSChannel -> Maybe RSSTextInput
[rssSkipHours] :: RSSChannel -> Maybe [Integer]
[rssSkipDays] :: RSSChannel -> Maybe [Text]
[rssChannelOther] :: RSSChannel -> [Element]
data RSSItem
RSSItem :: Maybe Text -> Maybe URLString -> Maybe Text -> Maybe Text -> [RSSCategory] -> Maybe URLString -> Maybe Text -> Maybe RSSEnclosure -> Maybe RSSGuid -> Maybe DateString -> Maybe RSSSource -> [Attr] -> [Element] -> RSSItem
[rssItemTitle] :: RSSItem -> Maybe Text
[rssItemLink] :: RSSItem -> Maybe URLString

-- | if not present, the title is. (per spec, at least.)
[rssItemDescription] :: RSSItem -> Maybe Text
[rssItemAuthor] :: RSSItem -> Maybe Text
[rssItemCategories] :: RSSItem -> [RSSCategory]
[rssItemComments] :: RSSItem -> Maybe URLString
[rssItemContent] :: RSSItem -> Maybe Text
[rssItemEnclosure] :: RSSItem -> Maybe RSSEnclosure
[rssItemGuid] :: RSSItem -> Maybe RSSGuid
[rssItemPubDate] :: RSSItem -> Maybe DateString
[rssItemSource] :: RSSItem -> Maybe RSSSource
[rssItemAttrs] :: RSSItem -> [Attr]
[rssItemOther] :: RSSItem -> [Element]
data RSSSource
RSSSource :: URLString -> [Attr] -> Text -> RSSSource
[rssSourceURL] :: RSSSource -> URLString
[rssSourceAttrs] :: RSSSource -> [Attr]
[rssSourceTitle] :: RSSSource -> Text
data RSSEnclosure
RSSEnclosure :: URLString -> Maybe Integer -> Text -> [Attr] -> RSSEnclosure
[rssEnclosureURL] :: RSSEnclosure -> URLString
[rssEnclosureLength] :: RSSEnclosure -> Maybe Integer
[rssEnclosureType] :: RSSEnclosure -> Text
[rssEnclosureAttrs] :: RSSEnclosure -> [Attr]
data RSSCategory
RSSCategory :: Maybe Text -> [Attr] -> Text -> RSSCategory
[rssCategoryDomain] :: RSSCategory -> Maybe Text
[rssCategoryAttrs] :: RSSCategory -> [Attr]
[rssCategoryValue] :: RSSCategory -> Text
data RSSGuid
RSSGuid :: Maybe Bool -> [Attr] -> Text -> RSSGuid
[rssGuidPermanentURL] :: RSSGuid -> Maybe Bool
[rssGuidAttrs] :: RSSGuid -> [Attr]
[rssGuidValue] :: RSSGuid -> Text
data RSSImage
RSSImage :: URLString -> Text -> URLString -> Maybe Integer -> Maybe Integer -> Maybe Text -> [Element] -> RSSImage
[rssImageURL] :: RSSImage -> URLString
[rssImageTitle] :: RSSImage -> Text
[rssImageLink] :: RSSImage -> URLString
[rssImageWidth] :: RSSImage -> Maybe Integer
[rssImageHeight] :: RSSImage -> Maybe Integer
[rssImageDesc] :: RSSImage -> Maybe Text
[rssImageOther] :: RSSImage -> [Element]
data RSSCloud
RSSCloud :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> [Attr] -> RSSCloud
[rssCloudDomain] :: RSSCloud -> Maybe Text
[rssCloudPort] :: RSSCloud -> Maybe Text
[rssCloudPath] :: RSSCloud -> Maybe Text
[rssCloudRegisterProcedure] :: RSSCloud -> Maybe Text
[rssCloudProtocol] :: RSSCloud -> Maybe Text
[rssCloudAttrs] :: RSSCloud -> [Attr]
data RSSTextInput
RSSTextInput :: Text -> Text -> Text -> URLString -> [Attr] -> [Element] -> RSSTextInput
[rssTextInputTitle] :: RSSTextInput -> Text
[rssTextInputDesc] :: RSSTextInput -> Text
[rssTextInputName] :: RSSTextInput -> Text
[rssTextInputLink] :: RSSTextInput -> URLString
[rssTextInputAttrs] :: RSSTextInput -> [Attr]
[rssTextInputOther] :: RSSTextInput -> [Element]
nullRSS :: Text -> URLString -> RSS
nullChannel :: Text -> URLString -> RSSChannel
nullItem :: Text -> RSSItem
nullSource :: URLString -> Text -> RSSSource
nullEnclosure :: URLString -> Maybe Integer -> Text -> RSSEnclosure
newCategory :: Text -> RSSCategory
nullGuid :: Text -> RSSGuid
nullPermaGuid :: Text -> RSSGuid
nullImage :: URLString -> Text -> URLString -> RSSImage
nullCloud :: RSSCloud
nullTextInput :: Text -> Text -> URLString -> RSSTextInput
instance GHC.Show.Show Text.RSS.Syntax.RSSSource
instance GHC.Show.Show Text.RSS.Syntax.RSSEnclosure
instance GHC.Show.Show Text.RSS.Syntax.RSSCategory
instance GHC.Show.Show Text.RSS.Syntax.RSSGuid
instance GHC.Show.Show Text.RSS.Syntax.RSSItem
instance GHC.Show.Show Text.RSS.Syntax.RSSImage
instance GHC.Show.Show Text.RSS.Syntax.RSSCloud
instance GHC.Show.Show Text.RSS.Syntax.RSSTextInput
instance GHC.Show.Show Text.RSS.Syntax.RSSChannel
instance GHC.Show.Show Text.RSS.Syntax.RSS

module Text.RSS.Export
qualNode :: Text -> [Node] -> Element
qualName :: Text -> Name
xmlRSS :: RSS -> Element
textRSS :: RSS -> Maybe Text
xmlChannel :: RSSChannel -> Element
xmlItem :: RSSItem -> Element
xmlSource :: RSSSource -> Element
xmlEnclosure :: RSSEnclosure -> Element
xmlCategory :: RSSCategory -> Element
xmlGuid :: RSSGuid -> Element
xmlImage :: RSSImage -> Element
xmlCloud :: RSSCloud -> Element
xmlTextInput :: RSSTextInput -> Element
xmlSkipHours :: [Integer] -> Element
xmlSkipDays :: [Text] -> Element
xmlAttr :: Text -> Text -> Attr
xmlLeaf :: Text -> Text -> Element
mb :: (a -> b) -> Maybe a -> [b]

module Text.RSS1.Syntax
type URIString = Text
type TitleString = Text
type TimeString = Text
type TextString = Text
data Feed
Feed :: Text -> Channel -> Maybe Image -> [Item] -> Maybe TextInputInfo -> [TaxonomyTopic] -> [Element] -> [Attr] -> Feed
[feedVersion] :: Feed -> Text
[feedChannel] :: Feed -> Channel
[feedImage] :: Feed -> Maybe Image
[feedItems] :: Feed -> [Item]
[feedTextInput] :: Feed -> Maybe TextInputInfo
[feedTopics] :: Feed -> [TaxonomyTopic]
[feedOther] :: Feed -> [Element]
[feedAttrs] :: Feed -> [Attr]
data Channel
Channel :: URIString -> TitleString -> URIString -> TextString -> Maybe URIString -> [URIString] -> Maybe URIString -> [DCItem] -> Maybe UpdatePeriod -> Maybe Integer -> Maybe TimeString -> [ContentInfo] -> [URIString] -> [Element] -> [Attr] -> Channel
[channelURI] :: Channel -> URIString
[channelTitle] :: Channel -> TitleString
[channelLink] :: Channel -> URIString
[channelDesc] :: Channel -> TextString
[channelImageURI] :: Channel -> Maybe URIString
[channelItemURIs] :: Channel -> [URIString]
[channelTextInputURI] :: Channel -> Maybe URIString
[channelDC] :: Channel -> [DCItem]
[channelUpdatePeriod] :: Channel -> Maybe UpdatePeriod
[channelUpdateFreq] :: Channel -> Maybe Integer
[channelUpdateBase] :: Channel -> Maybe TimeString
[channelContent] :: Channel -> [ContentInfo]
[channelTopics] :: Channel -> [URIString]
[channelOther] :: Channel -> [Element]
[channelAttrs] :: Channel -> [Attr]
data Image
Image :: URIString -> TextString -> URIString -> URIString -> [DCItem] -> [Element] -> [Attr] -> Image
[imageURI] :: Image -> URIString
[imageTitle] :: Image -> TextString
[imageURL] :: Image -> URIString
[imageLink] :: Image -> URIString
[imageDC] :: Image -> [DCItem]
[imageOther] :: Image -> [Element]
[imageAttrs] :: Image -> [Attr]
data Item
Item :: URIString -> TextString -> URIString -> Maybe TextString -> [DCItem] -> [URIString] -> [ContentInfo] -> [Element] -> [Attr] -> Item
[itemURI] :: Item -> URIString
[itemTitle] :: Item -> TextString
[itemLink] :: Item -> URIString
[itemDesc] :: Item -> Maybe TextString
[itemDC] :: Item -> [DCItem]
[itemTopics] :: Item -> [URIString]
[itemContent] :: Item -> [ContentInfo]
[itemOther] :: Item -> [Element]
[itemAttrs] :: Item -> [Attr]
data TextInputInfo
TextInputInfo :: URIString -> TextString -> TextString -> TextString -> URIString -> [DCItem] -> [Element] -> [Attr] -> TextInputInfo
[textInputURI] :: TextInputInfo -> URIString
[textInputTitle] :: TextInputInfo -> TextString
[textInputDesc] :: TextInputInfo -> TextString
[textInputName] :: TextInputInfo -> TextString
[textInputLink] :: TextInputInfo -> URIString
[textInputDC] :: TextInputInfo -> [DCItem]
[textInputOther] :: TextInputInfo -> [Element]
[textInputAttrs] :: TextInputInfo -> [Attr]
data TaxonomyTopic
TaxonomyTopic :: URIString -> URIString -> Maybe Text -> Maybe Text -> [URIString] -> [DCItem] -> [Element] -> TaxonomyTopic
[taxonomyURI] :: TaxonomyTopic -> URIString
[taxonomyLink] :: TaxonomyTopic -> URIString
[taxonomyTitle] :: TaxonomyTopic -> Maybe Text
[taxonomyDesc] :: TaxonomyTopic -> Maybe Text
[taxonomyTopics] :: TaxonomyTopic -> [URIString]
[taxonomyDC] :: TaxonomyTopic -> [DCItem]
[taxonomyOther] :: TaxonomyTopic -> [Element]
data UpdatePeriod
Update_Hourly :: UpdatePeriod
Update_Daily :: UpdatePeriod
Update_Weekly :: UpdatePeriod
Update_Monthly :: UpdatePeriod
Update_Yearly :: UpdatePeriod
data ContentInfo
ContentInfo :: Maybe URIString -> Maybe URIString -> Maybe URIString -> Maybe Text -> ContentInfo
[contentURI] :: ContentInfo -> Maybe URIString
[contentFormat] :: ContentInfo -> Maybe URIString
[contentEncoding] :: ContentInfo -> Maybe URIString
[contentValue] :: ContentInfo -> Maybe Text
nullFeed :: URIString -> TitleString -> Feed
nullChannel :: URIString -> TitleString -> Channel
nullImage :: URIString -> Text -> URIString -> Image
nullItem :: URIString -> TextString -> URIString -> Item
nullTextInputInfo :: URIString -> TextString -> TextString -> URIString -> TextInputInfo
nullTaxonomyTopic :: URIString -> URIString -> TaxonomyTopic
nullContentInfo :: ContentInfo
instance GHC.Show.Show Text.RSS1.Syntax.Image
instance GHC.Show.Show Text.RSS1.Syntax.TextInputInfo
instance GHC.Show.Show Text.RSS1.Syntax.TaxonomyTopic
instance GHC.Show.Show Text.RSS1.Syntax.UpdatePeriod
instance GHC.Classes.Eq Text.RSS1.Syntax.UpdatePeriod
instance GHC.Show.Show Text.RSS1.Syntax.ContentInfo
instance GHC.Classes.Eq Text.RSS1.Syntax.ContentInfo
instance GHC.Show.Show Text.RSS1.Syntax.Item
instance GHC.Show.Show Text.RSS1.Syntax.Channel
instance GHC.Show.Show Text.RSS1.Syntax.Feed

module Text.Feed.Types

-- | The abstract type of feed documents. The internal representation is as
--   whatever feed variant type the document was either imported or has now
--   been translated to.
data Feed
AtomFeed :: Feed -> Feed
RSSFeed :: RSS -> Feed
RSS1Feed :: Feed -> Feed
XMLFeed :: Element -> Feed

-- | The abstract type of feed items. Like the Feed type, the
--   representation of a value is as one of the different RSS item/entry
--   variants.
data Item
AtomItem :: Entry -> Item
RSSItem :: RSSItem -> Item
RSS1Item :: Item -> Item
XMLItem :: Element -> Item

-- | The kinds of feed documents supported.
data FeedKind
AtomKind :: FeedKind
RSSKind :: Maybe Text -> FeedKind
RDFKind :: Maybe Text -> FeedKind
instance GHC.Show.Show Text.Feed.Types.Feed
instance GHC.Show.Show Text.Feed.Types.Item
instance GHC.Show.Show Text.Feed.Types.FeedKind
instance GHC.Classes.Eq Text.Feed.Types.FeedKind

module Text.Feed.Util

-- | toFeedDateString translates a calendar time into the format
--   expected by the feed kind.
toFeedDateString :: FeedKind -> ClockTime -> String

-- | toFeedDateStringUTC translates a UTC time into the format
--   expected by the feed kind.
toFeedDateStringUTC :: FeedKind -> UTCTime -> String

module Text.Feed.Query
feedItems :: Feed -> [Item]
type FeedGetter a = Feed -> Maybe a
getFeedTitle :: Feed -> Text
getFeedAuthor :: FeedGetter Text
getFeedHome :: FeedGetter URLString
getFeedHTML :: FeedGetter URLString
getFeedDescription :: FeedGetter Text
getFeedPubDate :: FeedGetter DateString
getFeedLastUpdate :: FeedGetter Text
getFeedDate :: FeedGetter DateString
getFeedLogoLink :: FeedGetter URLString
getFeedLanguage :: FeedGetter Text
getFeedCategories :: Feed -> [(Text, Maybe Text)]
getFeedGenerator :: FeedGetter Text
getFeedItems :: Feed -> [Item]
type ItemGetter a = Item -> Maybe a
getItemTitle :: ItemGetter Text
getItemLink :: ItemGetter Text

-- | 'getItemPublishDate item' returns the publication date of the item,
--   but first parsed per the supported RFC 822 and RFC 3339 formats.
--   
--   If the date string cannot be parsed as such, Just Nothing is returned.
--   The caller must then instead fall back to processing the date string
--   from getItemPublishDateString.
--   
--   The parsed date representation is one of the ParseTime instances; see
--   Format.
getItemPublishDate :: ParseTime t => ItemGetter (Maybe t)
getItemPublishDateString :: ItemGetter DateString
getItemDate :: ItemGetter DateString

-- | 'getItemAuthor f' returns the optional author of the item.
getItemAuthor :: ItemGetter Text
getItemCommentLink :: ItemGetter URLString
getItemEnclosure :: ItemGetter (URI, Maybe Text, Maybe Integer)
getItemFeedLink :: ItemGetter URLString
getItemId :: ItemGetter (Bool, Text)
getItemCategories :: Item -> [Text]
getItemRights :: ItemGetter Text
getItemSummary :: ItemGetter Text
getItemContent :: ItemGetter Text
getItemDescription :: ItemGetter Text

module Text.Feed.Constructor

-- | The kinds of feed documents supported.
data FeedKind
AtomKind :: FeedKind
RSSKind :: Maybe Text -> FeedKind
RDFKind :: Maybe Text -> FeedKind

-- | Construct an empty feed document, intending to output it in the
--   fk feed format.
newFeed :: FeedKind -> Feed
feedFromRSS :: RSS -> Feed
feedFromAtom :: Feed -> Feed
feedFromRDF :: Feed -> Feed
feedFromXML :: Element -> Feed
getFeedKind :: Feed -> FeedKind
type FeedSetter a = a -> Feed -> Feed
addItem :: Item -> Feed -> Feed
withFeedTitle :: FeedSetter Text
withFeedHome :: FeedSetter URLString

-- | withFeedHTML sets the URL where an HTML version of the feed is
--   published.
withFeedHTML :: FeedSetter URLString

-- | withFeedHTML sets the URL where an HTML version of the feed is
--   published.
withFeedDescription :: FeedSetter Text
withFeedPubDate :: FeedSetter Text
withFeedLastUpdate :: FeedSetter DateString

-- | 'withFeedDate dt' is the composition of withFeedPubDate and
--   withFeedLastUpdate, setting both publication date and last
--   update date to dt. Notice that RSS2.0 is the only format
--   supporting both pub and last-update.
withFeedDate :: FeedSetter DateString
withFeedLogoLink :: URLString -> FeedSetter URLString
withFeedLanguage :: FeedSetter Text
withFeedCategories :: FeedSetter [(Text, Maybe Text)]
withFeedGenerator :: FeedSetter (Text, Maybe URLString)
withFeedItems :: FeedSetter [Item]
newItem :: FeedKind -> Item
getItemKind :: Item -> FeedKind
atomEntryToItem :: Entry -> Item
rssItemToItem :: RSSItem -> Item
rdfItemToItem :: Item -> Item
type ItemSetter a = a -> Item -> Item

-- | 'withItemTitle myTitle' associates a new title, myTitle, with
--   a feed item.
withItemTitle :: ItemSetter Text

-- | 'withItemTitle myLink' associates a new URL, myLink, with a
--   feed item.
withItemLink :: ItemSetter URLString

-- | 'withItemPubDate dt' associates the creation/ publication date
--   dt with a feed item.
withItemPubDate :: ItemSetter DateString

-- | withItemDate is a synonym for withItemPubDate.
withItemDate :: ItemSetter DateString

-- | 'withItemAuthor auStr' associates new author info with a feed item.
withItemAuthor :: ItemSetter Text

-- | 'withItemCommentLink url' sets the URL reference to the comment page
--   to url.
withItemCommentLink :: ItemSetter Text

-- | 'withItemEnclosure url mbTy len' sets the URL reference to the comment
--   page to url.
withItemEnclosure :: Text -> Maybe Text -> ItemSetter (Maybe Integer)

-- | 'withItemFeedLink name myFeed' associates the parent feed URL
--   myFeed with a feed item. It is labelled as name.
withItemFeedLink :: Text -> ItemSetter Text

-- | 'withItemId isURL id' associates new unique identifier with a feed
--   item. If isURL is True, then the id is assumed to
--   point to a valid web resource.
withItemId :: Bool -> ItemSetter Text
withItemCategories :: ItemSetter [(Text, Maybe Text)]

-- | 'withItemDescription desc' associates a new descriptive string (aka
--   summary) with a feed item.
withItemDescription :: ItemSetter Text

-- | 'withItemRights rightStr' associates the rights information
--   rightStr with a feed item.
withItemRights :: ItemSetter Text

-- | Translating between RSS formats; work in progress.
module Text.Feed.Translate
translateItemTo :: FeedKind -> Item -> Item
withAtomEntry :: (Entry -> Entry) -> Item -> Item
withRSSItem :: (RSSItem -> RSSItem) -> Item -> Item
withRSS1Item :: (Item -> Item) -> Item -> Item

module Text.RSS1.Utils
pQNodes :: Name -> Element -> [Element]
pNode :: Text -> Element -> Maybe Element
pQNode :: Name -> Element -> Maybe Element
pLeaf :: Text -> Element -> Maybe Text
pQLeaf :: (Text, Maybe Text) -> Text -> Element -> Maybe Text
pQLeaf' :: (Text, Text) -> Text -> Element -> Maybe Text
pAttr :: (Maybe Text, Maybe Text) -> Text -> Element -> Maybe Text
pAttr' :: (Text, Text) -> Text -> Element -> Maybe Text
pMany :: (Maybe Text, Maybe Text) -> Text -> (Element -> Maybe a) -> Element -> [a]
children :: Element -> [Element]
qualName :: (Maybe Text, Maybe Text) -> Text -> Name
qualName' :: (Text, Text) -> Text -> Name
rss10NS :: Text
rdfPrefix :: Text
rdfNS :: Text
synPrefix :: Text
synNS :: Text
taxPrefix :: Text
taxNS :: Text
conPrefix :: Text
conNS :: Text
dcPrefix :: Text
dcNS :: Text
rdfName :: Text -> Name
rssName :: Text -> Name
synName :: Text -> Name
known_rss_elts :: [Name]
known_syn_elts :: [Name]
known_dc_elts :: [Name]
known_tax_elts :: [Name]
known_con_elts :: [Name]
removeKnownElts :: Element -> [Element]
removeKnownAttrs :: Element -> [Attr]

module Text.RSS1.Import
elementToFeed :: Element -> Maybe Feed

module Text.RSS1.Export
xmlFeed :: Feed -> Element
textFeed :: Feed -> Maybe Text

-- | Convert from Feeds to XML.
module Text.Feed.Export

-- | 'xmlFeed f' serializes a Feed document into a conforming XML
--   toplevel element.
xmlFeed :: Feed -> Element
textFeed :: Feed -> Maybe Text
textFeedWith :: RenderSettings -> Feed -> Maybe Text

-- | Converting from XML to RSS
module Text.RSS.Import
pNodes :: Text -> [Element] -> [Element]
pQNodes :: Name -> [Element] -> [Element]
pNode :: Text -> [Element] -> Maybe Element
pQNode :: Name -> [Element] -> Maybe Element
pLeaf :: Text -> [Element] -> Maybe Text
pQLeaf :: Name -> [Element] -> Maybe Text
pAttr :: Text -> Element -> Maybe Text
pMany :: Text -> (Element -> Maybe a) -> [Element] -> [a]
children :: Element -> [Element]
qualName :: Text -> Name
dcName :: Text -> Name
elementToRSS :: Element -> Maybe RSS
elementToChannel :: Element -> Maybe RSSChannel
elementToImage :: Element -> Maybe RSSImage
elementToCategory :: Element -> Maybe RSSCategory
elementToCloud :: Element -> Maybe RSSCloud
elementToItem :: Element -> Maybe RSSItem
elementToSource :: Element -> Maybe RSSSource
elementToEnclosure :: Element -> Maybe RSSEnclosure
elementToGuid :: Element -> Maybe RSSGuid
elementToTextInput :: Element -> Maybe RSSTextInput
elementToSkipHours :: Element -> Maybe [Integer]
elementToSkipDays :: Element -> Maybe [Text]
readInt :: Text -> Maybe Integer
readBool :: Text -> Maybe Bool

-- | Convert from XML to Feeds.
module Text.Feed.Import

-- | 'parseFeedFromFile fp' reads in the contents of the file at
--   fp; the assumed encoding is UTF-8.
parseFeedFromFile :: FilePath -> IO (Maybe Feed)
parseFeedString :: String -> Maybe Feed

-- | 'parseFeedSource s' tries to parse the source s as one of the
--   feed formats. First as Atom, then RSS2 before giving RSS1 a try.
--   Nothing is, rather unhelpfully, returned as an indication of
--   error.
parseFeedSource :: FeedSource s => s -> Maybe Feed
class FeedSource s

-- | 'readRSS2 elt' tries to derive an RSS2.x, RSS-0.9x feed document from
--   the XML element e.
readRSS2 :: Element -> Maybe Feed

-- | 'readRSS1 elt' tries to derive an RSS1.0 feed document from the XML
--   element e.
readRSS1 :: Element -> Maybe Feed

-- | 'readAtom elt' tries to derive an Atom feed document from the XML
--   element e.
readAtom :: Element -> Maybe Feed
instance Text.Feed.Import.FeedSource Data.ByteString.Lazy.Internal.ByteString
instance Text.Feed.Import.FeedSource Data.Text.Internal.Lazy.Text
instance Text.Feed.Import.FeedSource GHC.Base.String
