public static Maybe <Person> Maybe(NonEmptyString name, PositiveInt age)
 {
     return(NotNull(name)
            .And(NotNull(age))
            .And(() => name.Text.Matches("^[a-zA-Z\\. ]+$"))
            .And(() => age.Number.ExclusiveBetween(0, 100))
            .ThenMaybe(name.TupleWith(age))
            .Select(t => new Person(t.Item1, t.Item2)));
 }