See https://haskellstack.org for installation and upgrade instructions. Note: we are releasing a bit earlier than planned due to #3624. As such, not all the binaries have been built yet, but the commonly used 64-bit binaries of Linux static, macOS, and Windows are available. In addition, the Windows installer and binary has not been codesigned (we […]
LAMBDA WORLD Conference Functional programmers are a unique breed of software development professionals. They have decided that the traditional methods to solving problems are not good enough. In their quest to find the most efficient way to find solutions they eventually stumble upon functional programming. Functional programmers also know they are a minority among their […]
The cryptonite library is the de facto standard in Haskell today for cryptography. It provides support for secure random number generic, shared key and public key encryption, message authentification codes (MACs), and—for our purposes today—cryptographic hashes. For those unfamiliar: a hash function is a function that maps data from arbitrary size to a fixed size. […]
Haskell is—perhaps infamously—a lazy language. The basic idea of laziness is pretty easy to sum up in one sentence: values are only computed when they’re needed. But the implications of this are more subtle. In particular, it’s important to understand some crucial topics if you want to write memory- and time-efficient code: Weak head normal […]
First, the boring, not over-the-top version: the Stack team is starting a new initiative, the Stack Issue Triagers. We’re asking for volunteers to go through the Stack issue tracker on Github and help users with support questions get moving more quickly, and alert the development team of bugs that require their attention. A more advanced […]
Let’s say we’re going to be writing some code that needs to know the current time. It would be inefficient to have to recalculate the current time whenever it’s demanded, assuming we demand it more than once per second. Instead, it would be more efficient to have a variable that gets updated once per second. […]
For the past few years, Francesco Mazzoli and I have discussed issues around monad transformers—and the need to run their actions in IO—on a fairly regular basis. I wrote the monad-unlift library a while ago to try and address these concerns. But recent work I did in Stack on the extensible snapshots branch demonstrated some […]