added a possible prototype for an algebraic data type