Menu

Making internal state functional

This is the ninth of a series of articles on “Type Parameters and Type Members”. Scala’s CanBuildFrom API is relatively well-founded and flexible; in combination with GADTs, it can provide that flexibility in a fully type-safe way, if users choose not to circumvent it with typecasting. However, it is designed...

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

Update: The summits are over, which means applying for assistance is not possible any longer. 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...

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...