Yep, a bind is of course necessary.  I'd actually be ok with just `bind` and `reset` and no `withBind`- no resources will leak even if you fail to call `reset`.  I think calling `reset` explicitly is not necessary - it's ok to rebind after you've consumed all your rows without resetting,   

What I don't like about withStatement doing an initial bind is that should you run the same query multiple times with varying parameters, the *first* query would have its parameters bound by openStatement whereas in the latter ones you'd need to bind yourself.  For my use-case, I'd probably like to use something like this:

```
comments <- withStatement ... $ \stmt ->
   mapM_ (\id -> pquery stmt "SELECT * FROM comments WHERE id = ?" (Only id)) list_of_some_ids_here
```

where pquery would be like query exept  would be like query except it takes an explicit statement parameter.

I think it'd be good to have some iteratee/conduit/pipes examples of how you envision these new entry points to be used.