public static EnumeratorSeq create(IEnumerator enumerator)
{
//bool hasElement = true;
//try {
// object o = enumerator.Current;
//}
//catch ( InvalidOperationException )
//{
// // we are before the beginning.
// hasElement = enumerator.MoveNext();
//}
bool hasElement = enumerator.MoveNext();
return hasElement
? new EnumeratorSeq(enumerator)
: null;
}