bitemyapp / esqueleto

New home of Esqueleto, please file issues so we can get things caught up!
BSD 3-Clause "New" or "Revised" License
370 stars 107 forks source link

`Database.Esqueleto.Experimental` does not export `SqlSelect` #356

Open parsonsmatt opened 1 year ago

parsonsmatt commented 1 year ago

This may be an intentional omission, but it seems like we should export it - depending on an internal module just for that feels weird.

belevy commented 1 year ago

SqlSelect is an internal implementation detail though. Is there a reason why we want to encourage its use directly? In fact, custom instances should be fairly rare in an ideal world and needing to import the Internal module signifies that you are relying on some internal behavior that is subject to change (i.e. with 4.0.0.0 that I am preparing right now)

parsonsmatt commented 1 year ago

I don't really think it's that much of an internal implementation detail - it shows up in the public API via select :: (SqlSelect a r) => SqlQuery a -> SqlPersistT m [r]. I've ended up importing or needing it in every work codebase I've ever done, especially if I'm doing anything more interesting or fun.