Just a drive-by comment (no stakes yet) - looking at the PostgresqlSimple wrappers for example, lot of the queryXY functions defer to pgsSpan, which calls inSpan. These all have HasCallstack constraint along the way, so the effect would be the noted (top of the) callstack would be the intermediate caller of pgsSpan instead of the user's call-site?
There was a similar issue #94 but not sure what the conclusion is. Does inSpan do something magical callstack walking to avoid this problem, or should the top-level exported wrapper functions still be sprinkled with withFrozenCallstack?