Purity and Effect in Programming Languages ––– Henry Blanchette's undergraduate thesis for BA in Computer Science at Reed College.