The rationale is that the low-level database interface accepts parameters directly instead of
inserting them inside the query manually (like HoleyMonoid would do). Postgresql-simple
also does parameter substitution on haskell side. This is not safe and may cause to
database interface knows better how to work with parameters, so the driver must pass them to it instead
of parameters substitution.
hdbi-postgresql just replace "?" to "$1" sequence properly parsing and ignoring question marks inside the doublequoted identifiers, quoted literals and even dollar quoted literals
4.1.2.2. Dollar-Quoted String Constants