internal static A CreateWithIdentity(
            ImmutableObjectGraph.Optional <System.Int32> field1    = default(ImmutableObjectGraph.Optional <System.Int32>),
            ImmutableObjectGraph.Optional <System.UInt32> identity = default(ImmutableObjectGraph.Optional <System.UInt32>))
        {
            if (!identity.IsDefined)
            {
                identity = NewIdentity();
            }

            return(DefaultInstance.WithFactory(
                       field1: Optional.For(field1.GetValueOrDefault(DefaultInstance.Field1)),
                       identity: Optional.For(identity.GetValueOrDefault(DefaultInstance.Identity))));
        }
        internal static ReqAndHierL1 CreateWithIdentity(
            System.String l1Field2,
            ImmutableObjectGraph.Optional <System.String> l1Field1 = default(ImmutableObjectGraph.Optional <System.String>),
            ImmutableObjectGraph.Optional <System.UInt32> identity = default(ImmutableObjectGraph.Optional <System.UInt32>))
        {
            if (!identity.IsDefined)
            {
                identity = NewIdentity();
            }

            return(DefaultInstance.WithFactory(
                       l1Field1: Optional.For(l1Field1.GetValueOrDefault(DefaultInstance.L1Field1)),
                       l1Field2: Optional.For(l1Field2),
                       identity: Optional.For(identity.GetValueOrDefault(DefaultInstance.Identity))));
        }