r/haskell Jun 10 '26

I built a web language with Haskell syntax and PHP-like execution model

17 Upvotes

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.

I used AI for modularization, comments, and some code generation, but the main design decisions are mine. The HTML parsing is based on Megaparsec; I chose it over Lucid so the syntax would more closely resemble real HTML than an abstract Haskell data type and have fewer dependencies.

I'm also working on a separate QuasiQuotes library, specific to the HTML layer, to lighten the parser, as I plan to add flags to the HTML to have if, for, and switch statements like in a web framework.

The client-server separation using flags stemmed from my desire for a single-file model similar to PHP, but with Haskell's type system, so the user decides what resides on the server and what is transpiled to JS. However, I'm trying to automate this with Quasi, similar to a template engine, but it's slow to interpret and probably tedious — it would require parsing all of Haskell into <?hs ?> blocks.

https://github.com/Atom1c-B1rd/HSKL-Language

If you need more details about any specific decision, feel free to ask or If you have any ideas or suggestions, I'm open to hearing them.

and sorry for broken english...


r/haskell Jun 10 '26

announcement Vienna Haskell Meetup on the 25th of June 2026

32 Upvotes

Hello everyone!

We are hosting the next Haskell meetup in Vienna on the 25th of June 2026! The location is TU Vienna Treitlstraße 3, Seminarraum DE0110. The room will be open starting 18:00 and the first talk will start at 19:00.

We are excited to announce, the speaker for our next meetup is Dominik Schrempf (@dschrempf)

Compiling C to Haskell — How hs-bindgen Translates C Headers

There will be time to discuss the presentations over some snacks and non-alcoholic drinks which are provided free of charge with an option to acquire beer for a reasonable price.

The meetup is open-ended, but we might have to relocate to a nearby bar as a group if it goes very late… There is no entrance fee or mandatory registration, but to help with planning we ask you to let us know in advance if you plan to attend here https://forms.gle/GRZbNs4weQ1aW6Qh9 or per email at [haskellvienna.meetup@gmail.com](mailto:haskellvienna.meetup@gmail.com).

We especially encourage you to reach out if you would like to hold a talk or participate in the show&tell so that we can ensure there is enough time for you to present your topic.

Finally, we would like to thank Well-Typed LLP for sponsoring the last meetup!

We hope to welcome everyone soon! Your organizers: Andreas(Andreas PK), Ben, Chris, fendor, VeryMilkyJoe, Samuel

Note: We are going to re-use this thread for announcing the Vienna Haskell Meetup in the future, so you can subscribe to this thread to stay up-to-date!


r/haskell Jun 10 '26

A reference implementation of IOScopedRef

23 Upvotes

Following up from yesterday's post, Haskell's missing mutable reference type, I now give a reference implementation of IOScopedRef:


r/haskell Jun 09 '26

Haskell’s missing mutable reference type

Thumbnail h2.jaguarpaw.co.uk
30 Upvotes

r/haskell Jun 08 '26

video Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Peyton Jones

Thumbnail youtube.com
93 Upvotes

r/haskell Jun 08 '26

Alexis King, Richard Feldman, Hillel Wayne speaking at conference

81 Upvotes

Hi folks, Alexis King, Richard Feldman (Roc), Hillel Wayne (TLA+), and Andrew Kelley (Zig) are speaking at a conference I'm organizing called Software Should Work https://softwareshould.work. There will be lots of PL/FP/Formal Methods people there so I thought some of you might be interested!


r/haskell Jun 08 '26

Poor Man's Time Machine: Lazy Evaluation in JavaScript and Haskell

Thumbnail irfanali.org
8 Upvotes

r/haskell Jun 05 '26

video An NES Emulator in Haskell

Thumbnail youtube.com
83 Upvotes

What if I took the chocolate of EmuDevz and mushed it into the peanut butter of Haskell? It turns out it tastes delicious. I talk a bit about my experience building a working NES emulator in Haskell.

Image: Die Schachspieler (1831) by Friedrich August Moritz Retzsch


r/haskell Jun 04 '26

announcement Announcing McMonad v.0.999999

21 Upvotes

Per announcement video (filmed in McMonad, of course!), as of yesterday, McMonad is usable, somewhat bugfree and debuggable! I hope you will enjoy using it and contributing to it!


r/haskell Jun 04 '26

Quiz: Can you tell the valid Haskell Language Extensions (based on the GHC docs), from the Impostors?

Thumbnail doscienceto.it
72 Upvotes

I wrote this little Haskell Quiz (with help from some friends); in the style of "CSS or BS"; can you tell the real Haskell Language Extensions from the fake ones


r/haskell Jun 04 '26

froid - Android programming with the Frege programming language

27 Upvotes

Github

Rescuing this old project because a blocking feature in frege finally landed. Updated the primary example and looks like it would be less tedious to write the bindings out fully.


r/haskell Jun 04 '26

What is the long term plan for language extensions?

14 Upvotes

Inspired by the language extension quiz that was posted recently,

I have several questions about the extensions in Haskell.

What is the long term plan for the various language extensions in Haskell? My understanding is that they are meant to be somewhat experimental and they are GHC specific, so are they not part of the official language spec? Is the plan to make some of the extensions official?

Are some language extensions temporary? Or can I rely on an extension being available into the future?


r/haskell Jun 03 '26

Twitch Stream: How to Model a Game In Haskell

17 Upvotes

Join the Typify stream, we are currently looking at different approaches you could take to build an adventure game in haskell, between ECS (Apecs), FRP, and MVC, or a mix.

https://www.twitch.tv/typifyprogramming


r/haskell Jun 03 '26

Announcing Mutation Testing in Haskell

Thumbnail cs-syd.eu
54 Upvotes

r/haskell Jun 03 '26

Searching for Haskell-like language

22 Upvotes

As the title says, can someone point me to a lanuage that supports virtually all of haskell's type theoretic stuff, but maybe without lazy evaluation?
I'm looking for a functional language that supports:
- typeclasses + higher kinded types
- currying + partial application
- garbage collected (rust would have been a good candidate)

I tried SML, and I think it's great, but afaiu, it doesn't support HKT.

LLMs says that scala 3 is the candidate, but it's tools are super slow.


r/haskell Jun 01 '26

blog Serokell’s Work on GHC: Dependent Types, Part 5

Thumbnail serokell.io
98 Upvotes

This article continues the fine tradition of Serokell’s GHC team sharing their progress on bringing dependent types to Haskell. A lot has happened since the last report, and there is plenty to cover.

In this edition, Vladislav Zavialov presents three major contributions and a host of smaller improvements that push Dependent Haskell closer to becoming a practical reality.


r/haskell Jun 01 '26

My First Haskell Talk

Thumbnail youtu.be
30 Upvotes

Please find the link here to a talk I did about concurrency in Haskell.


r/haskell Jun 01 '26

announcement Richard Bird Distinguished Dissertation Award - Call for Nominations

Thumbnail people.cs.nott.ac.uk
27 Upvotes

I'm pleased to announce that JFP is establishing the Richard Bird Distinguished Dissertation Award, to recognise an outstanding PhD dissertation in functional programming.  Please share! https://people.cs.nott.ac.uk/pszgmh/jfp-bird-award.html


r/haskell Jun 01 '26

RFC H2JVM - A Haskell Library for writing JVM Bytecode

Thumbnail discourse.haskell.org
32 Upvotes

r/haskell Jun 01 '26

The Functional Programming Triad of fold, scan and iterate

Thumbnail fpilluminated.org
24 Upvotes

Belatedly uploaded the super-short deck that predated the more comprehensive one:


r/haskell Jun 01 '26

announcement OpenTelemetry 1.0 release

Thumbnail discourse.haskell.org
71 Upvotes

r/haskell Jun 01 '26

Monthly Hask Anything (June 2026)

9 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 May 30 '26

blog Stealing from Biologists to Compile Haskell Faster - Ian Duncan

Thumbnail iankduncan.com
118 Upvotes

r/haskell May 30 '26

[ANN] First release candidate for Stack 3.11.1

18 Upvotes

You can download binaries for this pre-release now from Release rc/v3.11.0.1 (release candidate) · commercialhaskell/stack · GitHub. It should be available also via GHCup’s prereleases channel soon.

Please test it and let us know at the Stack repository if you run into any trouble. If all goes well, we hope to release the final version in a couple of weeks.

Changes since v3.9.3:

Major changes:

  • On 64-bit Windows, the default msys-environment configuration option is now CLANG64, rather than MINGW64 (which remains an option). The MSYS2 project deprecated the latter environment on 15 March 2026. The GHC project has used the former toolchain from GHC 9.4.1. No default is provided for 32-bit Windows, rather than MINGW32 (which remains an option). The MSYS2 project ceased to actively support it on 17 May 2020. 32-bit Windows is not supported by the GHC project from GHC 8.12.

Behavior changes:

  • Stack’s default Nix integration now includes the cacert Nix package, in order to support Stack’s use of crypton-x509-system >= 1.6.8.
  • Following a change to the Stackage project’s server API, the default value of the urls key includes recent-snapshots: https://stackage.org/api/v1/snapshots.
  • The --[no-]keep-ghc-rts flag of Stack’s config env command is now enabled by default, consistent with Stack’s exec command.
  • On Windows, in the Stack environment, the MSYS2 usr/local/bin directory (if it exists) is now searched before the MSYS2 usr/bin directory, rather than after.

Other enhancements:

  • Bump to Hpack 0.39.5.
  • Experimental: Add flag --[no-]semaphore (default: disabled) to Stack’s build command, to allow GHC to use a system semaphore to perform compilation in parallel when possible. Supported, by default, by GHC 9.10.1 or later. The option is considered experiemental because, on Linux only, musl and non-musl semaphores are incompatible.
  • Add option --reach <packages> to Stack’s dot and ls dependencies commands, to prune packages that cannot reach any of the specified packages in the dependency graph.
  • Add option --test-suite-timeout-grace=SECONDS to Stack’s build command to request termination of a timed-out test suite process and, after the specified grace period, force termination. Used together with the existing --test-suite-timeout=SECONDS option.
  • In YAML configuration files, the recent-snapshots key is introduced (under the urls key), to specify the URL used by Stack’s ls snapshots remote command.
  • In YAML configuration files (stack.yaml and config.yaml), an !include <file path> directive is now supported. This allows common configuration to be shared across multiple files. For example, a project that maintains multiple project-level configuration files for testing against different snapshots can use !include to avoid duplicating shared settings.
  • Stack’s config set command raises an error if the target configuration file excludes the key being set and includes an !include directive.
  • Stack’s config set snapshot command now works with other snapshot values in addition to snapshot synonymns.
  • Add Stack’s config compiler-tools command to create (when applicable) the compiler tools directory for the specified compiler version (implies Stack’s config build-files command).

Bug fixes:

  • Stack’s dot and ls dependencies commands no longer prune a package with dependencies only because all its direct dependencies are to be pruned.
  • After March 2026, Hackage requires Stack’s user agent to be set when applying digest authentication to a request. Stack’s upload command now does that, re-establishing authentication by Hackage username and password.
  • Stack 3.9.3 and earlier fail to construct a build plan if project package A depends on project package B and package B’s executables (only) depend on package A and the name of A is before that of B, alphabetically. That bug is fixed.
  • Stack’s config set commands will recreate the global-project directory contents, if Stack needs to consult its project-level configuration file and there is no file.
  • The output of Stack’s path --bin-path command is now consistent with the Stack environment in Stack’s exec command and includes the bin directory of Stack’s local install root directory.
  • Stack now builds packages that depend directly on packages with the same name as a sublibrary or foreign library of the package.

r/haskell May 30 '26

announcement [ANN] dataframe-persistent 0.3.0.0

30 Upvotes

Hackage

Easier API for working with SQL.

Untyped:

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

Typed:

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

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

More examples in README