Dhall: A Gateway Drug to Haskell

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

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. hoogle

    Haskell API search engine

    No I didn't understand every sub-function in this function. That isn't necessary to get an idea of what a function does. All of your questions can be answered incredible quickly though using https://hoogle.haskell.org/

    > What does Optics.rewriteOf do?

    Hoogling show this is an alias of https://hackage.haskell.org/package/lens-5.1.1/docs/Control-....

    > What's the purpose of Lint.useToMap?

    Hoogle again shows https://hackage.haskell.org/package/dhall-1.41.1/docs/Dhall-.... If your function is not indexed you can look at what is qualified as `Lint` and look it up that way.

    > How about D.subExpressions ? How does that composition work with the loop function?

    https://hackage.haskell.org/package/dhall-1.41.1/docs/Dhall-... All nicely documented... I'm not sure what you mean by composition with the loop function. First the loop function is executed and then afterwards over the result the expression in the first argument to fmap is applied. There is no weird interaction going on here. It's just run this over the result of the loop function if it didn't produce an error.

    > Even better. How would you go about finding the source code containing the definition of the function `D.subExpressions` ?

    Use hoogle or just look at the imports at the top of the file. Just like any other programming language. Or even better, use the language server to find it for you.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. dhall-lang

    Maintainable configuration files

    To me statically typed config languages sound like a neat idea to pursue, although I'm not sure how promising this this particular one is.

    https://dhall-lang.org/

  4. dhall

    Maintainable configuration files

    Ok, lets be specific. Lets write a comment to explain this function:

    https://github.com/dhall-lang/dhall-haskell/blob/master/dhal...

  5. kapp

    kapp is a simple deployment tool focused on the concept of "Kubernetes application" — a set of resources with the same label

    since you mentioned Kubernetes...

    > It would be nice if there was a separate state reconciliation system that one could adapt to use with Cue or Dhall or any other frontend

    this exactly was thinking behind https://carvel.dev/kapp for Kubernetes (i'm one of the maintainers). it makes a point to not know how you decided to generate your Kubernetes config -- just takes it as input.

    > In particular the ability to import other files as semantic hashes seems like a great feature.

    it's an interesting feature but seems like it should be unnecessary given that config can be easily checked into git (your own and its dependencies).

  6. lens

    Lenses, Folds, and Traversals - Join us on web.libera.chat #haskell-lens (by ekmett)

    The documentation of lenses is geared towards people know what lenses are. Of course this single fragment of documentation doesn't make sense if you don't know what lenses are. If you want to understand what lenses are the package links to a helpful wiki and tutorial: https://github.com/ekmett/lens/wiki/Overview

    All within reach within seconds of discovering the function.

  7. cue

    The home of the CUE language! Validate and define text-based and dynamic configuration

  8. ShellCheck

    ShellCheck, a static analysis tool for shell scripts

  9. SaaSHub

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

    SaaSHub logo
  10. postgrest

    REST API for any Postgres database

  11. hadolint

    Dockerfile linter, validate inline bash, written in Haskell

  12. patat

    Terminal-based presentations using Pandoc

  13. taskell

    Discontinued Command-line Kanban board/task manager with support for Trello boards and GitHub projects

  14. aur

    A multilingual package manager for Arch Linux and the AUR.

  15. grenade

    Deep Learning in Haskell

  16. implicit

    A math-inspired CAD program in haskell. CSG, bevels, and shells; 2D & 3D geometry; 2D gcode generation...

  17. Gifcurry

    😎 The open-source, Haskell-built video editor for GIF makers.

  18. pboy

    a small .pdf management tool with a command-line UI

  19. rasa-example-config

    Extremely modular text editor built in Haskell (by ChrisPenner)

  20. tetris

    A terminal interface for Tetris

  21. hython

    Haskell-powered Python 3 interpreter

  22. movie-monad

    :tv: A free and simple to use video player made with Haskell.

  23. hnes

    :video_game: NES Emulator written in Haskell (by dbousamra)

  24. Hasura

    Blazing fast, instant realtime GraphQL APIs on all your data with fine grained access control, also trigger webhooks on database events.

    I don't really think many people are calling it a panacea. From my experience in the community most people I know who write Haskell write it for productivity reasons (including me, I'd rather be using Idris 2 with algebraic effects though.)

    I'm not saying it's somehow magically more productive than other languages, because it's useless to throw around stuff you can't really prove like that, I and other just find it to be the case.

    I've never found "everyone writing their own DSL" to be problematic, because it's all exposed through the Monad/Applicative/Functor classes, so the way you use them are all very similar. Honestly, the usage of such eDSLs is one of my favourite parts of writing Haskell.

    I use Haskell at my work for our main application, and we've been looking at adopting a style guide like https://kowainik.github.io/posts/2019-02-06-style-guide

    And about interesting applications in Haskell, I'd consider https://hasura.io/ pretty interesting!

  25. hledger

    Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces.

    A few more:

    https://github.com/simonmichael/hledger - Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces

    https://github.com/simonmichael/shelltestrunner - Easy, repeatable testing of CLI programs/commands

    https://github.com/simonmichael/quickbench - Easily time one or more commands with one or more executables and show tabular results

    https://github.com/haskell-game/fungen - A lightweight, cross-platform, OpenGL-based 2D game engine in Haskell

    https://haskell-game.dev - a small selection of many games written in Haskell

  26. shelltestrunner

    Easy, repeatable testing of CLI programs/commands

    A few more:

    https://github.com/simonmichael/hledger - Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces

    https://github.com/simonmichael/shelltestrunner - Easy, repeatable testing of CLI programs/commands

    https://github.com/simonmichael/quickbench - Easily time one or more commands with one or more executables and show tabular results

    https://github.com/haskell-game/fungen - A lightweight, cross-platform, OpenGL-based 2D game engine in Haskell

    https://haskell-game.dev - a small selection of many games written in Haskell

  27. quickbench

    Easily time one or more commands with one or more executables and show tabular results

    A few more:

    https://github.com/simonmichael/hledger - Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces

    https://github.com/simonmichael/shelltestrunner - Easy, repeatable testing of CLI programs/commands

    https://github.com/simonmichael/quickbench - Easily time one or more commands with one or more executables and show tabular results

    https://github.com/haskell-game/fungen - A lightweight, cross-platform, OpenGL-based 2D game engine in Haskell

    https://haskell-game.dev - a small selection of many games written in Haskell

  28. FunGEn

    A lightweight, cross-platform, OpenGL-based 2D game engine in Haskell (by haskell-game)

    A few more:

    https://github.com/simonmichael/hledger - Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces

    https://github.com/simonmichael/shelltestrunner - Easy, repeatable testing of CLI programs/commands

    https://github.com/simonmichael/quickbench - Easily time one or more commands with one or more executables and show tabular results

    https://github.com/haskell-game/fungen - A lightweight, cross-platform, OpenGL-based 2D game engine in Haskell

    https://haskell-game.dev - a small selection of many games written in Haskell

  29. 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

  • Show HN: F2 – Cross-Platform CLI Batch Renaming Tool

    4 projects | news.ycombinator.com | 24 May 2025
  • Aerc: A Well-Crafted TUI for Email

    11 projects | news.ycombinator.com | 22 Aug 2024
  • It installs waydroid on Arch automatically, I think

    3 projects | /r/linuxmasterrace | 18 Feb 2023
  • Docker on Mac is slow. Here's the fix

    1 project | news.ycombinator.com | 22 Dec 2022
  • Help: `stack <script-file>` hangs

    2 projects | /r/haskell | 28 Aug 2022

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