Running Typed Racket Backwards
Ambrose Bonnaire-Sergeant
Abstract
Typed Racket can type check typical Racket programs via occurrence typing, which uses information collected at conditional tests to refine types down conditional branches. We introduce the fundamentals of occurrence typing and then see what programs an implementation of occurrence typing in miniKanren can check (and generate!).