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.