Abstract Data Type (ADT)