User:Wearsunscreen/sandbox/99/Algebraic Data Types