cb372/scalacache

Explanation of Effect in the trait

kbeldjilali opened this issue · 0 comments

Hi,

I don 't understand the choice to have F[_] at the trait level. Of course, it's easier to implement but the goal of a library is to introduce complexity on the library side, not on the user side.
This introduction breaks backward compatibility and is less flexible at usage.

Having the F[_] on each method means = 1 instance, multiple usages (just pass the right effect). It allows to have a different effect on test for example, just by changing the implicit. Or in a codebase that is not full IO yet.

Having the F[_] at the trait level means = multiple instances for each usage. Or conversion of the effect.

Please, can you give some explanations for this choice?

(related to #417 )