You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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?
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 fullIO
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 )
The text was updated successfully, but these errors were encountered: