Mitchell and Plotkin established the link between these things and existential types. John Guttag introduced the algebraic specification of these things. These things were proposed in an influential paper by Stephen Zilles and Barbara Liskov. These things can be considered as meeting the criteria of encapsulation and information hiding. Many data structures are realizations of them, the classic example being a (*) stack with the push and pop operations. These things consist of a set of values and a set of operations, sometimes called the "public interface", which are both independent of implementation. In many object-oriented languages, such as Java, they are implemented by using a class as 
Mitchell and Plotkin established the link between these things and existential types. John Guttag introduced the algebraic specification of these things. These things were proposed in an influential paper by Stephen Zilles and Barbara Liskov. These things can be considered as meeting the criteria of encapsulation and information hiding. Many data structures are realizations of them, the classic example being a (*) stack with the push and pop operations. These things consist of a set of values and a set of operations, sometimes called the "public interface", which are both independent of implementation. In many object-oriented languages, such as Java, they are implemented by using a class as a type. For 10 points, name these things that are the opposite of concrete data types.
Mitchell and Plotkin established the link between these things and existential types.
abstract data types [or: ADTs]