public async Task FromMaybeSome() { var expectedValue = new object(); Maybe <object> source = Maybe <object> .Some(expectedValue); AsyncMaybe <object> implicitAsync = source; var isSome = await implicitAsync.IsSome; var value = await implicitAsync.OrFail(); Assert.True(isSome); Assert.Same(expectedValue, value); }