u/m-chav

Can Haskell Become a Great Language for Data Science? | Michael Chavinda | ZuriHac 2026
▲ 87 r/haskell

Can Haskell Become a Great Language for Data Science? | Michael Chavinda | ZuriHac 2026

youtu.be
u/m-chav — 4 days ago
▲ 26 r/haskell

[ANN] siza - pair with a local LLM on a Haskell notebook

Github

Some background

One of my biggest motivations for doing data work in Haskell has been the promise that types can enable better program verification and synthesis. In fact, it was one of my stretch goals for writing dataframe in the first place. Additionally, I had seen a video some years ago that notebooks are a good platform for program synthesis. My first swing at the problem was a SKILL.md that instructed an LLM on how to use Sabela notebooks. Large/frontier models didn't struggle with writing Haskell but their contexts were typically more bloated by internet searches and churn from trying to fix simple compiler errors. Python was "in the weights" so was generated faster and with less tokens overall.

With small, local modes (<20b params) models the problem worsens. These models hallucinate Haskell modules, struggle with rule following, have smaller context windows. They typically fall back to writing Haskell from "the weights" and will steer clear of using dataframe or a newer library because a simple web search would bloat context.

The problem has two potential solutions:

  • Fine tune models to perform better at Haskell
  • Use the LLM as a weak proposer then build tooling around it to make search and repair more efficient

In the spirit of synthesis I went with the second approach.

What siza does

Siza, another Ndebele word, is a harness (and some associatd mcp tools) that drives a Sabela notebook. The goal of the harness is to address the problems above. I'll follow up with a longer blog post on the sorts of interventions that made this possible but broadly speaking it's a lot of type directed searching and a little bit of context management.

You can see a verbose transcript of how it performed with minimal to no guidance on an out of distribution task: Can you load the wine dataset into a dataframe and show some summary statistics about it?

Haskell is an amazing language for these sorts of tasks and the core of making it more useful is a pretty interesting engineering problem in my view. And small models, like testing anything in low resource environments, really teases those engineering problems out.

Again, will do a bigger blog post later.

reddit.com
u/m-chav — 25 days ago
▲ 55 r/haskell

Learn You A Haskell live notebook

Since the community edition of LYAH is a bunch of markdown files it's a good candidate for porting over to Sabela.

You can click through it here. In the gallery it runs with microhs but when you fork it runs with ghc. A couple of the later chapters aren't microhs or notebook friendly but they can easily be ported over to look notebook like.

reddit.com
u/m-chav — 2 months ago
▲ 27 r/haskell

[ANN] dataframe-persistent 0.3.0.0

Hackage

Easier API for working with SQL.

Untyped:

df &lt;- readTable "./data/chinook.db" "artists"
print $ df
      &amp; filterWhere (col "ArtistId" .&lt;. 10)
      &amp; take 5

Typed:

$(declareTable "./data/chinook.db" "artists")


df &lt;- readTableTyped @ArtistsSchema "./data/chinook.db" "artists"
print $ df
      &amp; filterWhere (col @"ArtistId" .&lt;. 10)
      &amp; take 5

More examples in README

reddit.com
u/m-chav — 3 months ago