public void SimpleTryDequeues()
        {
            var queue = ImmutableQueue <int> .Empty
                        .Enqueue(1)
                        .Enqueue(2)
                        .Enqueue(3);

            int out1;
            var r1 = Transactional.TryDequeue(ref queue, out out1);

            r1.Should().BeTrue(nameof(r1));
            out1.Should().Be(1);

            int out2;
            var r2 = Transactional.TryDequeue(ref queue, out out2);

            r2.Should().BeTrue(nameof(r2));
            out2.Should().Be(2);

            int out3;
            var r3 = Transactional.TryDequeue(ref queue, out out3);

            r3.Should().BeTrue(nameof(r3));
            out3.Should().Be(3);

            int out4;
            var r4 = Transactional.TryDequeue(ref queue, out out4);

            r4.Should().BeFalse(nameof(r4));
            out4.Should().Be(default(int));
        }