Sovereign Tech Fund invests in Cabal as critical Haskell infrastructure (well-typed.com)
We are delighted to announce that the Sovereign Tech Fund is investing in the development and maintenance of Cabal, the Haskell build system.
We are delighted to announce that the Sovereign Tech Fund is investing in the development and maintenance of Cabal, the Haskell build system.
The Haskell Symposium is a two-day workshop co-located with the International Conference on Functional Programming (ICFP). In a previous blog post we discussed the Haskell Implementors’ Workshop (HIW), which is another Haskell-workshop co-located with ICFP, but unlike HIW, the Haskell Symposium is a scientific workshop with...
In this episode, we are going to look at the common design pattern where we abstract all the fields of a record type over a type constructor which can then be instantiated to the identity to get the original record type back, but also to various other interesting type constructors. We are going to look at a few examples, and are...
This will be streamed today, 2023-08-30, at 1830 UTC.
Read about the latest GHC development activity in this report from Well-Typed. Highlights include bug fixes and performance improvements.
ghc-debug is a debugging tool for performing precise heap analysis of Haskell programs (check out our previous post introducing it). While working on Eras Profiling, we took the opportunity to make some much needed improvements and quality of life fixes to both the ghc-debug library and the...
This is the first of a two-part series of blog posts on GHC specialization, an optimization technique used by GHC to eliminate the performance overhead of ad-hoc polymorphism and enable other powerful optimizations. There will also be a Haskell Unfolder episode about this topic.
When composing several list-processing functions, GHC employs an optimisation called foldr-build fusion. Fusion combines functions in such a way that any intermediate lists can often be eliminated completely. In this episode, we will look at how this optimisation works, and at how it is implemented in GHC: not as built-in...
Read about the latest GHC development activity in this report from Well-Typed.
In this (beginner-friendly) episode, we will use Dijkstra's shortest paths algorithm as an example of how one can go about implementing an algorithm given in imperative pseudo-code in idiomatic Haskell. We will focus on readability, not on performance.
Sometimes, for example when working with type-level lists, you have to compute with constraints. For example, you might want to say that a constraint holds for all types in a type-level list. In this episode, we will explore this special case of type-level programming in Haskell. We will also revisit type class aliases and take...
Consider a Haskell thread trying to read from a TMVar:...
In this episode, Andres and Edsko will talk about Edsko's visit to ICFP (the International Conference on Functional Programming), the Haskell Symposium, and HIW (the Haskell Implementors' Workshop) from 4-9 September 2023 in Seattle. We will highlight a few select papers from these events....
Read about recent contributions to HLS development, release management and performance improvements thanks to work by Well-Typed.
The best case scenario when testing a piece of software is when we have a reference implementation to compare against. Often however such a reference is not available, begging the question how to test a function if we cannot verify what that function computes exactly. In this episode we will consider how to define properties to...
In this beginner-oriented episode we introduce a useful combinator called repeatedly, which captures the concept "repeatedly execute an action to a bunch of arguments". We will discuss both how to implement this combinator as well as some use cases....
In this episode, we'll see how deriving-via can be used to capture rules that relate type classes to each other. As a specific example, we will discuss the definition of the Monad type class: ever since this definition was changed back in 2015 in the Applicative Monad Proposal, instantiating Monad to a new datatype requires...
Haddock is the documentation generation tool for Haskell....
Read about the latest GHC development activity in this report from Well-Typed. Highlights include bug fixes and performance improvements.