Blog

In addition to org-level announcements, here we show you how to use our libraries in your code, provide examples, collect learning resources, and explore implementation details.

Typelevel Native

by Arman Bilge on Sep 19, 2022

technical

Why Are Fibers Fast?

by Daniel Spiewak on Feb 21, 2021

technical

Concurrency in Cats Effect 3

by Raas Ahsan on Oct 30, 2020

technical

Algebraic API Design - Types, Functions, Properties

by Leif Battermann on Feb 06, 2019

technical

Cats Ecosystem Community Survey 2018 Results

by Kailuo Wang on Jan 30, 2019

technical

Error handling in Http4s with classy optics – Part 2

by Gabriel Volpe on Nov 28, 2018

technical

A tale on Semirings

by Luka Jacobowitz on Nov 02, 2018

technical

A comprehensive introduction to Cats-mtl

by Luka Jacobowitz on Oct 06, 2018

technical

Variance of Monad Transformers

by Cody Allen on Sep 29, 2018

technical

Chain – Replacing the List Monoid

by Luka Jacobowitz on Sep 04, 2018

technical

Error handling in Http4s with classy optics

by Gabriel Volpe on Aug 25, 2018

technical

Refactoring with Monads

by Mark Tomko on Aug 07, 2018

technical

Testing in the wild

by Eric Torreborre on Jul 12, 2018

technical

Optimizing Tagless Final – Part 2 – Monadic programs

by Luka Jacobowitz on Jun 27, 2018

technical

Typedapi or how to derive your clients and servers from types

by Paul Heymann on Jun 15, 2018

technical

Shared State in Functional Programming

by Gabriel Volpe on Jun 07, 2018

technical

Tagless Final Algebras and Streaming

by Gabriel Volpe on May 09, 2018

technical

Product with Serializable

by Cody Allen on May 09, 2018

technical

Rethinking MonadError

by Luka Jacobowitz on Apr 13, 2018

technical

Optimizing Tagless Final – Saying farewell to Free

by Luka Jacobowitz on Dec 27, 2017

technical

Announcement: cats 1.0.0

by Kailuo Wang on Dec 25, 2017

technical

Who implements the typeclass instance?

by Stephen Compall on Dec 20, 2017

technical

There are at least three types of strings

by Stephen Compall on Sep 05, 2017

technical

Announcement: cats 1.0.0-MF

by Kailuo Wang on Aug 04, 2017

technical

Validated Configurations with Ciris

by Viktor Lövgren on Jun 21, 2017

technical

Compile time dimensional analysis with Libra

by Zainab Ali on Jun 13, 2017

technical

An IO monad for cats

by Daniel Spiewak on May 02, 2017

technical

Equivalence versus Equality

by Tomas Mikula on Apr 02, 2017

technical

Four ways to escape a cake

by Stephen Compall on Mar 01, 2017

technical

There are more types than classes

by Stephen Compall on Feb 13, 2017

technical

API Design for Heaps (aka Priority Queues)

by Chris Okasaki on Nov 17, 2016

technical

EDSLs as functions

by Adelbert Chang on Oct 26, 2016

technical

Let's build ourselves a small ScalaCheck

by Lars Hupel on Oct 17, 2016

technical

Subtype type classes don't work

by Adelbert Chang on Sep 30, 2016

technical

It's programs all the way down

by Adelbert Chang on Sep 21, 2016

technical

Choosing variance for a phantom type

by Stephen Compall on Sep 19, 2016

technical

Higher-kinded types: the difference between giving up, and moving forward

by Stephen Compall on Aug 21, 2016

technical

Making internal state functional

by Stephen Compall on May 10, 2016

technical

Information hiding, enforced

by Adelbert Chang on Mar 13, 2016

technical

Of variance and functors

by Adelbert Chang on Feb 04, 2016

technical

It’s existential on the inside

by Stephen Compall on Jan 28, 2016

technical

To change types, change values

by Stephen Compall on Sep 21, 2015

technical

Symbolic operators and type classes for Cats

by Erik Osheim on Aug 07, 2015

technical

Machinist vs. value classes

by Erik Osheim on Aug 06, 2015

technical

Values never change types

by Stephen Compall on Jul 30, 2015

technical

Nested existentials

by Stephen Compall on Jul 27, 2015

technical

Type projection isn't that specific

by Stephen Compall on Jul 23, 2015

technical

What happens when I forget a refinement?

by Stephen Compall on Jul 19, 2015

technical

When are two methods alike?

by Stephen Compall on Jul 16, 2015

technical

Type members are [almost] type parameters

by Stephen Compall on Jul 13, 2015

technical

Existential types are not raw types

by Stephen Compall on Feb 26, 2015

technical

Why is ADT pattern matching allowed?

by Stephen Compall on Nov 10, 2014

technical

Higher Leibniz

by Stephen Compall on Sep 20, 2014

technical

Typelevel Scala and the future of the Scala ecosystem

by Miles Sabin on Sep 02, 2014

technical

The singleton instance trick is unsafe

by Stephen Compall on Jul 06, 2014

technical

A function from type equality to Leibniz

by Stephen Compall on Jul 02, 2014

technical

How can we map a Set?

by Brian McKenna on Jun 22, 2014

technical

Primitive recursion with fix and Mu

by Stephen Compall on Apr 14, 2014

technical

When can Liskov be lifted?

by Stephen Compall on Mar 09, 2014

technical

How do I error handle thee?

by Adelbert Chang on Feb 21, 2014

technical

When implicitly isn't specific enough

by Stephen Compall on Jan 18, 2014

technical

Towards Scalaz (Part 2)

by Adelbert Chang on Dec 15, 2013

technical

Law Enforcement using Discipline

by Lars Hupel on Nov 17, 2013

technical

Treelog

by Channing Walton on Oct 18, 2013

technical

Towards Scalaz (Part 1)

by Adelbert Chang on Oct 13, 2013

technical

How to use Spire's Ops macros in your own project

by Erik Osheim on Oct 13, 2013

technical

Using scalaz.Unapply

by Stephen Compall on Sep 11, 2013

technical

An Intro to Generic Numeric Programming with Spire

by Tom Switzer on Jul 07, 2013

technical

Deriving Type Class Instances

by Lars Hupel on Jun 24, 2013

technical