public void CreateBad()
        {
            var firstO      = String10.Create("");
            var lastO       = String10.Create("Adams");
            var createNameO = Option.Lift2 <String10, String10, PersonalName>(PersonalName.Create);
            var nameO       = createNameO(firstO, lastO);

            Assert.IsFalse(nameO.HasValue);
        }
        public void CreateGood()
        {
            var firstO      = String10.Create("Alice");
            var lastO       = String10.Create("Adams");
            var createNameO = Option.Lift2 <String10, String10, PersonalName>(PersonalName.Create);
            var nameO       = createNameO(firstO, lastO);

            Assert.IsTrue(nameO.HasValue);
            Assert.AreEqual("Alice", nameO.Value.First.Value);
        }
 public static PersonalName Create(String10 first, String10 last)
 {
     return new PersonalName(first, last);
 }
 public PersonalName(String10 first, String10 last)
 {
     this.First = first;
     this.Last = last;
 }
 public static PersonalName Create(String10 first, String10 last)
 {
     return(new PersonalName(first, last));
 }
 public PersonalName(String10 first, String10 last)
 {
     this.First = first;
     this.Last  = last;
 }