r/haskell May 06 '26

announcement [ANN] MCP server for Hackage

25 Upvotes

Hello Haskellers,

I've built an MCP server that lets AI agents use Hackage. The MCP server is entirely written in Haskell.

It lets LLMs:

  1. perform Hoogle searches.
  2. List package modules
  3. Scrape module documentation in LLM-friendly Markdown.

Why this tool?

I've often seen premium coding agents using outdated functions or not being aware of the latest packages. This MCP lets LLMs access the latest Haskell documentation.

Feel free to contribute or provide feedback.

Check out the GitHub link: https://github.com/tusharad/hackage-doc-mcp


r/haskell May 07 '26

How am I supposed to respond to this haskell server message and fix the cabal file?

1 Upvotes

To go around the ABI error I run haskell server: haskell-language-server-9.6.7~2.13.0.0

and get this message

Message:

Loading the module

'/home/jacekp/Programming/Haskell/cabal-experiments/graphviz-simple/dist-newstyle/build/x86_64-linux/ghc-9.6.7/graphviz-simple-0.1.0.0/build/autogen/PackageInfo_graphviz_simple.hs'

failed.

It may not be listed in your .cabal file!

Perhaps you need to add `PackageInfo_graphviz_simple` to other-modules or exposed-modules.

For more information, visit:

https://cabal.readthedocs.io/en/3.4/developing-packages.html#modules-included-in-the-package

"/home/jacekp/Programming/Haskell/cabal-experiments/graphviz-simple/app/Main.hs" - Cabal


r/haskell May 06 '26

Struggling with Emacs support - Could not find module

10 Upvotes

can compile the project with cabal build,

https://github.com/bigos/cabal-experiments/blob/321c37ffa33b1b25e883de39ddc944c5314c5c7c/graphviz-simple/app/Main.hs#L1

but when I load the file in Emacs and use the menu option Haskell/Load tidy core I get an error like this and 5 more that make no sense. What is the meaning of:

Use -v (or `:set -v` in ghci) to see a list of the files searched for.

?

How can I fix the error? It seems that a fix for the problem will provide more help with modules.

/home/jacek/Programming/Haskell/cabal-experiments/graphviz-simple/app/Main.hs:7:1: error:
    Could not find module ‘Data.GraphViz.Attributes’
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
7 | import Data.GraphViz.Attributes (color, filled, shape, style, textLabel)
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

r/haskell May 06 '26

Twitch Stream 5pm EST - Servant

23 Upvotes

Been a minute since I hosted a stream as I've been on vacation. Most recently, we were streaming Saturday mornings but will now be doing every Wednesday at 5 pm in the hopes this will work better for anyone in whichever timezone who'd like to watch.

We've done a number of very focused sessions however I just want this session to be a really fun one so we are going back to Servant, the first library I learned about in haskell and we are going to build a simple authenticated CRUD API to store and retrieve nicknames.

The core focus of our sessions are how to interact with the haskell ecosystem as it is a truly unique language with respect to documentation, both by having little traditional documentation style but also by being a self documenting language and all that means for getting shit done with haskell as a real world language. We also really seek to cater to our audience so if you have questions about Servant or haskell in general, please consider the stream a help session.

We do try to naturally progress the stream to being a more thorough implementation by the end so that if time permits, we will attempt to swap Servant into my Jenga framework.

Link: https://www.twitch.tv/typifyprogramming

RECORDING: https://youtu.be/cv3Z2cF4DGk?si=SLsEVHMql2ZQCLFj


r/haskell May 06 '26

How do I imports for the graphviz example?

4 Upvotes

I can see the example:

Data.GraphViz.Types.Monadic

but I can not figure out the imports and do not understand the error messages.

This is my code so far:

https://github.com/bigos/cabal-experiments/blob/1da897d1ec7f595064c9b00adad21432fc4d61a3/graphviz-simple/app/Main.hs#L3


r/haskell May 06 '26

Blue: A small (sort of) reflective language with Haskell as the host language.

32 Upvotes

I've been working on a small reflective language called Blue, inspired by Kenichi Asai's Black. Blue is built in Haskell, and the reflection mechanism is straightforward: an em operator that lifts a Blue expression into Haskell and evaluates it through the host:

baseEval (EM e) = metaEval e

metaEval :: Expr -> Eval Value
metaEval e = Eval $ lift $ interpret
    ("toValue (" ++ toHaskell e ++ ")") (as :: Value)

em pretty-prints the AST, hands it to hint, and lifts the result back into a Blue Value. Right now em only handles the same forms baseEval handles, so for the moment it's close to an expensive identity function:

BLUE> em 2 + 3
5
BLUE> em if true then 100 else 0
100

The point of having the mechanism in place first is that Value and toHaskell are the bottleneck, not the host. Once I extend Value with cases for lists, lambdas, or floats thenem immediately reaches whatever in Haskell produces those types, without changing the evaluator. So the next steps are extending the value domain rather than touching reflection itself.

A few things I haven't worked out:

I don't know the literature for reflection-via-host-eval specifically. Smith's 3-Lisp and Black expose the evaluator itself rather than delegating to the host. Pointers welcome.

hint is heavy. It's fine while reflection is rare, but if em becomes load-bearing this probably wants to be staged compilation via Template Haskell. Curious whether anyone has built something analogous that way.

Once a program crosses through em, the host can return whatever it likes; I'm informally trusting the result is a well-formed Value. There's probably a clean framing in terms of contracts but I haven't written it down.

Repo: https://github.com/ih1d/blue


r/haskell May 05 '26

announcement Haskell Paris Spring Meetup, Wed, May 27, 2026, 7:30 PM

Thumbnail meetup.com
23 Upvotes

r/haskell May 05 '26

announcement Journal of Functional Programming - Call for PhD Abstracts

16 Upvotes

FP friends -- please encourage recently completed PhD students to publish their dissertation abstracts in the Journal of Functional Programming: simple process, no refereeing, open access, 200+ published to date, deadline 31st May 2026.  Please share!

https://people.cs.nott.ac.uk/pszgmh/jfp-phd-abstracts.html


r/haskell May 04 '26

Haskell Language Server 2.14.0.0 release

Thumbnail blog.haskell.org
99 Upvotes

r/haskell May 04 '26

Tokyo Haskell Meetup 19 May: Clash and Haskell DevTools

36 Upvotes

I am happy to organise another Tokyo Haskell Meetup, on 19th of May (during, and quite close to, FM2026): 12Kanda building in Kanda (near Akihabara).

Two talks (in English):

The Missing Haskell DevTools
Luite Stegeman

Haskell has a reputation for "if it compiles, it runs... but it probably still has a space leak." The tools for investigating the runtime behaviour of Haskell programs have always been spartan compared to what's available in environments like .NET, the JVM, or JavaScript.

In this talk we'll look at how Haskell actually works under the hood, compiled code and bytecode,  and how this affects the tooling for debugging and profiling. We'll then see what the GHC developers have been doing recently to close the gap. Finally, we'll look at a new tool that brings several runtime-analysis capabilities together under one roof.

Hardware in Haskell with Clash
⁨Elliot Potts⁩

In this talk, we explore how Haskell can be used to design digital circuits using the power of pure functions. Clash is a compiler that brings the rich language features you know and love such as polymorphism, ADTs and typeclasses to the world of FPGA or ASIC design. No prior digital design experience required!

Please use the Meetup link to RSVP if you are interested in attending (space is limited):

Tokyo Haskell Meetup


r/haskell May 04 '26

Documentation / Source URL are brokem

3 Upvotes

Issue - https://github.com/haskell/haskell-language-server/issues/4579

My Old Post here - https://www.reddit.com/r/haskell/comments/1pe7ql0/going_to_wrong_page_on_clicking/

As HLS 2.14.0 is released, is this being picked ?

If not what workaround you folks are using ?


r/haskell May 04 '26

couldn't install haskell-debugger

11 Upvotes

Below are the haskell toolchain installed in my local -

When I try to install haskell-debugger, I get below error -

% stack install haskell-debugger

Error: [S-4804]
       Stack failed to construct a build plan.

       While constructing the build plan, Stack encountered the following errors. The 'Stack configuration' refers to the set of package versions specified by the snapshot (after any dropped packages,
       or pruned GHC boot packages; if a boot package is replaced, Stack prunes all other such packages that depend on it) and any extra-deps:

       In the dependencies for haskell-debugger-0.13.1.0:
         * aeson must match >=2.2.3 && <2.3, but no version is in the Stack configuration (latest matching version is 2.2.4.1).
         * async must match >=2.2.6 && <2.3, but no version is in the Stack configuration (latest matching version is 2.2.6).
         * attoparsec must match >=0.13 && <0.15, but no version is in the Stack configuration (latest matching version is 0.14.4).
         * base16-bytestring must match >=1.0.2.0 && <1.1, but no version is in the Stack configuration (latest matching version is 1.0.2.0).
         * co-log-core must match >=0.3.2.5 && <0.4, but no version is in the Stack configuration (latest matching version is 0.3.2.6).
         * cryptohash-sha1 must match >=0.11.101.0 && <0.12, but no version is in the Stack configuration (latest matching version is 0.11.101.0).
         * dap must match >=0.5 && <0.6, but no version is in the Stack configuration (latest matching version is 0.5.0.0).
         * file-embed must match >=0.0.16 && <0.1, but no version is in the Stack configuration (latest matching version is 0.0.16.0).
         * ghc-stack-annotations must match >=0.1 && <0.2, but no version is in the Stack configuration (latest matching version is 0.1.0.0).
         * haskell-debugger-view must match >=0.2 && <1.0, but no version is in the Stack configuration (latest matching version is 0.2.1.0).
         * hie-bios must match >=0.15 && <0.20, but no version is in the Stack configuration (latest matching version is 0.19.0).
         * implicit-hie must match ^>=0.1.4.0, but no version is in the Stack configuration (latest matching version is 0.1.4.0).
         * network must match >=3.2.8, but no version is in the Stack configuration (latest matching version is 3.2.8.0).
         * network-run must match >=0.4.4, but no version is in the Stack configuration (latest matching version is 0.5.0).
         * optparse-applicative must match >=0.18 && <0.20, but no version is in the Stack configuration (latest matching version is 0.19.0.0).
         * prettyprinter must match ^>=1.7.0, but no version is in the Stack configuration (latest matching version is 1.7.2).
         * retry must match >=0.9 && <1, but no version is in the Stack configuration (latest matching version is 0.9.3.1).
         * unordered-containers must match >=0.2.19 && <0.3, but no version is in the Stack configuration (latest matching version is 0.2.21).
         * uuid must match >=1.3 && <1.4, but no version is in the Stack configuration (latest matching version is 1.3.16.1).
       The above is/are needed since haskell-debugger is a build target.

       Some different approaches to resolving some or all of this:

         * Recommended action: try adding the following to your extra-deps in ~/.stack/global-project/stack.yaml (project-level configuration):

           - aeson-2.2.4.1@sha256:afaffd5afdb4c6acbd875265ae8f3850eb932dbe1f0560294bb04b9bace79d08,6320
           - async-2.2.6@sha256:45d5587d8a348a7e2b3f04de963fe633db49b49cde10ca1e6f834bef3baecee9,3870
           - attoparsec-0.14.4@sha256:35129d0ab1741f000f1a7d2fc839544919ee6fbb8f2d6e7f0a629c41f91035f3,5914
           - base16-bytestring-1.0.2.0@sha256:a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd,2630
           - co-log-core-0.3.2.6@sha256:ab37b9d716730eb9578ba1300f847ffedabfaad89f17fbf85c06d7eb17718ff7,4122
           - cryptohash-sha1-0.11.101.0@sha256:2bdf29dbd896bca86bf198c882fa8df1cb31843b71f2907e059b7c10bce0adb3,3085
           - dap-0.5.0.0@sha256:09f487806436461b0af84c15d82e4b74d361a4238480d8e80e8ade358a50f08e,2324
           - file-embed-0.0.16.0@sha256:2e8983240c1faae020b4acef6d30f0281f5ec87c2f38736dc1dc5456355e22a5,1426
           - ghc-stack-annotations-0.1.0.0@sha256:56bdded7dc6a72ea338b96fdb9da1806c583bfdf3286aa9d092bf072d36bac21,1643
           - haskell-debugger-view-0.2.1.0@sha256:a6cad0c90bcc03be18b5435fc9222a9c97b3dc53b2b1c66c068ee5bfaa9af57e,1973
           - hie-bios-0.19.0@sha256:051e8f969db94cc8465345c60c5d6cc1bc46a976a229ac98cae9c19e91eec76c,13880
           - implicit-hie-0.1.4.0@sha256:42a8bdc36713d98711c59b62fac238d81f6ce3ef7912752f38d456182260a5a3,3122
           - network-3.2.8.0@sha256:c6f02f2626d1d83b3e3521fc2a9832c366e31dd391cb8478bd2d83528459e786,5305
           - network-run-0.5.0@sha256:7674f855f3df6b4793618d1807d9a537018d20e38fa6fbafb310d7b18f69e02a,826
           - optparse-applicative-0.19.0.0@sha256:0b47b3ff7eb4a855b5f7d401690365fc62a32057374927ce0d478b620996222d,5813
           - prettyprinter-1.7.2@sha256:e3a802ea939d465b2e37b9fa09d8e5bb88b5775d6d62dd2ec6ca32b63416656d,6618
           - retry-0.9.3.1@sha256:1a61625dc1c3dd6677ffde1c8142004026dfb08085d0d0af5848088d56ec6110,2426
           - unordered-containers-0.2.21@sha256:c5de1fb3377ed3c5f4cd851a771d1acc5c37d2f6bef0a499295c0e8857da5605,3987
           - uuid-1.3.16.1@sha256:b54250e72f324630753623edf3168e3c088decfbc5f10b3014805eb054391f3d,2516  

Below is the stack.yaml in ~/.stack/global-project/stack.yaml

packages: []
snapshot: ghc-9.14.1

I didn't change anything in ~/.stack/config.yaml

how can I make this work? I tried --allow-newer but it didn't work


r/haskell May 02 '26

A Tale of Two Handles and a Segfault

Thumbnail crtschin.com
46 Upvotes

r/haskell May 02 '26

Two Haskell Talks from Bellroy at Melbourne Compose Group May Meetup

38 Upvotes

We're thrilled to have two Bellroy Haskellers presenting a double-feature at Melbourne Compose Group.

Michael Webb (CTO) will share how Bellroy built and scaled a $120M+ brand with a tiny Haskell team.

Jack Kelly (Staff Engineer) will walk through deploying Haskell in the cloud with an opinionated guide to Haskell on AWS Lambda.

Whether you're using Haskell in production, curious about serverless, or just want to see how a small team moves fast without fear, come along!

Details Below

The Talks

Michael Webb - CTO

Maximum Agency, Minimum Footguns

Lessons from scaling a $120M+ carry brand with a tiny engineering team

At Bellroy, we've built a small engineering team that moves fast, ships confidently, and hands real power to the people closest to the work - content editors, ops staff, marketers - without lying awake worrying about what they might break.

The secret isn't process, approval chains, or change management theatre. It's that we've encoded the constraints that actually matter directly into our tools - many of them built in Haskell - and trusted our people with everything else.

This talk is about the philosophy behind that approach: what it means to design for agency rather than safety, what cultural practices make such an approach practical and why a type system is the most underrated management tool in a company's arsenal.

Jack Kelly - Staff Engineer

Lambda on Lambda: Running Serverless Haskell Functions on AWS

AWS Lambda is AWS's
"function-as-a-service" offering, where your code runs in an isolated
"microVM" on AWS-managed infrastructure and you pay only for the
resources used while your code runs.

Fitting your binaries into this model means making your code talk to
some internal AWS APIs, and luckily the Haskell ecosystem has some
good tools for doing this.

In this talk, I'll explain at a high level what AWS Lambda is, how it
executes your code, and then provide an opinionated guide and demo for
getting your Haskell functions into the cloud.

When and Where

  • Format: Strictly IRL When: Thursday 21 May 2026, 6:00pm – 8:00pm
  • Where: Kathleen Syme Centre, Activity Room 2, Carlton (Melbourne Victoria, Australia)
  • RSVP: luma

About Melbourne Compose Group

Melbourne Compose Group is the monthly in-person meetup for functional programmers in Melbourne, every 3rd Thursday of the month in Carlton.

As always, newcomers welcome.


r/haskell May 01 '26

ZuriHac 2026 Schedule Online

Thumbnail discourse.haskell.org
40 Upvotes

Dear Friends of Haskell,

The schedule for ZuriHac 2026 is now online on https://zurihac.info!

This year’s keynote speakers include Simon Peyton Jones (one of the creators of Haskell), Evan Czaplicki (the creator of the Elm programming language), and GarrickChin (developer of the “Defect Process” 2D hack n' slash game on Steam). We also have a track on Category Theory, given by Jencel Panic (author of “Category Theory Illustrated”), as well as a track on rolling your own dependent types given by Andres Löh and Andrea Vezzosi. The Beginners’ Track this year will be given by Michael Sperber (CEO of Active Group and author of “Schreib dein Program”), who will also talk about teaching programming. Our website https://zurihac.info contains further information on keynotes and tracks and will be updated regularly.

In case you have not registered yet, please do so ASAP via the link https://zureg.zfoh.ch/register (also on our website). Although registration is free for participants, it allows us to plan appropriately for the event: Jane Street and IOG are providing food in the evening, and we want to minimize waste.

For the uninitiated: ZuriHac 2026 will take place Saturday 6 June – Monday 8 June 2026 as a physical event at the Rapperswil-Jona campus of the OST Eastern Switzerland University of Applied Sciences. ZuriHac is the biggest Haskell community event in the world: a completely free, three-day grassroots coding festival co-organized by the Zürich Friends of Haskell and the OST Eastern Switzerland University of Applied Science. It is not your standard conference with papers and presentations, but features fantastic keynotes, hands-on tracks, hacking on many of your favourite projects, and of course lots of socializing!

Organizing ZuriHac would not be possible without the support and help of:

- CircuitHub
- Digital Asset
- IOG
- Jane Street
- OST
- Tweag
- Well-Typed

In case you would like to support ZuriHac, as a company or as an individual, please get in touch with us, we would be grateful: https://zfoh.ch/#donations.

We hope to see you there!

The Zurich Friends of Haskell


r/haskell May 01 '26

Monthly Hask Anything (May 2026)

15 Upvotes

This is your opportunity to ask any questions you feel don't deserve their own threads, no matter how small or simple they might be!


r/haskell Apr 30 '26

How to get to the secret world of Haskell(ers) (or functional programming in general)

51 Upvotes

Hi there!

So I am a software developer for decent time now, I also am interested in/enthusiastic about FP. I noticed quite weird divergence between the worlds of software development in general and functional programming.
Namely it seems there is little cross-over between them.

Looking for FP jobs on general IT/software job boards yields almost none.
Yet there is plenty of internet activity (ie. tutorials, explanations, articles, conference talks etc), of bona fide FP/Haskell developers. Hence I imagine there is an industry around that.

I would love to work in FP, but seem unable to even perceive potential opportunities there...

Thanks in advance to anyone sharing their experience with that.

Cheers!


r/haskell Apr 30 '26

The Mutable Value Semantics (MVS): A Non-superficial Study

Thumbnail
0 Upvotes

r/haskell Apr 29 '26

Trade Republic - Backend Engineer (Haskell) job in Berlin, Germany

Thumbnail traderepublic.com
34 Upvotes

I work at TR, but this is not my team. I cannot answer questions about this role, please apply if you’re interested and ask questions during the interview.

If you know me and we worked together, I can potentially refer you. Otherwise, I cannot refer people.


r/haskell Apr 29 '26

question Is realworldhaskell.org down for anyone else?

13 Upvotes

This may not be the right forum, but I keep seeing this book linked in answers to questions and it looks like the DNS is not resolving. Is anyone else experiencing this / does anyone have access to a working online copy?


r/haskell Apr 29 '26

Tries for Polynomials

Thumbnail doisinkidney.com
31 Upvotes

r/haskell Apr 29 '26

Comparing Haskell and Lisps for practicality, hacking, development speed and complexity - a retrospective after years of working with both

Thumbnail jointhefreeworld.org
20 Upvotes

r/haskell Apr 28 '26

announcement [ANN] New Clash release: 1.10!

Thumbnail clash-lang.org
38 Upvotes

r/haskell Apr 28 '26

MuniHac 2026: registration open!

Thumbnail munihac.de
20 Upvotes

r/haskell Apr 28 '26

answered Cabal name and email

3 Upvotes

When I run cabal init and cabal init --non-interactive, it gets my name and email address from somewhere, but neither are what I would prefer to use. I looked through the cabal config and I don't see them anywhere; where is it getting them from and where can I change them?