Issue 70

Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on correctness, productivity, and expressiveness. This is a weekly summary of what’s going on in its community.

Want to see something featured in Haskell Weekly? We love contributions! Tweet us at @HaskellWeekly or open a pull request.

Featured

  • Cross-referenced codebase for Stackage LTS 9.2 available

    To find out who else uses your favorite functions and how. For example, click async to get all the call sites of that method.

  • Compact normal forms + linear types = efficient network communication

    In this post, I want to use the same idea of tracking states in types, but applied to a more unusual example from our paper: sending rich structured data types across the network and back with as little copying as possible.

  • Roll your own Bitcoin exchange in Haskell

    This article will show you how to: Design an order book that can handle limit orders and market orders; Install automated sanity checks that run on every write to the order book, preventing hacks and implementation bugs.

  • An example of using laziness

    The problem is about finding out in how many ways you can make change for a certain amount of money using an infinite supply of coins of different values.

  • Beginner mistakes and oddities I encountered

    Time sure does fly don’t it? I’m going to go over a lot of the beginner mistakes and little pitfalls and paper cuts I’ve encountered so far while working on the GHC test suite.

  • Introducing Haskey (Summer of Haskell 2017)

    This blog post introduces the Haskey project, an ACID compliant embedded key-value store entirely written in Haskell, based on an MVCC B+-tree implementation.

  • Migrating a REST API from JavaScript to Haskell

    I noticed that running the server was costing me more than I’d like. This was because the REST API consumed too much memory, which cost me a bit too much money. So, to save money, I decided to rewrite the API in Haskell.

  • Exiting a Haskell process

    To understand what’s happening, let’s look at a simplified version of the implementation of the exitWith function. I would have anticipated that this would, you know, actually exit the process.

  • Fixed-length vector types in Haskell

    So here we are in 2017. GHC 8.2 is here, and base is in version 4.10. What’s the “right” way to do fixed-length vectors in Haskell?

  • Type Tac Toe: Advanced type safety

    Today we’ll be looking at type programming in Haskell. Programming in type-land allows us to teach the compiler a few new tricks and to verify additional constraints at compile-time rather than run-time.

Jobs

Sadly we aren’t currently aware of any Haskell job openings. Are you looking to hire a Haskell developer? If so, consider advertising with us!

In brief

Package of the week

This week’s package of the week is stm, a library that provides software transactional memory. STM is a modular, composable concurrency abstraction.

Call for participation

Events