<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://blog.greenberg.science/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/about/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/blog/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/crosswords/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/flapjax/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/formal-methods/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/javascript/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/jobs/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/networking/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/papers/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/posix-shell/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/presentations/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/programming-languages/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/software/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/submissions/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/teaching/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/categories/temporal-logic-and-verification/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/</loc>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/2021-recruiting/</loc>
        <lastmod>2021-09-17T10:25:53Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/2023-recruiting/</loc>
        <lastmod>2023-10-25T08:19:05-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/a-balance-of-power-expressive-analyzable-controller-programming/</loc>
        <lastmod>2014-01-30T13:19:55Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/a-new-term/</loc>
        <lastmod>2007-01-22T10:59:38Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/a-refinement-type-by-any-other-name/</loc>
        <lastmod>2015-03-16T23:28:54Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/adts-in-js18/</loc>
        <lastmod>2008-06-18T11:52:46Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/another-nasty-bug-and-an-idea/</loc>
        <lastmod>2007-03-30T11:28:49Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/answer-set-programming-powerhouse-tech/</loc>
        <lastmod>2022-11-07T11:10:38-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/attack-of-the-clonenodes/</loc>
        <lastmod>2007-03-31T14:59:23Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/axiomatizing-manifest-contracts/</loc>
        <lastmod>2013-10-13T16:50:15Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/boolopt-update-v11/</loc>
        <lastmod>2008-02-21T16:59:43Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/boolopt/</loc>
        <lastmod>2006-07-13T00:59:55Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/boomerang-v01-available/</loc>
        <lastmod>2008-07-25T14:20:30Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/bridging-the-gradual-typing-gap-at-oopsla-2021/</loc>
        <lastmod>2021-09-21T10:34:43Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/bug-in-polymorphic-contracts/</loc>
        <lastmod>2014-01-14T11:14:05Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/c-gc-leaks/</loc>
        <lastmod>2007-11-17T11:18:02Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/capture-this/</loc>
        <lastmod>2007-03-14T14:09:46Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/cast-notation-a-case-study/</loc>
        <lastmod>2020-10-01T00:17:28Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/clr-hegemony/</loc>
        <lastmod>2006-12-04T21:50:13Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/collapsible-contracts-spaceefficient-contracts-in-racket/</loc>
        <lastmod>2018-11-12T11:49:13Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/computer-science-at-a-small-liberal-arts-college/</loc>
        <lastmod>2017-10-10T11:31:04Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/computer-security-in-the-face-of-a-hostile-government/</loc>
        <lastmod>2016-12-12T19:33:07Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/concurrent-netcore-from-policies-to-pipelines/</loc>
        <lastmod>2014-03-03T12:46:21Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/contracts-firstorder-interlopers-in-a-higherorder-world/</loc>
        <lastmod>2014-10-17T17:10:50Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/contracts-made-manifest-final-version/</loc>
        <lastmod>2009-11-03T12:03:30Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/contracts-made-manifest/</loc>
        <lastmod>2009-07-30T16:31:49Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/cultural-criticism-and-tech/</loc>
        <lastmod>2014-12-12T13:06:21Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/debounce-and-other-callback-combinators/</loc>
        <lastmod>2009-03-25T11:27:48Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/disjointness-of-subset-types/</loc>
        <lastmod>2016-04-14T17:50:33Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/esop-2011-papers/</loc>
        <lastmod>2011-01-04T10:30:01Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/exceptionally-available-dynamic-ifc/</loc>
        <lastmod>2012-07-16T16:50:17Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/flapjax-a-programming-language-for-ajax-applications/</loc>
        <lastmod>2009-08-13T12:00:29Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/flapjax-on-pl-perspectives/</loc>
        <lastmod>2019-12-03T08:23:27Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/flapjax-templates/</loc>
        <lastmod>2006-10-25T14:40:31Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/flapjax-tr/</loc>
        <lastmod>2009-04-15T10:44:25Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/flapjax/</loc>
        <lastmod>2006-10-12T22:40:41Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/formulog-ml-datalog-smt/</loc>
        <lastmod>2020-08-07T12:47:05Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/fp-fairytale-programming/</loc>
        <lastmod>2006-08-02T20:10:29Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/google-email-masking/</loc>
        <lastmod>2006-11-28T17:32:09Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/gravatar-support/</loc>
        <lastmod>2009-05-31T14:40:14Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/heaven-hell-or-hoboken/</loc>
        <lastmod>2021-09-17T09:58:31Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/how-to-cook-a-kat-for-your-pet-theory/</loc>
        <lastmod>2022-05-13T10:34:53-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/how-to-give-a-good-talk/</loc>
        <lastmod>2025-02-27T18:06:33-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/installing-ctypes-and-ctypesforeign-on-os-x-with-brew-and-opam/</loc>
        <lastmod>2016-02-10T17:04:56Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/javascript-protection/</loc>
        <lastmod>2006-07-04T05:27:51Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/js2es4/</loc>
        <lastmod>2007-11-30T11:19:29Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/lifting-in-flapjax/</loc>
        <lastmod>2007-08-11T20:22:04Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/llvm-31-haskell-741-and-os-x/</loc>
        <lastmod>2012-08-01T10:50:35Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/locally-installing-llvm-with-ocaml-bindings/</loc>
        <lastmod>2009-09-24T15:44:31Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/lovelace-and-babbage-vs-the-organist/</loc>
        <lastmod>2011-01-19T14:33:35Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/materialize-introspection/</loc>
        <lastmod>2025-02-05T19:03:00-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/mgrnbrg-on-twitter/</loc>
        <lastmod>2012-02-01T11:07:58Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/minnowbrook-2025/</loc>
        <lastmod>2025-05-30T16:21:41-04:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/more-on-this/</loc>
        <lastmod>2007-03-26T15:28:06Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/multireturn-function-call/</loc>
        <lastmod>2006-10-01T02:02:50Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/mute-silence-a-running-command/</loc>
        <lastmod>2025-04-01T11:17:25-04:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/nested-functions-in-gcc/</loc>
        <lastmod>2010-03-03T11:06:40Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/new-and-improved-spaceefficient-manifest-contracts/</loc>
        <lastmod>2014-07-08T13:35:57Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/new-blog-who-dis/</loc>
        <lastmod>2024-12-15T14:44:02-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/new-paper-word-expansion-supports-posix-shell-interactivity/</loc>
        <lastmod>2018-03-15T20:43:29Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/njpls-fall-2012/</loc>
        <lastmod>2012-11-15T16:33:26Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/obt-on-hiatus/</loc>
        <lastmod>2019-05-13T11:00:55Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/openaccess-venue-for-theoretical-computer-science/</loc>
        <lastmod>2009-04-30T21:58:00Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phd-thesis-manifest-contracts/</loc>
        <lastmod>2013-12-31T15:14:30Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-11/</loc>
        <lastmod>2006-06-26T19:44:18Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-110/</loc>
        <lastmod>2011-10-05T11:48:48Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-111/</loc>
        <lastmod>2011-10-11T09:47:02Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-112-unicode-support/</loc>
        <lastmod>2014-01-15T01:08:51Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-1121-php-is-laughably-bad-edition/</loc>
        <lastmod>2014-01-15T11:01:08Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-113/</loc>
        <lastmod>2015-02-09T15:55:36Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-114/</loc>
        <lastmod>2016-08-19T09:32:55Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-12/</loc>
        <lastmod>2007-02-26T15:17:27Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-13/</loc>
        <lastmod>2009-02-03T14:07:48Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-14/</loc>
        <lastmod>2009-05-18T13:20:31Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-15/</loc>
        <lastmod>2009-05-23T10:44:31Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-16/</loc>
        <lastmod>2009-08-18T17:11:41Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-17/</loc>
        <lastmod>2010-05-03T14:49:14Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-18/</loc>
        <lastmod>2011-02-21T21:05:18Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-19/</loc>
        <lastmod>2011-03-15T16:16:49Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/phpenkoder-now-in-wordpress-plugin-directory/</loc>
        <lastmod>2008-10-24T18:50:03Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/plvnet/</loc>
        <lastmod>2014-12-02T12:51:17Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/polymorphic-contracts/</loc>
        <lastmod>2010-10-27T11:27:00Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/pomona-college-is-hiring/</loc>
        <lastmod>2021-09-13T11:59:58Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/popl-2010/</loc>
        <lastmod>2010-01-22T10:22:37Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/popl-cocktail-hour/</loc>
        <lastmod>2021-01-16T18:49:09Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/popl2026-tutorial/</loc>
        <lastmod>2026-03-26T09:58:56-04:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/practical-ocaml/</loc>
        <lastmod>2008-10-29T17:30:03Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/processing-semistructured-data-in-the-unix-shell/</loc>
        <lastmod>2021-06-29T10:07:35Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/program-synthesis-talk/</loc>
        <lastmod>2006-06-24T06:20:47Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/puzzle-correspondence-of-a-sort/</loc>
        <lastmod>2008-01-18T01:24:56Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/quickredex/</loc>
        <lastmod>2012-02-01T15:18:01Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/racist-bullshit-in-mathematics/</loc>
        <lastmod>2020-09-10T14:41:50Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/scheduling-the-discussion-order-at-pc-meetings/</loc>
        <lastmod>2014-10-03T09:08:35Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/semantics-for-exceptions-and-interrupts/</loc>
        <lastmod>2007-01-08T17:24:22Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/sigplan-blog-making-pl-ideas-accessible/</loc>
        <lastmod>2021-04-13T12:25:33Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/smart-constructors-are-smarter-than-you-think/</loc>
        <lastmod>2020-05-07T12:50:01Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/smoosh-v01/</loc>
        <lastmod>2019-05-15T15:05:07Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/solution-correspondence-of-a-sort/</loc>
        <lastmod>2008-02-01T09:14:15Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/spaceefficient-manifest-contracts-at-popl-15/</loc>
        <lastmod>2014-10-28T11:19:02Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/spaceefficient-manifest-contracts/</loc>
        <lastmod>2013-07-12T11:26:32Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/summarizing-performance-numbers/</loc>
        <lastmod>2021-12-14T18:02:36Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-big-brzozowski/</loc>
        <lastmod>2020-05-08T18:29:07Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-dynamic-practice-and-static-theory-of-gradual-typing/</loc>
        <lastmod>2019-04-16T09:37:47Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-joy-of-specs/</loc>
        <lastmod>2006-07-02T10:35:37Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-price-of-clonenode/</loc>
        <lastmod>2007-04-04T17:22:23Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-resurgence-of-parallelism/</loc>
        <lastmod>2010-05-29T05:17:20Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-university-of-pennsylvania/</loc>
        <lastmod>2007-04-16T17:27:37Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/the-worlds-largest-scheme-installbase-is/</loc>
        <lastmod>2009-01-14T08:39:45Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/towards-a-core-calculus-for-implicitly-migrationcapable-applications/</loc>
        <lastmod>2011-10-25T12:38:31Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/twitter-bots-and-oauth/</loc>
        <lastmod>2015-02-09T22:37:13Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/type-theory-comes-of-age/</loc>
        <lastmod>2010-02-12T10:18:37Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/weaselhat/</loc>
        <lastmod>2006-06-21T12:07:57Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/what-to-define-when-youre-defining-gradual-type-systems/</loc>
        <lastmod>2020-08-13T16:53:41Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/whats-hard-about-grad-school/</loc>
        <lastmod>2022-06-09T10:51:06-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/when-is-program-synthesis-worthwhile/</loc>
        <lastmod>2022-05-24T09:52:49-05:00</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/worldwide-enkoder-domination/</loc>
        <lastmod>2006-11-26T11:12:51Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/writing-in-computer-science/</loc>
        <lastmod>2007-12-05T17:07:40Z</lastmod>
    </url>
    <url>
        <loc>https://blog.greenberg.science/posts/xsugar/</loc>
        <lastmod>2007-02-07T15:31:14Z</lastmod>
    </url>
</urlset>
