8 months of OCaml after 8 years of Haskell in production

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. Div7

    Finding regular expressions to test for divisibility of numbers

    https://github.com/matthiasgoergens/Div7 is a simple one that you might like.

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. Avalonia.FuncUI

    Develop cross-plattform GUI Applications using F# and Avalonia!

    There is also a package for Avalonia that lets you write GUI applications in F#: https://funcui.avaloniaui.net

  4. xmonad

    The core of xmonad, a small but functional ICCCM-compliant tiling window manager

    Yes, depends on where you draw the line.

    XMonad is a bit bigger: https://github.com/xmonad/xmonad

  5. Compiler-Algorithm-Code

    Haskell and Python implementations of a few algorithms from the book "Compilers: Principles, Techniques, and Tools (2nd Edition)". Currently in the process of porting from Haskell to Python

    I'm sure a lot of people here have much better examples, but I wrote some basic regular expression and finite automata algorithms in Haskell a long time ago:

    https://github.com/jl2/Compiler-Algorithm-Code/tree/master/h...

    I tried it out and after renaming fold -> foldr, it still builds and seems to work. The main function takes a regex as a command line argument and creates a finite automata graph using GraphViz's dot.

    In the Compiler-Algorithm-Code/haskell directory:

        make

  6. lox-ocaml

    Discontinued Implementation of the Lox language in OCaml

    I wrote a Lox compiler and interpreter in OCaml a few years ago: https://github.com/gaultier/lox-ocaml

    No idea how it holds up, it was my first try at a compiler, but it’s quite small. I was following the Crafting Interpreters book.

  7. github-tui

    🌒 A TUI for GitHub (by chshersh)

    You can check my (not finished) example of GitHub TUI built in OCaml:

    https://github.com/chshersh/github-tui

  8. terrateam

    Terrateam is an open-source GitOps CI/CD platform for automating infrastructure workflows. It integrates with GitHub to orchestrate Terraform, OpenTofu, CDKTF, Terragrunt, and Pulumi operations via pull requests.

    > It’s not exciting to write a GitHub API client and parse tons of JSON.

    While buried in our monorepo, so not very accessible, we just open sourced our product that is written in Ocaml and we have a GitHub client that is generated from the OpenAPI schema.

    It is separated out from any I/O so it can be used in any I/O context.

    https://github.com/terrateamio/terrateam/tree/main/code/src/...

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. hallowdale

    An homage to Hollow Knight

    I released a game using OCaml bindings to the Raylib library. I had never written OCaml before and I didn't spend very much time refactoring, so the code is pretty messy and maybe isn't the best example of the language. But some of it turned out pretty nice - the first ~90 lines of this file detect collisions between two shapes using the Separating Axis theorem: https://github.com/mega-dean/hallowdale/blob/main/src/collis...

  11. ghc

    Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing).

    GHCi, version 9.4.8: https://www.haskell.org/ghc/ :? for help

  12. hn-reader

    A command-line client for Hacker News (by LucianU)

    Au unfinished command_line client for Hacker News:

    https://github.com/LucianU/hn-reader

  13. hoogle

    Haskell API search engine

    https://hoogle.haskell.org/ can help you find the function that you're looking for.

    As for "words"... yes, possibly not the best name. But also so common that everyone that has ever written any Haskell code knows it. Such as Java's System.out.println

  14. dhall-lang

    Maintainable configuration files

    > Lambda calculus is as pure as can be, and also has terms that don't normalize. That is not considered a side effect.

    Many typed lambda calculi do normalise. You can also have a look https://dhall-lang.org/ for some pragmatic that normalises.

    > A better example of impurity in Haskell for pragmatic's sake is the trace function, that can be used to print debugging information from pure functions.

    Well, but that's just unsafePerformIO (or unsafePerformIO-like) stuff under the hood; that was already mentioned.

  15. kaleidoscope

    Haskell LLVM JIT Compiler Tutorial

    The are LLVM Caleidoscope (toy compiler) in both Haskell and OCaml

    https://github.com/sdiehl/kaleidoscope

  16. llvm-ocaml-tutorial

    The LLVM tutorial using OCaml

    https://github.com/arbipher/llvm-ocaml-tutorial

    The Haskell one is a nice one. Can say nothing about the OCaml one since I found it using a google search.

    I've had a try at implementing an Caleidoscope compiler in OCaml but did not finish it. But it was fun to write.

  17. chisito

    A little chip-8 interpreter

    Some time ago I made a chip-8 emulator with haskell https://github.com/EzequielRamis/chisito. I suppose it may be easier the state management in ocaml.

  18. fslang-design

    RFCs and docs related to the F# language design process, see https://github.com/fsharp/fslang-suggestions to submit ideas

    Perhaps type providers? Sadly they didn't really take off, they work but remain a niche feature. At least I'm not aware if any other feature fits this description closer. https://learn.microsoft.com/en-us/dotnet/fsharp/tutorials/ty...

    Or perhaps Computation Expressions? But those are an integral part of F# and one of the key reasons why it's so flexible and able to easily keep up in many areas with changes in C# - something that require bespoke compiler modification in C# is just another CE* in F# using its type system naturally.

    * with notable exception being "resumable code" which is the basis of task { } CE and similar: https://github.com/fsharp/fslang-design/blob/main/FSharp-6.0...

  19. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Working with GUI

    3 projects | /r/learnpython | 29 May 2023
  • What can I do in Haskell? UwU

    8 projects | /r/haskell | 16 Nov 2022
  • Is there an Elm like framework for cross-platform apps?

    7 projects | /r/functionalprogramming | 21 Oct 2022
  • I'd like to share my first impressions of yesod and haskell

    1 project | /r/haskell | 30 Aug 2022
  • Servo in 2024: stats, features and donations

    17 projects | news.ycombinator.com | 5 Feb 2025

Did you know that Haskell is
the 25th most popular programming language
based on number of references?