General-purpose sum types.
Arbitrarily-sized product types exist in Rust in the form of tuples. This is a generalisation of bluss's Either type to provide arbitrarily-sized sum types*.
* Over up to 32 types.
Licensed under Apache License, Version 2.0, (LICENSE.txt or http://www.apache.org/licenses/LICENSE-2.0).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.