I've got some questions:How does logging interact with pure? You need to be able to log in pure functions.
Does the logger implementation flush() in the case of a crash? (Does it trap all crashes in a way that ensures that logging buffers are written to disk?)
Is logf() needed? Can't you somehow detect that the string is an immutable string literal with string formatting characters?
