<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Expression-Problem on Home</title>
    <link>https://blog.rafaelfernandez.dev/tags/expression-problem/</link>
    <description>Recent content in Expression-Problem on Home</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 Rafael Fernandez</copyright>
    <lastBuildDate>Thu, 26 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rafaelfernandez.dev/tags/expression-problem/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>criteria4s 1. The filter you were always going to rewrite</title>
      <link>https://blog.rafaelfernandez.dev/posts/criteria4s-1-write-your-filters-once-run-them-everywhere/</link>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/criteria4s-1-write-your-filters-once-run-them-everywhere/</guid>
      <description>Write a predicate once and run it against SQL, MongoDB, Elasticsearch, or any backend. An introduction to criteria4s and its practical take on the Expression Problem.</description>
      
    </item>
    
    <item>
      <title>criteria4s. The filter you were always going to rewrite</title>
      <link>https://blog.rafaelfernandez.dev/posts/criteria4s-1-write-your-filters-once-run-them-everywhere/</link>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/criteria4s-1-write-your-filters-once-run-them-everywhere/</guid>
      <description>Write a predicate once and run it against SQL, MongoDB, Elasticsearch, or any backend. An introduction to criteria4s and its practical take on the Expression Problem.</description>
      
    </item>
    
    <item>
      <title>Tagless Final is denotational semantics in disguise</title>
      <link>https://blog.rafaelfernandez.dev/posts/tagless-final-is-denotational-semantics/</link>
      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/tagless-final-is-denotational-semantics/</guid>
      <description>Every trait in your hexagonal architecture is a tagless-final algebra. Every impl is an interpreter. You have been writing denotational semantics without knowing it. We trace the connection from Kiselyov&amp;rsquo;s paper through Scala&amp;rsquo;s Cats-Effect to Rust&amp;rsquo;s port traits, and show why the pattern that academics call &amp;lsquo;finally tagless&amp;rsquo; is the same pattern that practitioners call &amp;lsquo;dependency injection.&amp;rsquo;</description>
      
    </item>
    
    <item>
      <title>Syntax and Semantics 3. The Expression Problem</title>
      <link>https://blog.rafaelfernandez.dev/posts/syntax-and-semantics-3-the-expression-problem/</link>
      <pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/syntax-and-semantics-3-the-expression-problem/</guid>
      <description>Adding a new type is easy in OOP, hard in FP. Adding a new operation is easy in FP, hard in OOP. Philip Wadler named this the Expression Problem in 1998. We show how it manifests in Rust and Scala, and tease the resolution.</description>
      
    </item>
    
  </channel>
</rss>
