Open googleson78 opened 4 years ago
(for anyone wondering the same thing)
There is also another idea that works:
In my original post I was trying to use a select
directly to implement f
.
Instead of trying to generalise the select
statement, I generalised the from
part only, which worked out fine.
The new type of my f
is
f ::
(... -> SqlQuery b) ->
SqlQuery b
and I later use it with
select $
f <provide functions here that have access to the from statement in f>
The only duplicated part is now the select
, which is a very minor annoyance.
I currently have two very similar sql queries, different in only their return type. (one returns a tuple and has a
limit
, while the other returnscount(*)
with nolimit
)I would like to create a function
to factour out the similarities by passing in an
f :: ... -> SqlQuery a
function which determines the return type of the query. However to give a type to this I have to useSqlSelect
, which is in an internal module.Would it be possible to somehow expose it for this purpose, or should I just use the
Internal
module in this case? (or is there some other solution that I just missed)