public virtual NotSoEmptyDerived ToNotSoEmptyDerived(
            ImmutableObjectGraph.Optional <System.Boolean> oneField = default(ImmutableObjectGraph.Optional <System.Boolean>))
        {
            NotSoEmptyDerived that = this as NotSoEmptyDerived;

            if (that != null && this.GetType().IsEquivalentTo(typeof(NotSoEmptyDerived)))
            {
                if ((!oneField.IsDefined || oneField.Value == that.OneField))
                {
                    return(that);
                }
            }

            return(NotSoEmptyDerived.CreateWithIdentity(
                       identity: this.Identity,
                       oneField: oneField));
        }
 public new NotSoEmptyDerived ToImmutable()
 {
     return this.immutable = this.immutable.With(
         ImmutableObjectGraph.Optional.For(this.OneField));
 }
            internal Builder(NotSoEmptyDerived immutable)
            {
                this.immutable = immutable;

                this.oneField = immutable.OneField;
            }
 public new NotSoEmptyDerived ToImmutable()
 {
     return(this.immutable = this.immutable.With(
                ImmutableObjectGraph.Optional.For(this.OneField)));
 }
            internal Builder(NotSoEmptyDerived immutable)
            {
                this.immutable = immutable;

                this.oneField = immutable.OneField;
            }