Disk-backed B+ trees in Haskell