Skip to content

Instantly share code, notes, and snippets.

@TOTBWF
TOTBWF / MicroTT.ml
Last active September 2, 2025 23:59
A simple single-file elaborator for MLTT
(** Core Types *)
module Syntax =
struct
type t =
| Local of int
| Hole of string
| Let of string * t * t
| Lam of string * t
| Ap of t * t
| Pair of t * t
@pdarragh
pdarragh / papers.md
Last active February 23, 2025 02:04
Approachable PL Papers for Undergrads

Approachable PL Papers for Undergrads

On September 28, 2021, I asked on Twitter:

PL Twitter:

you get to recommend one published PL paper for an undergrad to read with oversight by someone experienced. the paper should be interesting, approachable, and (mostly) self-contained.

what paper do you recommend?

@vivshaw
vivshaw / README.md
Last active March 18, 2026 01:27
πŸ™ˆπŸ™‰πŸ™Š Three Wise Monkeys πŸ™ˆπŸ™‰πŸ™Š

Implementing Inference Rules

When first reading programming language papers, it can be challenging to figure out how to translate the notation into working implementations. The following post is intended to help show how these rules correspond to working implementations in Prolog, OCaml, and Lean, for a very simple language of arithmetic expressions.

Natural deduction

T ::=
  | Int
 | Bool
@AndrasKovacs
AndrasKovacs / GluedEval.hs
Last active December 2, 2025 02:01
Non-deterministic normalization-by-evaluation in Olle Fredriksson's flavor.
{-# language Strict, LambdaCase, BlockArguments #-}
{-# options_ghc -Wincomplete-patterns #-}
{-
Minimal demo of "glued" evaluation in the style of Olle Fredriksson:
https://github.com/ollef/sixty
The main idea is that during elaboration, we need different evaluation