 
            
            
            
            
                13 Feb
                
                    2020
                
            
            
                13 Feb
                
                '20
                
            
            
            
        
    
                11:43 a.m.
            
        Tangentially, note that `cautious-file` has drawbacks: * It is not async-exception safe and may leak file descriptors. It uses `handleToFd` without proper exception handling (`bracket`). * It does not `fsync` the directory in which the file is, meaning that you may still experience data loss on computer crashes. `unliftio` provides actively maintained versions of most of what `cautious-file` does, addresses those drawbacks and is well-tested against crashes: https://hackage.haskell.org/package/unliftio-0.2.12/docs/UnliftIO-IO-File.ht... For example, `writeBinaryFileDurableAtomic`. Niklas