}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{| provisionalSigbjorn Finne <sof@galois.com> Safe-Inferred-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. 6The Atom standard encourages that such typed links to ; be registered with IANA if they have wider applicability,  and the ! data type encodes the currently ' registered link types (derived from:  http:// www.iana.org/ assignments/link-relations.html  on 2007-10-28]      provisionalSigbjorn Finne <sof@galois.com>NoneJthe tag/term of the category. K8optional URL for identifying the categorization scheme. L%human-readable label of the category M%unknown elements, for extensibility. n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|catTerm }feedId  feedTitle  feedUpdated ~entryId  entryTitle  entryUpdated genText  linkHref n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~nzyxwfghijklmnopqrstuvTUVWXYZ[\]^_`abcdeNSRQPOHIJKLMCDEFG9:;<=>?@AB5876{'()*+,-./01234!"#$%& |}~ !"#$%&' ()*+,-./0123458769 :;<=>?@ABCDEFGHIJKLMNSRQPOTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ provisionalSigbjorn Finne <sof@galois.com>None%%%% provisionalSigbjorn Finne <sof@galois.com>None provisionalSigbjorn Finne <sof@galois.com>None,Types for the Atom Publishing Protocol (APP) provisionalSigbjorn Finne <sof@galois.com>None provisionalSigbjorn Finne <sof@galois.com>None  provisionalSigbjorn Finne <sof@galois.com> Safe-InferredVThe Dublin Core Metadata Element Set, all 15 of them (plus an extension constructor.) &Other; data type extension mechanism. 8Information about rights held in and over the resource. 4The extent or scope of the content of the resource. #A reference to a related resource. 8A language of the intellectual content of the resource. FA Reference to a resource from which the present resource is derived. AAn unambiguous reference to the resource within a given context. 7The physical or digital manifestation of the resource.  4The nature or genre of the content of the resource.  OA date associated with an event in the life cycle of the resource (YYYY-MM-DD)  OAn entity responsible for making contributions to the content of the resource.  8An entity responsible for making the resource available  +An account of the content of the resource. *The topic of the content of the resource. HAn entity primarily responsible for making the content of the resource. A name given to the resource.  A DCItem                       provisionalSigbjorn Finne <sof@galois.com> Safe-InferredY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoYhgfe[\]^_`abcdJKLMNOPQRSTUVWXYZABCDEFGHI6789:;<=>?@,-./012345#$%&'()*+"! ijklmno"! #$%&'()*+, -./0123456 789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \]^_`abcdefghijklmno  provisionalSigbjorn Finne <sof@galois.com>Nonepqrstuvwxyz{|}~pqrstuvwxyz{|}~pqrstuvwxzy|{~}pqrstuvwxyz{|}~  provisionalSigbjorn Finne <sof@galois.com>None }~ }~  provisionalSigbjorn Finne <sof@galois.com>None  provisionalSigbjorn Finne <sof@galois.com>None4if not present, the title is. (per spec, at least.) rfc 822 conforming. rfc 822 conforming. RFC 822 conforming. fchannel title  channel link  rssTitle rssLink title  source URL title enclosure URL enclosure length enclosure type category Value  guid value  guid value  imageURL  imageTitle  imageLink  inputTitle  inputName  inputLink ff  provisionalSigbjorn Finne <sof@galois.com>None                     provisionalSigbjorn Finne <sof@galois.com>None     provisionalSigbjorn Finne <sof@galois.com>None!'The kinds of feed documents supported. %*The abstract type of feed items. Like the * type, the > representation of a value is as one of the different RSS item/entry  variants. *AThe abstract type of feed documents. The internal representation F is as whatever feed variant type the document was either imported or  has now been translated to. !"#$%&'()*+,-.!"#$%&'()*+,-.*.-,+%)('&!$#"!$#"%)('&*.-,+ provisionalSigbjorn Finne <sof@galois.com>None/'parseFeedFromFile fp'& reads in the contents of the file at fp;  the assumed encoding is UTF-8. 0'parseFeedString str' tries to parse the string str 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. 1' readRSS2 elt'3 tries to derive an RSS2.x, RSS-0.9x feed document  from the XML element e. 2' readRSS1 elt') tries to derive an RSS1.0 feed document  from the XML element e. 3' readAtom elt'' tries to derive an Atom feed document  from the XML element e. /0123/0123/0123/0123 provisionalSigbjorn Finne <sof@galois.com>None4' xmlFeed f' serializes a Feed document into a conforming  XML toplevel element. 4444 provisionalSigbjorn Finne <sof@galois.com>None5 toFeedDate! translates a calendar time into ' the format expected by the feed kind. 5555 provisionalSigbjorn Finne <sof@galois.com>None6789:;<=>?@ABCDEFGHIJKLMNOPQR6789:;<=>?@ABCDEFGHIJKLMNOPQR87;:<=>?@ABCDE96FGHIJKLMNOPQR6789:;<=>?@ABCDEFGHIJKLMNOPQR provisionalSigbjorn Finne <sof@galois.com>NoneU=Construct an empty feed document, intending to output it in  the fk feed format. aa+ sets the URL where an HTML version of the  feed is published. ba+ sets the URL where an HTML version of the  feed is published. e'withFeedDate dt' is the composition of c  and d$, setting both publication date and  last update date to dt(. Notice that RSS2.0 is the only format & supporting both pub and last-update. m'withItemPubDate dt' associates the creation/ publication date dt  with a feed item. nn is a synonym for m. o'withItemTitle myTitle' associates a new title, myTitle,  with a feed item. p'withItemAuthor auStr' associates new author info  with a feed item. q'withItemFeedLink name myFeed' associates the parent feed URL myFeed % with a feed item. It is labelled as name. r'withItemCommentLink url'/ sets the URL reference to the comment page to url. s'withItemEnclosure url mbTy len'/ sets the URL reference to the comment page to url. t'withItemId isURL id'4 associates new unique identifier with a feed item.  If isURL is ;, then the id is assumed to point to a valid web resource. u'withItemDescription desc'3 associates a new descriptive string (aka summary)  with a feed item. v'withItemRights rightStr'# associates the rights information rightStr  with a feed item. w'withItemTitle myLink' associates a new URL, myLink,  with a feed item. )STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx*!"#$STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx*!$#"UVWXYZT[_`abcdefghi\]^jklSowmnprsqtxuv)STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx2Translating between RSS formats; work in progress. provisionalSigbjorn Finne <sof@galois.com>Noneyz{|yz{||yz{yz{| !"#$%&'()*+,,-.//01234566789:;;<=>?@ABCDEFGHIJKLLMNOPQRSTUUVWXYYZ[\]^_`abHccdefghijklmnopqrsttuvwxyz{|}~          ! " # $ % & ' ( ) ) * + , - . / 0 1 1 2 3 4 5 6 7 8 9 : : ; < = > ? @ A B C D D E F G H I J K L L M N O P Q R S T U V W X Y Z [ t t \ ] ^ _ ` a K b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                 e g    f  kk:t_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL M     N O P Q R S   T  U V  W X Y Z [ \ ] ^ _   ` abcdefghijkl feed-0.3.9.1Text.Atom.Feed.LinkText.Atom.FeedText.Atom.Feed.ExportText.Atom.Feed.ImportText.Atom.Feed.Validate Text.Atom.PubText.Atom.Pub.ExportText.DublinCore.TypesText.RSS1.SyntaxText.RSS1.UtilsText.RSS1.ImportText.RSS1.ExportText.RSS.SyntaxText.RSS.ImportText.RSS.ExportText.Feed.TypesText.Feed.ImportText.Feed.ExportText.Feed.UtilText.Feed.QueryText.Feed.ConstructorText.Feed.Translate LinkRelation LinkOtherLinkViaLinkSelf LinkReplies LinkRelated LinkPreviousLinkPrevArchive LinkPaymentLinkNextArchiveLinkNext LinkLicenseLinkLast LinkFirst LinkEditMediaLinkEdit LinkEnclosure LinkCurrent LinkAlternateshowLinkRelation showLinkAttr InReplyTotal replyToTotalreplyToTotalOther InReplyTo replyToRef replyToHRef replyToType replyToSource replyToOtherreplyToContentPerson personName personURI personEmail personOtherSource sourceAuthorssourceCategoriessourceGenerator sourceIconsourceId sourceLinks sourceLogo sourceRightssourceSubtitle sourceTitle sourceUpdated sourceOther TextContent XHTMLString HTMLString TextStringLinklinkHreflinkRellinkType linkHrefLang linkTitle linkLength linkAttrs linkOther GeneratorgenURI genVersiongenTextCategorycatTerm catSchemecatLabelcatOther EntryContentExternalContent MixedContent XHTMLContent HTMLContentEntryentryId entryTitle entryUpdated entryAuthorsentryCategories entryContententryContributor entryLinksentryPublished entryRights entrySource entrySummaryentryInReplyToentryInReplyTotal entryAttrs entryOtherFeedfeedId feedTitle feedUpdated feedAuthorsfeedCategoriesfeedContributors feedGeneratorfeedIcon feedLinksfeedLogo feedRights feedSubtitle feedEntries feedAttrs feedOther MediaTypeDateNCNameURI txtToString newCategorynullFeed nullEntry nullGeneratornullLink nullSource nullPerson atom_prefixatom_thr_prefixatomNS atomThreadNS xmlns_atomxmlns_atom_threadatomNameatomAttratomNodeatomLeafatomThreadNameatomThreadAttratomThreadNodeatomThreadLeafxmlFeedxmlEntry xmlContent xmlCategoryxmlLink xmlSource xmlGenerator xmlAuthorxmlContributor xmlPerson xmlInReplyToxmlInReplyTotalxmlIdxmlIconxmlLogo xmlUpdated xmlPublished xmlRightsxmlTitle xmlSubtitle xmlSummaryxmlTextContentmbpNodespQNodespNodepQNodepLeafpQLeafpAttrpAttrspQAttrpManychildren elementFeed pTextContentpPerson pCategory pGeneratorpSourcepLinkpEntrypContent pInReplyTotal pInReplyToValidatorResultVTreeVLeafVNodeadvicedemandvalidmkTreeflattenT validateEntrycheckEntryAuthor checkCats checkContentscheckContributorcheckContentLink checkLinkscheckIdcheckPublished checkRights checkSource checkSummary checkTitle checkUpdatedcheckCat checkContent checkTerm checkAuthor checkPerson checkName checkEmailcheckUriAccept acceptType CategoriesCategoriesExternal Collection collectionURIcollectionTitlecollectionAcceptcollectionCatscollectionOther WorkspaceworkspaceTitle workspaceColsworkspaceOtherServiceserviceWorkspaces serviceOthershowServiceDocmkQNamemkElemmkLeafmkAttr xmlns_appappNSappName xmlService xmlWorkspace xmlCollection xmlCategories xmlAcceptDCInfoDC_Other DC_Rights DC_Coverage DC_Relation DC_Language DC_Source DC_Identifier DC_FormatDC_TypeDC_DateDC_Contributor DC_PublisherDC_Description DC_Subject DC_CreatorDC_TitleDCItemdcEltdcText infoToTagdc_element_names ContentInfo contentURI contentFormatcontentEncoding contentValue UpdatePeriod Update_YearlyUpdate_Monthly Update_Weekly Update_Daily Update_Hourly TaxonomyTopic taxonomyURI taxonomyLink taxonomyTitle taxonomyDesctaxonomyTopics taxonomyDC taxonomyOther TextInputInfo textInputURItextInputTitle textInputDesc textInputName textInputLink textInputDCtextInputOthertextInputAttrsItemitemURI itemTitleitemLinkitemDescitemDC itemTopics itemContent itemOther itemAttrsImageimageURI imageTitleimageURL imageLinkimageDC imageOther imageAttrsChannel channelURI channelTitle channelLink channelDescchannelImageURIchannelItemURIschannelTextInputURI channelDCchannelUpdatePeriodchannelUpdateFreqchannelUpdateBasechannelContent channelTopics channelOther channelAttrs feedVersion feedChannel feedImage feedItems feedTextInput feedTopics TimeString TitleString URIString nullChannel nullImagenullItemnullTextInputInfonullTaxonomyTopicnullContentInfoqualNamerss10NS rssPrefixrdfNS rdfPrefixsynNS synPrefixtaxNS taxPrefixconNS conPrefixdcNSdcPrefixrdfNamerssNamesynNameknown_rss_eltsknown_syn_elts known_dc_eltsknown_tax_eltsknown_con_eltsremoveKnownEltsremoveKnownAttrs elementToFeed RSSTextInputrssTextInputTitlerssTextInputDescrssTextInputNamerssTextInputLinkrssTextInputAttrsrssTextInputOtherRSSCloudrssCloudDomain rssCloudPort rssCloudPathrssCloudRegisterrssCloudProtocol rssCloudAttrsRSSImage rssImageURL rssImageTitle rssImageLink rssImageWidthrssImageHeight rssImageDesc rssImageOtherRSSGuidrssGuidPermanentURL rssGuidAttrs rssGuidValue RSSCategoryrssCategoryDomainrssCategoryAttrsrssCategoryValue RSSEnclosurerssEnclosureURLrssEnclosureLengthrssEnclosureTyperssEnclosureAttrs RSSSource rssSourceURLrssSourceAttrsrssSourceTitleRSSItem rssItemTitle rssItemLinkrssItemDescription rssItemAuthorrssItemCategoriesrssItemCommentsrssItemEnclosure rssItemGuidrssItemPubDate rssItemSource rssItemAttrs rssItemOther RSSChannelrssTitlerssLinkrssDescriptionrssItems rssLanguage rssCopyright rssEditor rssWebMaster rssPubDate rssLastUpdate rssCategories rssGeneratorrssDocsrssCloudrssTTLrssImage rssRating rssTextInput rssSkipHours rssSkipDaysrssChannelOther DateString URLStringRSS rssVersionrssAttrs rssChannelrssOthernullRSS nullEnclosurenullGuid nullPermaGuid nullCloud nullTextInputdcName elementToRSSelementToChannelelementToImageelementToCategoryelementToCloud elementToItemelementToSourceelementToEnclosure elementToGuidelementToTextInputelementToSkipHourselementToSkipDaysreadIntreadBoolqualNodexmlRSS xmlChannelxmlItem xmlEnclosurexmlGuidxmlImagexmlCloud xmlTextInput xmlSkipHours xmlSkipDaysxmlAttrxmlLeafFeedKindRDFKindRSSKindAtomKindXMLItemRSS1ItemAtomItemXMLFeedRSS1FeedRSSFeedAtomFeedparseFeedFromFileparseFeedStringreadRSS2readRSS1readAtomtoFeedDateString ItemGetter FeedGetter getFeedItems getFeedAuthor getFeedTitle getFeedHome getFeedHTMLgetFeedDescriptiongetFeedPubDategetFeedLastUpdate getFeedDategetFeedLogoLinkgetFeedLanguagegetFeedCategoriesgetFeedGenerator getItemTitle getItemLinkgetItemPublishDate getItemDate getItemAuthorgetItemCommentLinkgetItemEnclosuregetItemFeedLink getItemIdgetItemCategories getItemRightsgetItemSummarygetItemDescription ItemSetter FeedSetternewFeed feedFromRSS feedFromAtom feedFromRDF feedFromXML getFeedKindaddItem withFeedItemsnewItem getItemKind withFeedTitle withFeedHome withFeedHTMLwithFeedDescriptionwithFeedPubDatewithFeedLastUpdate withFeedDatewithFeedLogoLinkwithFeedLanguagewithFeedCategorieswithFeedGeneratoratomEntryToItem rssItemToItem rdfItemToItemwithItemPubDate withItemDate withItemTitlewithItemAuthorwithItemFeedLinkwithItemCommentLinkwithItemEnclosure withItemIdwithItemDescriptionwithItemRights withItemLinkwithItemCategories withAtomEntry withRSSItem withRSS1ItemtranslateItemToelementToItemsaddSyndication elementToDCelementToTaxonomyTopicelementToContent bagLeaves seqLeaves xmlImageURI xmlItemURIsxmlTextInputURIxmlDCxmlUpdatePeriod xmlUpdateFreqxmlContentItemsxmlContentInfo rdfResourcerdfValue xmlTopicsxmlTopicxmlEmptytoStr contentToStrghc-prim GHC.TypesTruefilterChildrenaddChildmapMaybeChildren toRSSItem toRDFItem toAtomItem