Automatic assembling of effect monad
- Mentors
- Ruslan Shevchenko
- Organization
- Scala Center
- Technologies
- scala, scala.js, scala native
- Topics
- Macros, Effect Systems, Monads, Continuation Passing Style, Extensible effects
Currently, dotty-cps-async does not support effect systems, hindering its further development. Additionally, there is no mechanism to automatically convert existing standard monads to effect system monads, resulting in increased boilerplate code. To address these issues, a macro will be used to assemble code-based effects to CpsMonad. Additionally, automatic conversion of existing monads to effect system monads will be developed using additional monad converters that will be implicitly applied. The outcome will be the ability to use effect system monads through the async[[X] =>> Monad[R, X]] syntax, facilitating easy composition of various effect systems. Furthermore, automatic conversion of existing standard monads such as Option, Either, List, etc., to effect system monads will streamline and enhance the user experience, reducing boilerplate code.