[Haskell-cafe] STM Skip list implementation