by the way: dd has this option that says "in case of read error, do not stop, continue". it's recomended to use it altho i never actually gotten why.
my point is: how to handle any kind of read/write exception with my clone? i used withBinaryFile which promised to close my handles no matter what, which is great, but i don't feel much secured since i don't know how my program would handle a bumpy ride or even if it would tell me anything... i don't even know what would happen if it were cut in the middle, etc.
on this general topic, by the way, are there good resources for system-programming with haskell? is it even manageable to do so rather than use c-like (go, c++, etc) languages?