single property
Checks that this iterable has only one element, and returns that element.
Throws a StateError if this
is empty or has more than one element.
This operation will not iterate past the second element.
Implementation
@override
T get single => throw StateError('single');