bad wrapping for the comment results in an error when you try to paste this into utop. Breaking the comment onto two lines will fix that.
This comment references this from milestone alpha3: http://www.realworldocaml.org/alpha3/en/html/variants.html#idp7718512
The structure of the code is pretty straightforward --- we're just
pattern-matching over the structure of the data, doing the
appropriate calculation based on which tag we see. To use this
evaluator on a concrete example, we just need to write the
base_eval function which is capable of
evaluating a base predicate.
That was a bug in utop. Now fixed. If you update to the latest version in opam, everything should be OK.