Why introduce layers and requirements in Effect instead of using standard Java dependency injection?
It's more philosophical question: what is the particular reason for introducing layers and generally requirements in Effect? Isn't "standard" java way of managing dependencies by injecting them in constructor enough?