title: fixed length circular buffer in haskell
body: <p>I want to create a fixed length circular buffer of some general type in Haskell.  The items in the buffer need to be located one after another in physical memory (not linked list).  I want this specific structure because it will improve the chances of all the data getting to the L2 cache on the CPU together.  I have read about how Haskell allows for new data types, however it looks like types created using "data" are little more that glorified c structs with pattern matching and associated methods.  Is it possible to create low level data structures like the one described above completely in Haskell.</p>