Typed Chronicles

Vincent Hanquez's adventures


Compiling GHC with Stack for Stack

While Stack is really good at magically summoning all the compilers you need, adding your own compiled compiler is not quite documented. For testing specific version that doesn't have a release, or testing your own compiler modification, it's useful to add your own compiler in a build tool that by default works in a multi compiler settings.

read next ⇨

Efficient CStruct

Dealing with complex C-structure-like data in haskell often force the developer to have to deal with C files, and create a system that is usually a tradeoff between efficiency, modularity and safety.

The Foreign class doesn't quite cut it, external program needs C files, binary parsers (binary, cereal) are not efficient or modular.

Let's see if we can do better using the advanced haskell type system.

read next ⇨


A new hope. Foundation is a new library that tries to define a new modern Haskell framework. It is also trying to be more than a library: A common place for the community to improve things and define new things

read next ⇨

Combining Rust and Haskell

Rust is a pretty interesting language, in the area of C++ but more modern / better. The stated goal of rust are: "a systems programming language focused on three goals: safety, speed, and concurrency". Combining Rust with Haskell could create some interesting use cases, and could replace use of C in some projects while providing a more high level and safer approach where Haskell cannot be used.

read next ⇨

Announcing: cryptonite

For the last 5 years, I've worked intermittently on cryptographic related packages for Haskell. Lately, I've consolidated it all in one single package. Announcing cryptonite

read next ⇨

Simple time with Hourglass

Each time, I've used the time API in Haskell, I'm left with the distinct feeling that the API is not what I want it to be. After one time too many searching the API to do some basic thing, I've decided to look at the design space and just try implementing what I want to use.

read next ⇨

Listing licenses with cabal-db

Following discussions with fellow haskellers, regarding the need to be careful with adding packages that could depends on GPL or proprietary licenses, it turns out it's not easy to get your dependencies's licenses listed.

read next ⇨

unix memory

On unix system, we get access to syscalls that maps files or devices into memory. The main syscall is mmap, but there's also some others syscalls in the same family to handle mapped memories like mlock, munlock, mprotect, madvise, msync.

read next ⇨

announcement: tls-1.2 is out

One year ago, I've started some big changes on the tls package. I've finally manage to wrap it up in something that people can use straight out of hackage.

read next ⇨

haskell crypto platform

One of my side projects that has been running for couple of years now, was to get Cryptography up to scratch in haskell. Back when I started TLS, there were many various cryptography related projects and libraries. Many were not easy to use, none were consistent, many had performance problems.

read next ⇨

ghc core with style

After reading one too many time ghc core's output, i've been itching to have a more interactive output.

read next ⇨

cabal-db : simple tool for cabal database queries

Following previous experiment with Cabal library and querying the state of the hackage world here, I've extended and wrapped the tool into a cabal package.

read next ⇨