Home
Tom's open source
Cancel

Haskell's WebDriver package is back in business

TL;DR The webdriver package has undergone some major changes and now supports Selenium 3 and 4 with the release of version 0.13.0.0! Some history This project has been on autopilot for a while n...

Two ways System.IO.withFile has messed with me

Gotcha #1: handles getting closed This is not really withFile’s fault, but: main = do withFile "/tmp/foo.txt" WriteMode $ \h -> do (_, _, _, p1) <- createProcess ((proc "hello" []) { ...

A fast Myers diff implementation in Haskell

This post is about the fast string diff implementation I released here. The same content can be found in the README. Introduction This is a fast Haskell implementation of the Myers text diff algo...

Type Families Typescript

type-families-typescript This is a demonstration of how to map a certain cool API design pattern from Haskell to a TypeScript client library. The Setup Suppose you want to write a service that ...

Haskell's slow close_fds problem

On most Linux systems, the following simple Haskell program will print “hello” immediately. But with one simple configuration change, it can bring your system to its knees for several minutes. mod...

Introducing Sandwich

This post is also hosted on the Sandwich site. It’s been a little over a year since I made the first commit on a new test framework. At the time I was working with a large and complex test suite, ...

Announcing Aeson-TypeScript

Haskell already has world-class support for converting data to and from JSON using the Aeson library. But what if you want to ensure that your TypeScript frontend is using your data types correctly...