Haskell Community [Unofficial]
@discourse.haskell.org.web.brid.gy
6046 documents discourse.haskell.org
View on Bluesky
Call for proposals: Reviewing, testing, and managing LLM generated Haskell

Haven’t seen Grace mentioned here:

github.com

GitHub - Gabriella439/grace: A prompt engineering functional programming...

A prompt engineering functional programming language

Beyond agentic coding with Grace (w/ Gabriella Gonzalez)

My favorite YouTube Haskeller Impure Pics had a great video about it. VERY interesting. I like the idea of guardrails on LLM’s and Grace achieves that quite…

Read more →
H2JVM - A Haskell Library for writing JVM Bytecode

The intention is that you can still manually write the desugared instructions if you need to (I can’t think of many situations where you’d need/want to right now though), so there will always be that escape hatch available. Though that’s a very all-or-nothing approach. I think you’re right though, and it probably should be the only option. Thanks again for the feedback.

H2JVM - A Haskell Library for writing JVM Bytecode

I wouldn’t mind that, but I am the one who suggested it. If anyone has a compelling reason, you could offer the less-safe API as an escape hatch. But some form of recursive do notation has been around for a long time. mdo was added in GHC 6.0 (May 2003), deprecated in 6.12.1 (December 2009) when rec was added, and then resurrected in 7.6.1 (September 2012). So I think it’s safe to say…

Looking for a parsec maintainer to assist with GHC 9.14 compatibility (is this package still actively maintained?)

hasufell:

This looks like an error in the GHC release process.
@wz1000 bumped this in the GHC submodules.

Thanks for the pointer @hasufell.

It does seem that GHC’s GitLab mirror of parsec has the following two commits:

  • branch ghc-9.14 with commit 552730e2 (bump base to <4.23)
  • branch ghc-10.0 with commit 15f8a710 (bump base to <4.24)

AFAICT neither of these branches…

Read more →
H2JVM - A Haskell Library for writing JVM Bytecode

That’s fair, for appending single instructions it’s probably worse, although I haven’t benchmarked. I think it should be better when you can append chunks of several instructions, so that it works like a builder.

The more important thing imo is to avoid the possibility of a “sign error” by putting <> in a natural order, and reverse-list also helps with that.

[ANN] tricorder - a new development tool for Haskell and LLMs

Does it mean that it tries to use multiple home units by default?

Yes, that’s correct!

The executable this creates is called tricorder-exe. Perhaps it should be simply tricorder?

Whoops! I just released version 1.0.0.1 that is actually called tricorder. Thanks for catching it!

Have you tried running it for an existing project? I’m at ZuriHac and found a case where a module using a…

[RFC] Sibyl: Time Series Analysis in Haskell

Bumping this thread for ZuriHac 2026.

I am planning to start up work on Sibyl again (I got super bogged down with university work) after ZuriHac ends and are currently wondering if it would be possible to get an idea of how people feel about time series work in Haskell. If you’re a data scientist or statistician – please, please comment as to how a library like this would save you time.

Sibyl,…

Read more →
"I built a web language with Haskell-like syntax for fun.

I’ve been building a web language with Haskell-like syntax and a PHP-like execution model server/client separation in the same file. It’s not complete but it’s functional. Built it mostly for fun rather than to solve any specific problem. Leaving it here in case anyone finds it interesting.

github.com

GitHub - Atom1c-B1rd/HSKL-Language

Contribute to Atom1c-B1rd/HSKL-Language development by…

[ANN] tricorder - a new development tool for Haskell and LLMs

The idea of having a separate daemon that the LLM can query is very neat!

In the demo, you explicitly use the /tricorder command to invoke tricorder. I guess you can also say something like “Use tricorder for getting compilation errors” in the session to activate the skill?

cgeorgii:

cabal install tricorder

The executable this creates is called tricorder-exe. Perhaps it should be…

Read more →
Is there a way to get a OsChar literal more conveniently than osp + head

I added OsChar conversions to Witch: Add OsChar conversions by tfausak · Pull Request #158 · tfausak/witch · GitHub

Normally you could use liftedFrom to check values at compile time, like $$(liftedInto @OsChar ‘x’). But unfortunately that won’t work because of a missing Lift instance: Allow lifting OsChar · Issue #44 · haskell/os-string · GitHub

Also note that going through…

Read more →
[ANN] tricorder - a new development tool for Haskell and LLMs

Hey everyone,

for those of you who don’t know me, my name is Christian and I’m an engineer at Tweag.

I am very pleased to announce the very first release of tricorder!

tricorder has been my daily driver for Haskell development for months now. It works really well as a standalone replacement for ghcid or ghciwatch with some features that make it very attractive:

  • Multiple component…
Read more →
Serokell’s Work on GHC: Dependent Types, Part 5

I’m surprised/disappointed. This gets rejected:

t42 = Typed (type Int) 42

    Unexpected keyword `type’
    Suggested fix: … `ExplicitNamespaces’ … (implied by …)

If there’s anything that implies that extension, surely it would be RequiredTypeArguments(?) I particularly remember that stipulation in the discussion.

Serokell’s Work on GHC: Dependent Types, Part 5
  • The flip situation is indeed rather disappointing. For reference, Agda’s type for flip looks like this:

    flip : ∀ {A : Set a} {B : Set b} {C : A → B → Set c} →
           ((x : A) (y : B) → C x y) → ((y : B) (x : A) → C x y)
    flip f = λ y x → f x y
    

And it relies on higher-order unification to instantiate C at use sites. It’s not clear to me what the Haskell solution…

Read more →
Euterpea library to create music with Haskell

in ghci :
- I played the file (i.e. saved in music.hs) using my piano (BlueTooth MIDI #7),

  • saved to a midi file called music.midi and

  • opened the file using MuseScore

    Loaded package environment from /Users/me/.ghc/aarch64-darwin-9.6.6/environments/default
    GHCi, version 9.6.6:
    :? for help
    ghci> :l music.hs
    [1 of 2] Compiling Main ( music.hs,…

Read more →
Monad of No Return: The Great Patchening

Hi all!

_tl;dr: I have 148 packages on stackage to patch for compatibility, and I’d like your help!_

I’ve got another update on the Monad of No Return/Monoid of No Mappend proposal.

Following proposal acceptance just under a year ago, I started implementation this year. Recently the MR is in a good enough state for me to check it against clc-stackage, a tool for building all of stackage…

Read more →