Tests and sample usage of basic types from Cats Library.
- Show[A] - Print content on console without using toString.
- Eq[A] - type safe equality checker/operator.
- SemiGroup[A] - type with combine method.
- Monoid[A] - a semigroup with empty(identity) method.
- Functor[F[_]] - type with map function
- Applicative[F[_]] - type which is a Functor and has pure method
- Monad[M[_]] - type with pure (can be a Applicative also) and flatMap function.
- Eval Monad -
- Eval.now - Eager Evaluation (call-by-value)
- Eval.always - Lazy Evaluation (call-by-name)
- Eval.later - Memoized (call-by-need)
- Eval.defer - Stack safe for huge computation.
- Writer Monad (Writer[Vector[String], A]) - type to carry log messages along.
- Reader Monad (Reader[A, B]) - sequence operations which require a specific input.
- State Monad (S => (S,A)) - monad to pass around state