
Hello, As I explained in my announcement of 'safer-file-handles', I discovered a serious lack of expressive power in my 'regions' package. I have now solved that problem in the way I envisaged by removing the 'resource' parameter from 'RegionT' and using existential quantification to bring the 'resource' type back at the place I need it but hidden from the outside. Now you're able to open multiple types of resources in a single region which all will be closed automatically on termination of the region. These are the new releases: http://hackage.haskell.org/package/regions-0.2 http://hackage.haskell.org/package/regions-monadsfd-0.2 http://hackage.haskell.org/package/regions-monadstf-0.2.0.1 http://hackage.haskell.org/package/usb-safe-0.5 http://hackage.haskell.org/package/safer-file-handles-0.2 (Note that in the process I shuffled a bit with the API's. That's one of the reasons all these are major releases.) Do you want to see this in action? See 'example.hs' in the following package that demonstrates opening multiple different types of resources in a single region. The example extends the example in the 'usb-safe-examples' package by first opening a USB device (my USB mouse) and a temporary file in the same region. Next the device is configured, an interface is claimed and an alternate is set. Next some bytes are read from an endpoint of the device. Finally these bytes are written to the temporary file. It's fun to see this in action so do try it out: darcs get http://code.haskell.org/~basvandijk/code/usb-safe-and-safer-file-handles-exa... regards and see some of you at FP-NL tomorrow! Bas