[Haskell-cafe] letting go of file handles and Data.Binary

Ben midfield at gmail.com
Sun Apr 20 17:02:27 EDT 2008

hi all --

using binary 0.4.1 on ghc 6.8.2, vista 64 sp1.  consider the following program:

import System.Directory
import Data.Binary

main = do
  let dat = [1..10]::[Int]
      fname = "foo.dat"
  encodeFile fname dat
  dat2 <- decodeFile fname
  print (dat == dat2)
  removeFile fname

this throws a permission denied exception, presumably because the file
is still open when the removeFile is called.  i've grovelled the
source of Data.Bytestring.Lazy and all but i can't seem to understand
the "right" way to make this work.  note that i've forced the
evaluation of dat2 and presumably therefore the filehandle is at least

any suggestions?

take care, Ben

More information about the Haskell-Cafe mailing list