A journey to learn https://github.com/scalaz/scalaz-zio
This repo has code examples to understand the advantages of using ZIO library
by comparing with the code examples using other libraries and techniques
The order in which the code-examples should be read is given below:-
usingVanillascala
(using plain old scala with Futures and executing side-effects eagerly)usingMonads
(using Monads and MonadTransformers with Futures and executing side-effects eagerly)usingIO
(using IO and pushing side-effects to the boundary)usingFinaltagless
(using final tagless technique complimented with mtl)usingZIO
(using the ZIO library) The above mentioned terms represents different packages under source code.
There is a fixed
package which contains the Config
case class and CurrencyAPI
which every code example uses.
Every code-example contains a Program
trait which depends on Algebra
trait. The executable Application
executes the program
defined in the Program
trait.
All the code examples are based on the following requirements