/// Closed addition with optional runtime context.
///
/// This operation must add two values of the same type
/// and return a value of that type, optionally
/// taking an extra parameter that describes the
/// underlying algebraic structure at runtime.
///
/// The operation must not fail in any case.
/// Closed addition.
///
/// This operation must add two values of the same type
/// and return a value of that type.
///
/// The operation must not fail in any case.