public static A ElseThrow <A>(this Either <A, string> either)
 {
     return(either.Else(message => { throw new Exception(message); }));
 }
 public static A ElseThrow <A, TException>(this Either <A, TException> either)
     where TException : Exception
 {
     return(either.Else(exc => { throw exc; }));
 }