Menu

The Typelevel Summit in Boulder is Cancelled

As a result of LambdaConf’s decision to invite Curtis Yarvin as a speaker, the organizers of the Typelevel Summit Boulder have decided that affiliation with LambdaConf is no longer compatible with Typelevel’s goals, and we are cancelling the event, which was scheduled to happen on the Wednesday before the conference....

Information hiding, enforced

Code should be reusable. An expression traversing a data structure shouldn’t be written multiple times, it should be pulled out into a generic traversal function. At a larger scale, a random number generator shouldn’t be written multiple times, but rather pulled out into a module that can be used by...

Of variance and functors

Scala’s type system allows us to annotate type parameters with their variance: covariant, contravariant, invariant. Variance allows us to define the subtyping relationships between type constructors – that is, under which conditions F[A] is a subtype of F[B]. Similarly in functional programming, there are covariant functors, contravariant functors, and invariant...

First batch of talks at the Philadelphia Summit

The work on the programme for the Philadelphia Summit is in full swing! As announced earlier, we’re happy to share with you the first batch of accepted talks. Don’t worry though, there’s still time until the end of the week to submit a proposal. Becoming a cat(s) person Want to...

It’s existential on the inside

This is the eighth of a series of articles on “Type Parameters and Type Members”. You may wish to check out the beginning, which introduces the PList type we refer to throughout this article without further ado. When you start working with type parameters, nothing makes it immediately apparent that...

Keynote at the Philadelphia Summit

While the CfP for the Philadelphia Summit is still open (have you submitted a proposal yet?), we can already announce our keynote speaker: Stephanie Weirich is a Professor at the University of Pennsylvania. Her research centers on programming languages, type theory and machine-assisted reasoning. In particular, she studies generic programming,...

Assistance and Bursaries for the Typelevel Summits

As it says in our code of conduct, we are dedicated to creating a harrassment-free, inclusive community of developers. We want to extend this philosophy to the Typelevel Summits in Philadelphia and Oslo by providing assistance and bursaries to help speakers and attendees who would otherwise not be able to...

Announcement: Typelevel Summits coming up in 2016

We have a big announcement to make. In 2016, there will be not just one, but two Typelevel Summits. Also, we’ve updated our website to include an up-to-date list of Typelevel projects. There’s been much work behind the scenes which we will talk about in a later post, so stay...

To change types, change values

This is the seventh of a series of articles on “Type Parameters and Type Members”. You may wish to start at the beginning; more specifically, this post is meant as a followup to the previous entry. However, in a first for this series, it stands on its own, as introductory...

Symbolic operators and type classes for Cats

This post is an introduction into how operators are implemented in Cats and has been originally published in August 2015. Some more details can be found in the previous post. One of the simplest and most recognizable type classes is the semigroup. This type class abstracts over the ability to...