logStringHandle : HasIO io => File -> LogAction io StringA LogAction that writes strings to a file handle, one per line.
File errors are silently ignored. Use this for best-effort logging
where a write failure should not crash the application.
withLogFile : HasIO io => String -> (LogAction io String -> io a) -> io (Either FileError a)Run a computation with a LogAction writing to a file in append mode.
Opens the file, passes the log action to the callback, and closes
the file when done. Returns `Left` on open failure, `Right` with
the callback's result on success.