This repo contains the code from our 2022 cats workshop.
- Implicit resolution (arguments, conversions, classes, ambiguity, priority)
- Type variance (covariance, contravariance, invariance)
- Type-class pattern (examples: show, eq, sum)
- Transformers for nested structures (OptionFuture, EitherFuture)
- Tagless-Final pattern (effect-polymorphism, OptionT, EitherT, type-lambdas, kind-projector)
- Cats (Semigroup, Monoid, Functor, Bifunctor, Applicative, Monad, bonus-tips)
- Composing independent values (Product as a simplified version of Cats' Applicative)
- Traverse (dealing with collections of effectful ("wrapped") values)
- Nothing (tips for special cases involving Nothing)