Module ClassTraversal

module ClassTraversal: sig .. end
Class types and default implementations for "mapper", "iterator", and "folder" over class definitions.

Functions from ClassDefinition should be used for applications of "mapppers","iterators", and "folders".


class type class_definition_mapper = object .. end
This class type defines a "mapper", instances being used as "functions" to transform class definitions.
class default_class_definition_mapper : class_definition_mapper
The default "mapper", that encodes the identity over class definitions.
class type class_definition_iterator = object .. end
This class type defines an "iterator", instances being used as "functions" to iterate over the different components of a class definitions.
class default_class_definition_iterator : class_definition_iterator
The default "iterator", that iterates over the whole structure by doing nothing.
class type class_definition_folder = object .. end

This class type defines a "folder", instances being used as "functions" to fold over the different components of a class definitions. The "function" is defined by parts through the various methods of the object. Any method is responsible for the calling of its embedded elements; this means that the method class_definition should call methods to fold fields, attributes, etc.
class default_class_definition_folder : class_definition_folder
The default "folder", that folds over the whole structure by doing nothing.