Generally, algebraic data types represent sums of products, where the cases form the alternatives of a sum type, and each case represents a product type that can be constructed from zero to many constitutent types. An EDT is a special case of ADT where each product type is a singleton.