why are you using unsafe pointer ? (for example in skiplist implementation) a lot of it can be replaced by pointer[T]. Before generics that was the only way to do atomic operations, but not anymore. What do you think about replacing unsafe pointers with atomic.pointer[T] ?