A purely functional ring data structure for Haskell.