We export the unit test arg rather than instantiate the functor inside result.ml in order to avoid circular dependencies. The functor is instantiated in stable.ml.
tests
is a list of (value, sexp-representation, bin-io-representation) triples.
The ounit tests check that the type properly serializes and
de-serializes according to the given representations.