raulraja
02/12/2018, 1:35 PMarrow-dagger
module or depend already on Dagger 2 you can change those runtime lookups to compile time verified instances if you define dependencies like this:
class MyTypeclass<F> @Inject constructor(val AF: Applicative<F>) {
....
}
The arrow-dagger
modules export the Arrow instances as a @Module
ArrowInstances
that allows you to create a @Component
with those instances and your own to get compile time verification in type class resolution.