User:Wearsunscreen/sandbox/Algebraic Data Types