All ringbuffer implementations now can initialize from a traversable except for the template haskell one.  May have to read about template haskell to finish.