// we cast the value to long from which we cast it to void * in IndexForInsert:
// this can't work if the pointers are not big enough
// we cast the value to long from which we cast it to void * in IndexForInsert:
// this can't work if the pointers are not big enough