UK air traffic control meltdown (jameshaydon.github.io)
Some notes about the UK air traffic control meltdown
Some notes about the UK air traffic control meltdown
This post demonstrates how to outlaw specific return types from servant APIs. Perhaps we have types that are intended for backend use only, or maybe the types are legal in one API but illegal in another yet the backend code is a monolith. Whatever the reason, we can encode a type-level assertion over a servant API that produces...
It is finally time to take a look at how GHC introduces thunks to implement laziness. We first consider ways that thunking can sometimes be viewed as an optimization, then try to understand the source of unnecessary thunking in most Haskell programs.
Read about recent contributions to HLS development, release management and performance improvements thanks to work by Well-Typed.
A lot of the Rust Haskell interop examples out there are for small, synchronous libraries. They also tend to omit how to actually package the Rust library. We'll take a look at challenges and solutions for how to integrate a Tokio-based Rust library with Haskell.
In this interview with Serokell, Lead Software Developers фе RELEX Solutions, Mats Rauhala and Martin Potier, shared with us their reasons for choosing Haskell for their project and their experience implementing it.
Dear Haskell Community, Since May, 2022, I’ve had the honor and pleasure of serving as the Executive Director of the Haskell Foundation. As many of you know, I’ve had a deep and abiding interest in dependently-typed programming, formal verification, compile-time metaprogramming, and programmer tooling. A rare opportunity...
News about the Haskell programming language from 2023-08-31.
This will be streamed today, 2023-08-30, at 1830 UTC.
The GHC developers are happy to announce the availability of GHC 9.4.7. Binary...
I gave a talk on monads to some friends yesterday and recorded it for anyone who's interested. They are current and retired programmers, so the talk may suit others in that line of work....
To better understand some counterintuitive evaluation puzzles, we explore the notion of “demand” as it exists in Haskell and discuss how it influences GHC’s choice of evaluation strategy.
Learn how to combine the best of both TypeScript and Haskell for frontend development. TypeScript developers will learn how to take the reactive principles that made React successful to the next level with pure Functional Reactive Programming (FRP). Haskell developers on the other hand will learn how to easily integrate with the...
This episode's guest is Ranjit Jhala. We discuss how Ranjit developed Liquid Haskell as a litmus test, because if Haskell programmer's won't use Liquid Types, no one will. We also hear how writing Haskell is a joy and how you should never underestimate your students.
News about the Haskell programming language from 2023-08-24.
Haddock is the documentation generation tool for Haskell....
Answering the question raised at the end of Part 1, we take a look at how a hypothetical Strict Haskell would tie the compilers hands despite pervasive purity. We also examine how laziness permits optimizations that come with no intrinsic cost and compare its benefits to a strict language with opt-in laziness.
Consider the following two implementations of a 'map' function for arrays. Can you guess which one of them is the fastest without running them? (Please ignore the uses of unsafeCoerce :P)...
News about the Haskell programming language from 2023-08-17.
Generate contextually sensible fuzz tests for servant apps
It’s well known in the Haskell world that type class instances cannot be overridden. When you have an instance in scope, you are stuck with it. Is this a feature? Is this a bug? Maybe either depending on the problem you are facing. I have my own opinions, but let me lay out the case for wanting to be able to override...
Laziness is a critical but often maligned aspect of Haskell, and as this video argues, it is frequently misunderstood. In this video, Alexis explains how even strict evaluation in imperative programming languages is not always quite as strict as it seems, and how deviating from strictness can often significantly improve...