/// Closed multiplication with optional runtime context.
///
/// This operation must multiply 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.