Variational Typing

https://www.youtube.com/watch?v=YupkE1vsZ4o

A strong candidate for a principled approach to conditonal compilation. Allows you to typecheck all variants of a program at once. Can also be used for better type inference, better type errors, module systems, etc.

Idea: Encode “choice” inside the type system and reason about it.