Abstract data types are defined in terms of type names, function names, and equations. These can be realized in Mathematica very easily. The equations become rewrite rules. Mathematica interactive nature makes it well suited for rapid prototyping and testing of designs.
Nat1.m
Modular.m
Lisp.m
Plate 6