Here is the list of my favorite articles collected during my 10 years of language practice.
- Phantom Types in Scala phantom types never get instantiated. They are used to encode type constraints.
- Type members are [almost] type parameters type members VS type parameters.
- When are two methods alike?
- A short introduction to the
Auxpattern a trick to overcome a limitation with path dependent type.
- Generalized Algebraic Data Types in Scala
- Returning the “Current” Type in Scala An F-bounded type is parameterized over its own subtypes.
trait Pet[A <: Pet[A]]. And also subtyping VS ad-hoc polymorphism.
- Fake Theorems for Free why you should not use
- Compiler plugin for making type lambdas (type projections) easier to write
- Generalized type constraints in Scala (without a PhD), About
- Avoiding Unnecessary Object Instantiation with Specialized Generics,
- Type classes in Scala
- Generics of a Higher Kind
- Overcoming type erasure in Scala
- Functors, Applicatives, And Monads In Pictures
- The Essence of the Iterator Pattern
- Free Monoids and Free Monads
- Monoid Morphisms, Products, and Coproducts
- A tale on Semirings
- How can we map a Set?, on coyoneda
Advanced - Free monad VS tagless final
- Stackless Scala With Free Monads
- On Free Monads
- Introduction to Tagless final
- Exploring Tagless Final pattern for extensive and readable Scala code
- An IO monad for cats
- Shared State in Functional Programming
- Why should you care about RT
- Thread Pools
- Talk - Intro to Cats-Effect (Gavin Bisesi)
- Talk - The Making of an IO - Daniel Spiewak
- Implicit Design Patterns in Scala
- Scrap Your Cake Pattern Boilerplate: Dependency Injection
- A brief tour of Scala: two classic problems, Fibonacci …