This will make it possible to guarantee panic-free codepaths. Optionally, we might expose ways to record, read, that can panic but do not require the `Result` syntactic overhead.