Perhaps use the Cont monad to avoid the pyramids of doom in the `withString` stuff?
Perhaps use the Cont monad to avoid the pyramids of doom in the
withStringstuff?