Announcing Ahab
Announcing Ahab—a hermeticity analyzer for Bazel.
Announcing Ahab—a hermeticity analyzer for Bazel.
A few announcements for the Haskell community.
The post explains how I use GitHub actions to setup Haskell CI.
The post explains why data-default should not be used.
In this post I show a use case and a way to implement conditional fixing of existentially quantified variables by universally quantified variables.
This article is about getting perfect exposure without giving up any artistic control on modern digital cameras.
This is a comparison between the two languages by someone who has written code professionally in both.
Tweaks I made to the configuration of the Canon EOS R camera with explanations why.
Digital photgraphy workflow I use on Linux.
New version of the parsing library has been released.
The post compares OCaml's module system with Haskell's type classes.
Let's talk about monads in Haskell.
In this post I'm going to give an idea of how existentials can be useful in Haskell.
A post about the most important and exiciting changes in Megaparsec 7.
The post describes design of a library which implements refined types. Novelty of the library is that it allows us to establish meaningful connections between properties and do logical conclusions.
Announcing GHC syntax highlighter, a package that allows to highlight Haskell code using lexer of GHC itself.
A short update about the MMark project.
In this post I describe essential changes to Req in version 1.0.0, dig into the low-level API of http-client, how it does streaming, and how it is used in Req.
In this post I talk about a new markdown processor I've been working on.
We all know the ByteString and Text types, but are they always the best choice? What else does the Haskell ecosystem provide?
Before you start writing your code using free monads read this, you may change your mind.
Announing my new package for working with Haskell Tool Stack — Hasky Stack.
The second and final post about Megaparsec 6 development. This time we walk through re-design of parse error messages.
The post describes extension of the Stream type class that allowed to make the Megaparsec library more efficient and simplify code base.
It took some time, but the most popular Haskell library for dealing with well-typed paths got to its next (semi)-major version, yay!
One more blog post about Haskell competing with C in speed.
Hints how to make your typing experience more pleasant and protect yourself from RSI in the future.
I've set up a new site where I'll host my blog, tutorials, and more.
A write-up about motivation and design of the forma library.
This blog post summarizes new features added to Megaparsec in the second half of 2016.
Category theory notions in simple to understand (I hope), but concise form, part I.
My new Identicon package for identicon generation.
Finally Megaparsec 5 is out, what's new?
My experience with the Dvorak layout.