public MayBe(MayBeDataState dataAbsent)
 {
     if (dataAbsent != MayBeDataState.DataNotPresent)
     {
         throw new InvalidOperationException($"Parameter should always be MayBeDataState.DataNotPresent");
     }
     DataState = MayBeDataState.DataNotPresent;
 }
 public MayBe(T data)
 {
     Data      = data;
     DataState = MayBeDataState.DataPresent;
 }