Alexander Zalutskiy
03/24/2020, 8:13 AMFileSystem m
where m is any monad type. How can i do this?raulraja
03/24/2020, 9:00 AMAlexander Zalutskiy
03/24/2020, 11:29 AMinterface FileSystem<T> {
fun writeFile(path: Path, text: String): Kind<T, Unit>
}
fun <T>doSomeWork(FS: FileSystem<T>, ...): Kind<T, Unit> = fx.monad {
...
unit.just()
}
smth like this with restriction in doSomeFsWork that T
must be monadAlexander Zalutskiy
03/24/2020, 11:30 AMpakoito
03/24/2020, 11:52 AMpakoito
03/24/2020, 11:52 AMpakoito
03/24/2020, 11:52 AMpakoito
03/24/2020, 11:52 AMinterface FileSystem<T>: MonadFx<T>
pakoito
03/24/2020, 11:53 AMpakoito
03/24/2020, 11:54 AMfun <T> doSomeWork(FS: FileSystem<T>, MX: MonadFx<T>): Kind<T, Unit> = MX.fx.monad { ...; MX.unit() }
pakoito
03/24/2020, 11:54 AMpakoito
03/24/2020, 11:55 AMfun <T> MonadFx<T>.doSomeWork(FS: FileSystem<T>): Kind<T, Unit> = fx.monad { ...; unit() }
Alexander Zalutskiy
03/24/2020, 12:02 PM