q      !"#$%&'()*+,-./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[\]^_`abcdefghijklmnop provisional Don Stewart <dons@galois.com> -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]       provisionalDon Stewart <dons@galois.com>l !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIthe tag/term of the category. J8optional URL for identifying the categorization scheme. K%human-readable label of the category L%unknown elements, for extensibility. MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~l !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~lyxwvefghijklmnopqrstuzSTUVWXYZ[\]^_`abcd{MRQPONGHIJKL|BCDEF}9:;<=>?@A~5876'()*+,-./01234!"#$%& l  !"#$%&"#$%&' ()*+,-./01234()*+,-./0123458766789:;<=>?@A:;<=>?@ABCDEFCDEFGHIJKLHIJKLMRQPONNOPQRSTUVWXYZ[\]^_`abcdTUVWXYZ[\]^_`abcdefghijklmnopqrstufghijklmnopqrstuvwxyz{|}~ provisionalDon Stewart <dons@galois.com>%%%% provisionalDon Stewart <dons@galois.com>,Types for the Atom Publishing Protocol (APP) provisionalDon Stewart <dons@galois.com>Serializing APP types (as XML.) provisionalDon Stewart <dons@galois.com>  provisionalDon Stewart <dons@galois.com>VThe 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                       provisionalDon Stewart <dons@galois.com> !"#$%&'()*+,-./0123 !"#$%&'()*+,-./0123 !"#$%&'()*+,-./0123 !"#$%&'()*+,-./0123  provisionalDon Stewart <dons@galois.com>Y456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Y456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Yxyz{|}~ghijklmnopqrstuvw^_`abcdefSTUVWXYZ[\]IJKLMNOPQR@ABCDEFGH:?>=<;456789Y45678956789:?>=<;;<=>?@ABCDEFGHABCDEFGHI JKLMNOPQRJKLMNOPQRS TUVWXYZ[\]TUVWXYZ[\]^_`abcdef_`abcdefghijklmnopqrstuvwhijklmnopqrstuvwx yz{|}~yz{|}~  provisionalDon Stewart <dons@galois.com> qrstuvwxyz{|  provisionalDon Stewart <dons@galois.com>}~  provisionalDon Stewart <dons@galois.com>ffff  provisionalDon Stewart <dons@galois.com>     provisionalDon Stewart <dons@galois.com>                 provisionalDon Stewart <dons@galois.com>'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. %&'( !"#$%&'($('&%#"! #"!  !"#$('&%%&'( provisionalDon Stewart <dons@galois.com>)*)*)*)* provisionalDon Stewart <dons@galois.com>++++ provisionalDon Stewart <dons@galois.com>,-./0123456789:;<=>?@ABCDEF,-./0123456789:;<=>?@ABCDEF.-1023456789:;/,<=>?@ABCDEF,-./0123456789:;<=>?@ABCDEF provisional Don Stewart <dons@galois.com> )GHI=Construct an empty feed document, intending to output it in  the fk feed format. JKLMNOPQRSTUU+ sets the URL where an HTML version of the  feed is published. VU+ sets the URL where an HTML version of the  feed is published. WXY'withFeedDate dt' is the composition of W  and X$, setting both publication date and  last update date to dt(. Notice that RSS2.0 is the only format & supporting both pub and last-update. Z[\]^_`a'withItemPubDate dt' associates the creation/ publication date dt  with a feed item. bb is a synonym for a. c'withItemTitle myTitle' associates a new title, myTitle,  with a feed item. d'withItemAuthor auStr' associates new author info  with a feed item. e'withItemFeedLink name myFeed' associates the parent feed URL myFeed % with a feed item. It is labelled as name. f'withItemCommentLink url'/ sets the URL reference to the comment page to url. g'withItemEnclosure url mbTy len'/ sets the URL reference to the comment page to url. h'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. i'withItemDescription desc'3 associates a new descriptive string (aka summary)  with a feed item. j'withItemRights rightStr'# associates the rights information rightStr  with a feed item. k'withItemTitle myLink' associates a new URL, myLink,  with a feed item. l*GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl*IJKLMNHOSTUVWXYZ[\]PQR^_`Gckabdfgehlij&GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl3Translating between RSS formats; work in progress.  provisional Don Stewart <dons@galois.com> mnopmnoppmnomnop !"#$%&'()*++,-../01234556789::;<=>?@ABCDEFGHIJKKLMNOPQRSSTUVWWXYZ[\]^_`Gaabcdefghijklmnopqrrstuvwxyz{|}~            ! " # $ % & ' ( ) * + , - . / 0 1 2 2 3 4 5 6 7 8 9 : ; < = = > ? @ A B C D E E F G H I J K L M N N O P Q R S T U V W X X Y Z [ \ ] ^ _ ` ` a b c d e f g h i j k l m n o r r p q r s t u J v w x y z { | } ~                                                                                              y {    z  Nrs      !"#$%&'()*+,-./0123456789:;<=>?@AB C     D E F G H I J   K  L M  N O P Q R S T U V   W XYZ[\]^_`abcdef feed-0.3.1Text.Atom.Feed.LinkText.Atom.FeedText.Atom.Feed.ExportText.Atom.Feed.ImportText.Atom.Feed.Validate Text.Atom.PubText.Atom.Pub.ExportText.DublinCore.TypesText.RSS1.UtilsText.RSS1.SyntaxText.RSS1.ImportText.RSS1.ExportText.RSS.SyntaxText.RSS.ImportText.RSS.ExportText.Feed.TypesText.Feed.ImportText.Feed.ExportText.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 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 MediaTypeDateNCNameURInullFeed nullEntry newCategory 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_namesqualNamerss10NS rssPrefixrdfNS rdfPrefixsynNS synPrefixtaxNS taxPrefixconNS conPrefixdcNSdcPrefixrdfNamerssNamesynNameknown_rss_eltsknown_syn_elts known_dc_eltsknown_tax_eltsknown_con_eltsremoveKnownEltsremoveKnownAttrs 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 nullImagenullItemnullTextInputInfonullTaxonomyTopicnullContentInfo 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 nullTextInput elementToRSSelementToChannelelementToImageelementToCategoryelementToCloud elementToItemelementToSourceelementToEnclosure elementToGuidelementToTextInputelementToSkipHourselementToSkipDaysreadIntreadBoolqualNodexmlRSS xmlChannelxmlItem xmlEnclosurexmlGuidxmlImagexmlCloud xmlTextInput xmlSkipHours xmlSkipDaysxmlAttrxmlLeafFeedKindRDFKindRSSKindAtomKindXMLItemRSS1ItemAtomItemXMLFeedRSS1FeedRSSFeedAtomFeedparseFeedFromFileparseFeedString ItemGetter FeedGetter getFeedItems getFeedAuthor getFeedTitle getFeedHome getFeedHTMLgetFeedDescriptiongetFeedPubDategetFeedLastUpdate getFeedDategetFeedLogoLinkgetFeedLanguagegetFeedCategoriesgetFeedGenerator getItemTitle getItemLinkgetItemPublishDate getItemDate getItemAuthorgetItemCommentLinkgetItemEnclosuregetItemFeedLink getItemIdgetItemCategories getItemRights ItemSetter FeedSetternewFeed feedFromRSS feedFromAtom feedFromRDF feedFromXML getFeedKindaddItem withFeedItemsnewItem getItemKind withFeedTitle withFeedHome withFeedHTMLwithFeedDescriptionwithFeedPubDatewithFeedLastUpdate withFeedDatewithFeedLogoLinkwithFeedLanguagewithFeedCategorieswithFeedGeneratoratomEntryToItem rssItemToItem rdfItemToItemwithItemPubDate withItemDate withItemTitlewithItemAuthorwithItemFeedLinkwithItemCommentLinkwithItemEnclosure withItemIdwithItemDescriptionwithItemRights withItemLinkwithItemCategories withAtomEntry withRSSItem withRSS1ItemtranslateItemToelementToItemsaddSyndication elementToDCelementToTaxonomyTopicelementToContent bagLeaves bagElements seqLeaves xmlImageURI xmlItemURIsxmlTextInputURIxmlDCxmlUpdatePeriod xmlUpdateFreqxmlContentItemsxmlContentInfo rdfResourcerdfValue xmlTopicsxmlTopicxmlEmptyreadRSS2readRSS1readAtomtoStr contentToStrghc-primGHC.BoolTruefilterChildrenaddChildmapMaybeChildren toRSSItem toRDFItem toAtomItem