public LazyList(DataState ds, Func <T, bool> predicate)
 {
     dataState = ds;
     pre       = predicate;
     State     = LazyState.Initialised;
 }