/// Like [Result::unwrap] but gives [Err] to a [ProblemReceiver](super::ProblemReceiver) and
/// returns [Ok] if that error is swallowed.
///
/// In practice it can be used somewhat similarly to the `?` operator.
///
/// The first argument is the [Result] and the second is the
/// [ProblemReceiver](super::ProblemReceiver). The optional third argument is the value to return
/// for [Ok] if an [Err] is swallowed by the receiver (it will default to [Default::default].)
///
/// Note that it *must* be implemented as a macro because it includes a `return` statement.
pub use give_unwrap;