Presentations of ADTs are often limited in scope to only key operations. More thorough presentations often specify auxiliary operations on ADTs, such as: (), that yields a new instance of the ADT; (s, t), that tests whether two instances' states are equivalent in some sense; (s), that computes some standard hash function from the instance's state; (s) or (s), that produces a human-readable representation of the instance's state. These names are illustrative and may vary between authors. In imperative-style ADT definitions, one often finds also: (s), that prepares a newly created instance s for further operations, or resets it to some "initial state"; (s, t), that puts instance s in a state equivalent to that of t; (t), that performs s ← (), (s, t), and returns s; (s) or (s), that reclaims the memory and other resources used by s.
Presentations of ADTs are often limited in scope to only key operations. More thorough presentations often specify auxiliary operations on ADTs, such as: (), that yields a new instance of the ADT; (s, t), that tests whether two instances' states are equivalent in some sense; (s), that computes some standard hash function from the instance's state; (s) or (s), that produces a human-readable representation of the instance's state These names are illustrative and may vary between authors. In imperative-style ADT definitions, one often finds also (s), that prepares a newly created instance s for further operations, or resets it to some "initial state"; (s, t), that puts instance s in a state equivalent to that of t; (t), that performs s ← (), (s, t), and returns s; (s) or (s) that reclaims the memory and other resources used by s.