Proving Algebraic Datatypes Are “Algebraic”