⟨λ. closure ahead⟩

Categories

Computer Touching
Miscellany
Outside
Type Theory
Unicode

Why I don't use generative AI

As someone who categorically so far refuses to use generative AI and LLMs for code in particular, I’m increasingly becoming the odd one out among my peers in academia. I don’t have the persuasive power nor the actual arguments against using LLMs to convince them otherwise, but because I’m now officially in the minority at my workplace, I feel the need to explain why I personally don’t use LLMs.

More …

HOAS using CBPV with dependency tracking

Higher-order abstract syntax (HOAS) uses binding in the ambient metalanguage to represent binding in the object language. For example, if we define Terms of the object language as a type in the metalanguage, we might give functions of the lambda calculus (our object language) the type Lam : (Term → Term) → Term. The identity function in the object language is then represented by this constructor using the identity function in the metalanguage, Lam (λx. x) : Term.

More …

Modelling laziness with a little bit of strictness

Evaluation of the lambda calculus is a spectrum from strictness, or call by value (CBV), to laziness, or call by name (CBN). Paul Levy’s call by push value (CBPV) subsumes both CBV and CBN. A form of this sentence is in the introduction of every paper on CBPV.

CBPV also subsumes other points along the spectrum. A CBV language with explicit thunking constructs to delay computation lazily can be modelled in CBPV with thunks using the usual CBV translation. Can CBPV model a CBN language with constructs that explicitly evaluate eagerly?

More …

Antihistamines

This was originally a really long toot.

I’ve been looking at papers on antihistamines and what makes them work better like, molecularly, not just doing clinical trials and seeing what happens. As a primer, allergens trigger the release of histamines in the body, which then bind to various histamine receptors, and the H₁ receptors are the important ones that trigger rhitinis (runny nose, etc.) and uticaria (itchiness). The antihistamines you can get for allergies are H₁-receptor antagonists, meaning they bind to the H₁ receptors and prevent histamine from triggering them, as well as producing some sort of antagonist effect (?). Simons and Simons 2011 is a pretty good overview of how it works.

More …

Nice mono fonts I don't use

There are a lot of nice monospaced code-writing fonts that I don’t use. For some of them, there are tiny, specific nitpicks about why I don’t use them. My use case is writing code with a lot of Unicode, like in Lean or Agda, writing Markdown with a lot of Unicode because I can, and having a terminal that looks nice. For reference, I’ll be comparing a snippet of a proof state I have open at the moment, and my default font of choice is currently Fira Code.

More …