-- -*-mode: haskell; -*- {-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE OverloadedStrings #-} -- http://feedvalidator.org/check.cgi?url=http://www.okmij.org/ftp/rss.xml -- http://feedvalidator.org/check.cgi?url=http://okmij.org/ftp/rss.xml module Main (main) where import RSS import System.Environment (getArgs) content = CLHead HeadAttrs { ha_title = "What's new", ha_description = "list of updates to this whole site", ha_DateRevision = (5,May,2013), ha_top = FileURL "README.html", ha_history_first = CLURL "ChangeLog-16.html" (August,2011) (July,2012), ha_history_last = CLURL "ChangeLog-0.html" (December,1995) (August,1996) } (updates (update (5, May, 2013) (ui (FileURLA "Streams.html" "xml-incr") (a "Constant-space XML processing with well-formedness check")) (ui (FileURLA "Haskell/index.html" "unsafeInterleaveST") "A sharper example of" (a "Breaking referential transparency with unsafeInterleaveST")) (ui (FileURLA "Haskell/index.html" "lazyIO-not-True") "Better examples of" (a "Lazy IO breaking equational reasoning")) ) (update (5, April, 2013) (ui (FileURLA "Haskell/index.html" "lazyIO-not-True?") (a "Lazy IO breaks equational reasoning")) (ui (FileURL "meta-programming/Shonan1.html") (a "MetaOCaml as a domain-specific optimizer: Shonan Challenge 1")) ) (update (7, March, 2013) (ui (FileURL "ML/generalization.html") (a "Efficient and insightful type generalization")) (ui (FileURLA "ML/generalization.html" "gen-mismanagement") (a "What polymorphism and garbage collection have in common")) (ui (FileURLA "ML/generalization.html" "history") (a "History of discovery of type levels")) (ui (FileURLA "ML/generalization.html" "levels-OCaml") (a "Understanding parts of the OCaml type checker")) ) (update (5, February, 2013) (ui (FileURL "ML/MetaOCaml.html") (a "Re-implemented BER MetaOCaml N100 for OCaml 4.00.1")) (ui (FileURLA "meta-programming/HPC.html""shonan-challenge") (a "Shonan Challenge for Generative Programming:") "PEPM 2013 paper")) (update (1, January, 2013) (ui (FileURL "continuations/PPYield/index.html") (a "Simple Generators v. Lazy Evaluation")) (ui (FileURLA "continuations/PPYield/index.html" "gen-Haskell") (a "Simple generators in Haskell")) (ui (FileURLA "continuations/PPYield/index.html" "pp") (a "Incremental, Linear Pretty-printing")) (ui (FileURLA "kakuritu/logic-programming.html" "vs-prolog") (a "Non-deterministic choice in a conventional programming language:" "Enough for logic programming?")) (ui (FileURLA "ML/index.html" "ber-metaocaml") (a "BER MetaOCaml, version N004")) (ui (FileURLA "continuations/implementations.html" "delimcc-paper") (a "Delimited control in OCaml, abstractly and concretely:") "The greatly expanded, journal version of the paper") (ui (FileURLA "tagless-final/course/index.html" "lecture") (a "Typed Tagless Final Interpreters:") "published lecture notes") ) (update (1, December, 2012) (ui (FileURLA "typed-formatting/index.html" "dep-type") (a "Genuine dependent types and faking them") "on the example of type-safe printf") (ui (FileURLA "Streams.html" "xml") (a "Incremental XML parsing with Iteratees")) (ui (FileURLA "Haskell/types.html" "HList") "A new version of the" (a "HList") "library, with fancier kinds" "and more type-level computations with no run-time overhead") ) (update (5, November, 2012) (ui (FileURLA "kakuritu/logic-programming.html" "many") (a "Maximal munch, committed choice and nested inference")) (ui (FileURL "Haskell/impredicativity-bites.html") (a "Impredicativity Bites Further")) ) (update (9, October, 2012) (ui (FileURLA "kakuritu/logic-programming.html" "StrangeLoop") (a "Guess Lazily! Making a program guess, and guess well")) (ui (FileURLA "kakuritu/logic-programming.html" "parsec") (a "`Reversible' parser combinators")) (ui (FileURLA "meta-programming/HPC.html" "stencil") (a "Generating optimal stencil code:") "improved and simplified version. The generated code assuredly" "has no array-bound errors.") ) (update (1, September, 2012) (ui (FileURL "meta-programming/HPC.html") (a "Generating optimal stencil code:") "solving a Shonan Challenge problem") (ui (FileURLA "Haskell/misc.html" "unsafeInterleaveST") (a "Breaking referential transparency with unsafeInterleaveST")) (ui (FileURLA "Haskell/misc.html" "observe-strictness") (a "Observing strictness")) ) (update (9, August, 2012) (ui (FileURL "continuations/against-callcc.html") (a "An argument against call/cc")) (ui (FileURLA "continuations/against-callcc.html" "traps") (a "call/cc implements shift? A good question")) (ui (FileURLA "Scheme/xml.html" "typed-SXML") "A new version of" (a "HSXML: Typed SXML") "with overloaded string literals and many simplifications") ) ) main = do [arg] <- getArgs case arg of "HTML" -> runHTMLIO . run_root $ toHTML content "XML" -> runXMLIO . run_root $ toRSS content