CHANGES 1.67 KB
Newer Older
POTTIER Francois's avatar
POTTIER Francois committed
1
2017/03/08:
2 3 4 5 6
A new option [polymorphic = true] allows generating visitor methods with
polymorphic types. With [polymorphic = true], a type variable ['a] is
handled by a visitor *function* [visit_'a], which is passed as an argument
to every visitor method; whereas, with [polymorphic = false], a type
variable ['a] is handled by a virtual visitor *method* [visit_'a].
POTTIER Francois's avatar
POTTIER Francois committed
7
With [polymorphic = true], visitor classes compose better,
POTTIER Francois's avatar
POTTIER Francois committed
8
and irregular algebraic data types are supported.
9
See the documentation for more details.
10

POTTIER Francois's avatar
POTTIER Francois committed
11 12 13 14 15
2017/03/03:
A new option [data = false] allows suppressing the generation of visitor
methods for data constructors. This makes the generated visitor slightly
simpler and faster, but less customizable.

16 17 18
A new option [nude = true] allows *not* implicitly inheriting the class
VisitorsRuntime.<variety>.

19
2017/02/15:
POTTIER Francois's avatar
POTTIER Francois committed
20
Makefile.preprocess is now installed with the package, so users can rely on it
21
without needing to copy it. See the documentation for instructions.
22

POTTIER Francois's avatar
POTTIER Francois committed
23
2017/02/13:
POTTIER Francois's avatar
POTTIER Francois committed
24 25 26 27
Added a new variety of visitors, "mapreduce". This visitor computes a pair of a
data structure (like a "map" visitor) and a summary (like a "reduce" visitor).
This can be used to annotate every tree node with information about the
subtree that lies below it. See the documentation for an example.
POTTIER Francois's avatar
POTTIER Francois committed
28

29
2017/02/09:
POTTIER Francois's avatar
POTTIER Francois committed
30
Documentation: added a new subsection on OCaml objects,
31 32 33 34
entitled "Where the expressiveness of OCaml's type system falls short".
This section explains why "map" cannot be a subclass of "fold",
even though it should be.

35 36 37 38
2017/01/31:
Documentation: added an example of constructing a lexicographic ordering.
Documentation: discussed generating visitors for existing types and ppx_import.

POTTIER Francois's avatar
POTTIER Francois committed
39 40
2017/01/26:
Initial release.