pub trait ValueIterator:
Debug
+ Send
+ Sync {
// Required method
fn next(&self, vm: &mut dyn Vm<'_>) -> SourceResult<Option<Value>>;
// Provided method
fn nth(&self, vm: &mut dyn Vm<'_>, n: usize) -> SourceResult<Option<Value>> { ... }
}