pakoito
02/16/2018, 8:40 PMraulraja
02/16/2018, 9:51 PMarrow-generic
which is going to allow you to auto derive instances for product types Since there is an Iso
between data class
<-> TupleN
<-> HList
so we can just define instances for TupleN and HList and get the data classes ones derived.raulraja
02/16/2018, 9:52 PMraulraja
02/16/2018, 9:53 PMpakoito
02/17/2018, 12:11 PMpakoito
02/17/2018, 12:11 PMisto
02/19/2018, 7:11 AMisto
02/19/2018, 7:11 AMdata class SaveUserScope(
val userRepository: UserRepository
)
fun saveUserReader(model: UserModel) = Reader.ask<IdHK, SaveUserScope>().map({
IO { it.userRepository.save(model) }
}, Id.functor())
isto
02/19/2018, 7:12 AMId.functor()
?isto
02/19/2018, 7:13 AMthemishkun
02/19/2018, 7:16 AMsimon.vergauwen
02/19/2018, 7:17 AMsimon.vergauwen
02/19/2018, 7:18 AMReader
and not ReaderT
you can use it like the following snippetsimon.vergauwen
02/19/2018, 7:18 AMfun saveUserReader(model: UserModel) = Reader().ask<SaveUserScope>().map {
IO { it.userRepository.save(model) }
}
simon.vergauwen
02/19/2018, 7:19 AMtypealias Reader<D, A> = ReaderT<IdHK, D, A>
simon.vergauwen
02/19/2018, 7:20 AMcompile 'io.arrow-kt:arrow-instances:0.6.1'
isto
02/19/2018, 7:21 AMReader().ask<...
(was Reader.ask<...
) seems to do the trick at least partly, I'll add the dependency alsoisto
02/19/2018, 7:24 AMReader().ask
the IdHK
is not required any more, it still seems to require the functor instancecedric
02/19/2018, 7:27 AMReader
is "dependency passing", not "dependency injection" 🙂simon.vergauwen
02/19/2018, 7:30 AMcedric
02/19/2018, 7:30 AMReader
, you're still passing these dependencies yourselfcedric
02/19/2018, 7:31 AMsimon.vergauwen
02/19/2018, 7:31 AMsimon.vergauwen
02/19/2018, 7:32 AMsimon.vergauwen
02/19/2018, 7:33 AMcedric
02/19/2018, 7:33 AMchadmorrow
02/21/2018, 5:27 AMpablisco
02/21/2018, 10:40 AMarrow-kt
https://stackoverflow.com/tags/arrow-kt/info
IT would be good to have public Q+A about arrow 🙂pablisco
02/21/2018, 10:41 AMpakoito
02/21/2018, 10:46 AM