pub trait IInterpolate < T > : DoubleEndedIterator< Item = T > where T: Clone {
fn interp_delta( & mut self, steps: i64 ) -> Option< T >;
fn interp_current( & self ) -> T;
fn interp_is_end( & self ) -> bool;
fn interp_is_start( & self ) -> bool;
fn num_steps( & self ) -> u64;
fn reset( & mut self );
}