Gopal S Akshintala
03/04/2020, 3:15 PMBob Glamm
03/04/2020, 3:20 PMGHC
and immediately went to Glasgow Haskell CompilerGopal S Akshintala
03/04/2020, 3:20 PMMichael Marth
03/04/2020, 6:12 PMGopal S Akshintala
03/04/2020, 9:23 PMGopal S Akshintala
03/04/2020, 9:26 PMBob Glamm
03/04/2020, 9:29 PMforMono
and forIO
were defined on RepoTC
since they weren't specific to RepoTC
Bob Glamm
03/04/2020, 9:29 PMMono
and IO
, respectivelyBob Glamm
03/04/2020, 9:29 PMGopal S Akshintala
03/04/2020, 10:30 PMGopal S Akshintala
03/04/2020, 10:30 PMGopal S Akshintala
03/04/2020, 11:51 PMforMono
and forIO
are dependent on Async<F>
for effect{}
method, so I am not able to elegantly place them outside of RepoTC<F>
, unless I create another typeclass RepoUtils : Async<F>
and RepoTC<F>: RepoUtils<F>
, which is not so neatBob Glamm
03/05/2020, 1:41 PMeffect {}
via where
Bob Glamm
03/05/2020, 1:41 PMGopal S Akshintala
03/05/2020, 1:42 PMBob Glamm
03/05/2020, 1:43 PMGopal S Akshintala
03/05/2020, 1:52 PMsimon.vergauwen
03/05/2020, 2:25 PMwhere
to restrict generics to enable syntax.simon.vergauwen
03/05/2020, 2:25 PMGopal S Akshintala
03/06/2020, 8:47 AMwhere
and avoiding any constructor injection. Am I right? Like in direceivers.kt
the below function has to declare both contexts Domain
and Data
to make use of the extension function getProcessedAccount()
class DefaultUI : UI {
override fun <R> R.present(): IO<Unit> where R : Domain, R : Data =
IO.fx {
val account = getProcessedAccount().bind()
!effect { println(account) }
}
}
Gopal S Akshintala
03/06/2020, 8:50 AMRepoTC<F>
can get the job done, no need of where
. Am I missing anything?
fun <R, F> Async<F>.forMono(thunk: suspend () -> Mono<R>) = effect { thunk().k().suspended() }
fun <R, F> Async<F>.forIO(thunk: () -> R) = effect { thunk() }
raulraja
03/06/2020, 10:04 AMBob Glamm
03/06/2020, 1:28 PMwhere
was just a result of me using Scala + Cats for the last 4-6 weeks. (F-bounded types in Scala use implicit, e.g.: def open[F[_]](path: Path)(implicit AE: ApplicativeError[F, Throwable]): F[InputStream]
, which struck me as similar to where
)