title: Is the concept of Algebraic Data Type akin to Class definitions in OO languages?
body: <p>Both concepts allow new data types to be created.
  The only difference I can see is that in functional languages, one can perform pattern matching on algebraic data types. But there is no comparable succinct feature for OO languages. Is this an accurate statement ?</p>