<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Functional</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/11/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>The Verse Calculus: a Core Calculus for Functional Logic Programming</title>
 <link>http://lambda-the-ultimate.org/node/5662</link>
 <description>The Verse Calculus: a Core Calculus for Functional Logic Programming
&lt;p &gt;&lt;a href=&quot;https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf&quot;&gt;https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf&lt;/a&gt;&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;LENNART AUGUSTSSON, Epic Games, Sweden&lt;/li&gt;
&lt;li &gt;JOACHIM BREITNER&lt;/li&gt;
&lt;li &gt;KOEN CLAESSEN, Epic Games, Sweden&lt;/li&gt;
&lt;li &gt;RANJIT JHALA, Epic Games, USA&lt;/li&gt;
&lt;li &gt;SIMON PEYTON JONES, Epic Games, United Kingdom&lt;/li&gt;
&lt;li &gt;OLIN SHIVERS, Epic Games, USA/li&amp;gt;
&lt;li &gt;TIM SWEENEY, Epic Games, USA&lt;/li&gt;
&lt;/ul&gt;
&lt;p &gt;
Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this&lt;br &gt;
paper we describe the Verse calculus, VC, a new core calculus for functional logical programming. Our main&lt;br &gt;
contribution is to equip VC with a small-step rewrite semantics, so that we can reason about a VC program&lt;br &gt;
in the same way as one does with lambda calculus; that is, by applying successive rewrites to it.
&lt;/p&gt;
&lt;P &gt;&lt;br &gt;
This draft paper describes our current thinking about Verse. It is very much a work in progress, not a finished&lt;br &gt;
product. The broad outlines of the design are stable. However, the details of the rewrite rules may well change; we&lt;br &gt;
think that the current rules are not confluent, in tiresome ways. (If you are knowledgeable about confluence proofs,&lt;br &gt;
please talk to us!)We are eager to enagage in a dialogue with the community. Please do write to us.
&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Mon, 12 Dec 2022 16:23:17 +0000</pubDate>
</item>
<item>
 <title>Latent Effects for Reusable Language Components</title>
 <link>http://lambda-the-ultimate.org/node/5640</link>
 <description>&lt;p &gt;Latent Effects for Reusable Language Components, by Birthe van den Berg, Tom Schrijvers, Casper Bach Poulsen, Nicolas Wu:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;The development of programming languages can be quite complicated and costly. Hence, much effort has been devoted to the modular definition of language features that can be reused in various combinations to define new languages and experiment with their semantics. A notable outcome of these efforts is the algebra-based “datatypes &quot;a la carte&quot; (DTC) approach. When combined with algebraic effects, DTC can model a wide range of common language features. Unfortunately, the&lt;br &gt;
current state of the art does not cover modular definitions of advanced control-flow mechanisms that defer execution to an appropriate point, such as call-by-name and call-by-need evaluation, as well as (multi-)staging. This paper defines latent effects, a generic class of such control-flow mechanisms. We demonstrate how function abstractions, lazy computations and a MetaML-like staging can all be expressed in a modular fashion using latent effects, and how they can be combined in various ways to obtain complex semantics. We provide a full Haskell implementation of our effects and handlers with a range of examples.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Looks like a nice generalization of the basic approach taken by algebraic effects to more subtle contexts. Algebraic effects &lt;a href=&quot;https://duckduckgo.com/?q=site%3Alambda-the-ultimate.org%2F+algebraic+effects&amp;amp;atb=v213-1&amp;amp;ia=web&quot;&gt;have been discussed here on LtU many times&lt;/a&gt;. I think this description from section 2.3 is a pretty good overview of their approach:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;LE&amp;amp;H is based on a different, more sophisticated structure than AE&amp;amp;H’s free monad. This structure supports non-atomic operations (e.g., function abstraction, thunking, quoting) that contain or delimit computations whose execution may be deferred. Also, the layered handling is different. The idea is still the same, to replace bit by bit the structure of the tree by its meaning. Yet, while AE&amp;amp;H grows the meaning around the shrinking tree, LE&amp;amp;H grows little “pockets of meaning” around the individual nodes remaining in the tree, and not just around the root. The latter supports deferred effects because later handlers can still re-arrange the semantic pockets created by earlier handlers.&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/35">Effects</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Thu, 14 Oct 2021 14:02:48 +0000</pubDate>
</item>
<item>
 <title>Selective Functors</title>
 <link>http://lambda-the-ultimate.org/story-selective-functors</link>
 <description>&lt;p &gt;From Andrey Mokhov&#039;s twitter feed:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Is there any intermediate abstraction between applicative functors and monads? And if yes, what is it? In a new paper with @geo2A, @simonmar and @dimenix we explore &quot;selective functors&quot;, which are essentially applicative functors with branching: &lt;a href=&quot;https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf&quot;&gt;https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p &gt;We&#039;ve implemented selective functors in Haskell: &lt;a href=&quot;https://github.com/snowleopard/selective&quot;&gt;https://github.com/snowleopard/selective&lt;/a&gt;, OCaml: &lt;a href=&quot;https://github.com/snowleopard/selective-ocaml&quot;&gt;https://github.com/snowleopard/selective-ocaml&lt;/a&gt;, and even Coq: &lt;a href=&quot;https://github.com/tuura/selective-theory-coq&quot;&gt;https://github.com/tuura/selective-theory-coq&lt;/a&gt; (the Coq repository contains some proofs of correctness that our selective instances are lawful). And there is also a PureScript fork!&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <pubDate>Tue, 05 Mar 2019 17:12:26 +0000</pubDate>
</item>
<item>
 <title> ICFP Programming Contest 2018</title>
 <link>http://lambda-the-ultimate.org/node/5540</link>
 <description>&lt;p &gt;Yep, it &lt;a href=&quot;https://icfpcontest2018.github.io/&quot;&gt;on&lt;/a&gt;!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Sat, 21 Jul 2018 06:45:18 +0000</pubDate>
</item>
<item>
 <title>Sequent Calculus as a Compiler Intermediate Language</title>
 <link>http://lambda-the-ultimate.org/node/5519</link>
 <description>&lt;p &gt;&lt;a href=&quot;https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/sequent-calculus-icfp16.pdf&quot;&gt;Sequent Calculus as a Compiler Intermediate Language&lt;/a&gt;&lt;br &gt;
2016 by Paul Downen, Luke Maurer, Zena M. Ariola, Simon Peyton Jones&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
The typed λ-calculus arises canonically as the term language for a logic called natural deduction, using the Curry-Howard isomorphism: the pervasive connection between logic and programming languages asserting that propositions are types and proofs are programs. Indeed, for many people, the λ-calculus is the living embodiment of Curry-Howard.&lt;/p&gt;
&lt;p &gt;But natural deduction is not the only logic! Conspicuously, natural deduction has a twin, born in the very same paper, called the sequent calculus. Thanks to the Curry-Howard isomorphism, terms of the sequent calculus can also be seen as a programming language with an emphasis on control flow.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Mon, 02 Apr 2018 17:06:41 +0000</pubDate>
</item>
<item>
 <title>Resource Polymorphism</title>
 <link>http://lambda-the-ultimate.org/node/5511</link>
 <description>&lt;p &gt;&lt;a href=&quot;https://arxiv.org/abs/1803.02796&quot;&gt;Resource Polymorphism&lt;/a&gt;, by Guillaume Munch-Maccagnoni:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;We present a resource-management model for ML-style programming languages, designed to be compatible with the OCaml philosophy and runtime model. This is a proposal to extend the OCaml language with destructors, move semantics, and resource polymorphism, to improve its safety, efficiency, interoperability, and expressiveness. It builds on the ownership-and-borrowing models of systems programming languages (Cyclone, C++11, Rust) and on linear types in functional programming (Linear Lisp, Clean, Alms). It continues a synthesis of resources from systems programming and resources in linear logic initiated by Baker. &lt;/p&gt;
&lt;p &gt;It is a combination of many known and some new ideas. On the novel side, it highlights the good mathematical structure of Stroustrup&#039;s &quot;Resource acquisition is initialisation&quot; (RAII) idiom for resource management based on destructors, a notion sometimes confused with finalizers, and builds on it a notion of resource polymorphism, inspired by polarisation in proof theory, that mixes C++&#039;s RAII and a tracing garbage collector (GC).&lt;br &gt;
The proposal targets a new spot in the design space, with an automatic and predictable resource-management model, at the same time based on lightweight and expressive language abstractions. It is backwards-compatible: current code is expected to run with the same performance, the new abstractions fully combine with the current ones, and it supports a resource-polymorphic extension of libraries. It does so with only a few additions to the runtime, and it integrates with the current GC implementation. It is also compatible with the upcoming multicore extension, and suggests that the Rust model for eliminating data-races applies. &lt;/p&gt;
&lt;p &gt;Interesting questions arise for a safe and practical type system, many of which have already been thoroughly investigated in the languages and prototypes Cyclone, Rust, and Alms.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;An ambitious goal, and it would be an incredibly useful addition to OCaml. Might even displace Rust in some places, since you can theoretically avoid triggering the GC, but you have the excellent GC available when needed. This is definitely a pain point for Rust.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Thu, 08 Mar 2018 14:40:49 +0000</pubDate>
</item>
<item>
 <title>How efficient is partial sharing?</title>
 <link>http://lambda-the-ultimate.org/node/5483</link>
 <description>&lt;p &gt;Partial sharing graphs offer a reduction model for the lambda calculus that is optimal in a sense put forward by Jean Jacques Levy.  This model has seen interest wax and wane: initially it was thought to offer the most efficient possible technology for implementing the lambda calculus, but then an important result showed that bookkeeping overheads of any such model could be very high (Asperti &amp;amp; Mairson 1998).   This result had a chilling effect on the initial wave of excitement over the technology.&lt;/p&gt;
&lt;p &gt;Now Stefano Guerrini, one of the early investigators of partial sharing graphs, has an article with Marco Solieri (Guerrini &amp;amp; Solieri 2017) arguing that the gains from optimality can be very high and that partial sharing graphs can be relatively close to the best possible efficiency, within a quadratic factor on a conservative analysis (this is relatively close in terms of elementary recursion).  Will the argument and result lead to renewed interest in partial sharing graphs from implementors of functional programming?  We&#039;ll see...&lt;/p&gt;
&lt;p &gt;(Asperti &amp;amp; Mairson 1998) &lt;a href=&quot;https://pdfs.semanticscholar.org/8b45/191007fb5a2238c53a32c851b72424b9cb76.pdf&quot;&gt;Parallel beta reduction is not elementary recursive&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;(Guerrini &amp;amp; Solieri 2017) &lt;a href=&quot;http://drops.dagstuhl.de/opus/volltexte/2017/7733/pdf/LIPIcs-FSCD-2017-17.pdf&quot;&gt;Is the Optimal Implementation inefficient?  Elementarily not&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Tue, 07 Nov 2017 16:39:42 +0000</pubDate>
</item>
<item>
 <title>Is Haskell the right language for teaching functional programming principles? </title>
 <link>http://lambda-the-ultimate.org/node/5481</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://profsjt.blogspot.co.il/2017/10/is-haskell-right-language-for-teaching.html&quot;&gt;No!&lt;/a&gt; (As Simon Thompson explains.)&lt;br &gt;
You cannot not love the &quot;exploration of the length function&quot; at the bottom. Made me smile in the middle of running errands.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Mon, 16 Oct 2017 19:18:08 +0000</pubDate>
</item>
<item>
 <title>A unified approach to solving seven programming problems </title>
 <link>http://lambda-the-ultimate.org/node/5470</link>
 <description>&lt;p &gt;A &lt;a href=&quot;http://dl.acm.org/citation.cfm?id=3110252&amp;amp;CFID=805521128&amp;amp;CFTOKEN=83435544&amp;amp;preflayout=flat&quot;&gt;fun pearl&lt;/a&gt; by William E. Byrd, Michael Ballantyne, Gregory Rosenblatt, and Matthew Might from ICFP: seven programming challenges solved (easily!) using a &lt;I &gt;relational&lt;/I&gt; interpreter. One challenge, for example, is to find quines. Another is to find programs that produce different results with lexical vs. dynamic scope.&lt;/p&gt;
&lt;p &gt;The interpreter is implemented in miniKanren (of course), inside Racket (of course).  &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/5">Fun</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/13">Logic/Declarative</category>
 <pubDate>Mon, 04 Sep 2017 18:44:29 +0000</pubDate>
</item>
<item>
 <title>ICFP 2017 live streaming</title>
 <link>http://lambda-the-ultimate.org/node/5469</link>
 <description>&lt;p &gt;If you are one of the few LtU-ers not presenting (just kidding...), you can get your functional programming fix by following the &lt;a href=&quot;https://livestream.com/oxuni/ICFP-2017&quot;&gt;live stream&lt;/a&gt; from ICFP, starting tomorrow at 11:00 (UK). Want to know when to tune in? Check out the incredible &lt;a href=&quot;http://icfp17.sigplan.org/program/program-icfp-2017&quot;&gt;program&lt;/a&gt;!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Sun, 03 Sep 2017 18:35:27 +0000</pubDate>
</item>
<item>
 <title>Proceedings of the ACM on Programming Languages</title>
 <link>http://lambda-the-ultimate.org/node/5468</link>
 <description>&lt;blockquote &gt;&lt;p &gt;
&lt;a href=&quot;http://pacmpl.acm.org/&quot;&gt;Proceedings of the ACM on Programming Languages&lt;/a&gt; (PACMPL) is a Gold Open Access journal publishing research on all aspects of programming languages, from design to implementation and from mathematical formalisms to empirical studies. Each issue of the journal is devoted to a particular subject area within programming languages and will be announced through publicized Calls for Papers.&lt;/blockquote&gt;
&lt;p &gt;
See the ToC of the September 2017, ICFP issue, &lt;a href=&quot;http://dl.acm.org/citation.cfm?id=3136534&amp;amp;picked=prox&amp;amp;CFID=803742012&amp;amp;CFTOKEN=36001311&quot;&gt;here&lt;/a&gt;. Some very cool stuff.&lt;p &gt;
Congrats!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Wed, 30 Aug 2017 21:05:36 +0000</pubDate>
</item>
<item>
 <title>Review of Graham Hutton&#039;s Programming in Haskell, 2e </title>
 <link>http://lambda-the-ultimate.org/node/5465</link>
 <description>&lt;p &gt;A &lt;a href=&quot;http://profsjt.blogspot.co.il/2017/08/review-of-graham-huttons-programming-in.html&quot;&gt;concise review&lt;/a&gt; by Simon Thompson of the second edition of Graham Hutton&#039;s &lt;i &gt;Programming in Haskell&lt;/i&gt;. The first edition was published in 2007, but chapters were written &lt;a href=&quot;http://lambda-the-ultimate.org/node/199&quot;&gt;earlier&lt;/a&gt;, and the review focuses on how the language has changed since then, embracing the &quot;categorical / algebraic approach more fully&quot;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Thu, 17 Aug 2017 18:19:26 +0000</pubDate>
</item>
<item>
 <title>RustBelt: Securing the Foundations of the Rust Programming Language</title>
 <link>http://lambda-the-ultimate.org/node/5448</link>
 <description>&lt;p &gt;&lt;a href=&quot;https://www.ralfj.de/blog/2017/07/08/rustbelt.html&quot;&gt;RustBelt: Securing the Foundations of the Rust Programming Language&lt;/a&gt; by Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, Derek Dreyer:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Rust is a new systems programming language that promises to overcome the seemingly fundamental tradeoff between high-level safety guarantees and low-level control over resource management. Unfortunately, none of Rust’s safety claims have been formally proven, and there is good reason to question whether they actually hold. Specifically, Rust employs a strong, ownership-based type system, but then extends the expressive power of this core type system through libraries that internally use unsafe features. In this paper, we give the first formal (and machine-checked) safety proof for a language representing a realistic subset of Rust. Our proof is extensible in the sense that, for each new Rust library that uses unsafe features, we can say what verification condition it must satisfy in order for it to be deemed a safe extension to the language. We have carried out this verification for some of the most important libraries that are used throughout the Rust ecosystem.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Rust is definitely pushing the envelope in a new direction, but there&#039;s always a little wariness around using libraries that make use of unsafe features, since &quot;safety with performance&quot; is a main reason people want to use Rust. So this is a great step in the right direction!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/12">Object-Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Mon, 10 Jul 2017 15:14:45 +0000</pubDate>
</item>
<item>
 <title>YOW! Lambda Jam 2017: John Hughes - Why Functional Programming Matters </title>
 <link>http://lambda-the-ultimate.org/node/5446</link>
 <description>&lt;p &gt;Why FP &lt;i &gt;still&lt;/i&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=vGVJYoKIzjU&quot;&gt;matters&lt;/a&gt; (video)...&lt;br &gt;
&lt;blockquote &gt;&lt;p &gt;
27 years ago I published “Why Functional Programming Matters”, a manifesto for FP–but the subject is much older than that! In this talk I’ll take a deep dive into its history, highlighting some of the classic papers of the subject, personal favourites, and some of my own work. At the end of the day, four themes emerge that characterize what I love about the subject. &lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Wed, 05 Jul 2017 01:29:45 +0000</pubDate>
</item>
<item>
 <title>Type Systems as Macros</title>
 <link>http://lambda-the-ultimate.org/node/5426</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.ccs.neu.edu/home/stchang/pubs/ckg-popl2017.pdf&quot;&gt;Type Systems as Macros&lt;/a&gt;, by Stephen Chang, Alex Knauth, Ben Greenman:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;We present TURNSTILE, a metalanguage for creating typed embedded languages. To implement the type system, programmers write type checking rules resembling traditional judgment syntax. To implement the semantics, they incorporate elaborations into these rules. TURNSTILE critically depends on the idea of linguistic reuse. It exploits a &lt;em &gt;macro system&lt;/em&gt; in a novel way to simultaneously type check and rewrite a surface program into a target language. Reusing a macro system also yields modular implementations whose rules may be mixed and matched to create other languages. Combined with typical compiler and runtime reuse, TURNSTILE produces performant typed embedded languages with little effort.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This looks pretty awesome considering it&#039;s not limited to simple typed languages, but extends all the way to System F and F-omega! Even better, they can reuse previous type systems to define new ones, thereby reducing the effort to implement more expressive type systems. All code and further details &lt;a href=&quot;http://www.ccs.neu.edu/home/stchang/popl2017/&quot;&gt;available here&lt;/a&gt;, and &lt;a href=&quot;http://blog.racket-lang.org/2017/04/type-tailoring.html&quot;&gt;here&#039;s a blog post&lt;/a&gt; where Ben Greenman further discusses the related &quot;type tailoring&quot;, and of course, these are both directly related to &lt;a href=&quot;http://lambda-the-ultimate.org/node/1339&quot;&gt;Active Libraries&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;Taken to its extreme, why not have an assembler with a powerful macro system of this sort as your host language, and every high-level language would be built on this. I&#039;m not sure if this approach would extend that far, but it&#039;s an interesting idea. You&#039;d need a cpp-like highly portable macro tool, and porting to a new platform consists of writing architecture-specific macros for some core language, like System F.&lt;/p&gt;
&lt;p &gt;This work may also conceptually dovetail with &lt;a href=&quot;http://lambda-the-ultimate.org/node/5424&quot;&gt;another thread discussing fexprs and compilation&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Wed, 19 Apr 2017 23:38:56 +0000</pubDate>
</item>
</channel>
</rss>
