public List <TDocument> Find <TDocument>(QueryPlanResult plan, int page, int pageSize, int skip, out int total) where TDocument : hOOt.Document
 {
     lock (_gate)
     {
         BornOrRessurectIfDead();
         if (plan.GetVersion(Type.TypeToken) != _version)
         {
             throw new DocumentIndexConcurrentAccessException();
         }
         return(_documentIndex.Find <TDocument>(plan, page, pageSize, skip, out total));
     }
 }