Functional programming is programming with mathematical functions, mapping inputs to outputs. By contrast, logic programming---perhaps best known from the language Prolog---is programming with mathematical relations between values, without making a distinction between inputs and outputs. In this two-year anniversary episode of the Haskell Unfolder we take a look at `typedKanren`, an embedding of the logic programming language `miniKanren` in Haskell. We will see how we can use it to write a type checker for a simple functional language in a few lines of code.