Why exactly I want Boring Haskell to happen

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/haskell

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • JetBrains - Developer Ecosystem Survey 2022
  • Scout APM - Less time debugging, more time building
  • tilapia

    Improving all Haskell's programmer interfaces

    I have been progressively going through and marking pages as out of date. If you find any other then either please do so yourself or report them to me and I'll do it.

  • rio-orphans

    A standard library for Haskell (by commercialhaskell)

    It's worth mentioning that Snoyman's "Boring Haskell" is actually a fairly moderate position: if you look at his suggested list of language extensions, it's pretty broad (and fairly reasonable in my view).

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • safe-exceptions

    Safe, consistent, and easy exception handling

    unliftio (and safe-exceptions) contains a very controversial choice of of using uninterruptibleMask inside its bracket. The argument for it seem to come from this issue and comes from the fact that one of the most popular resource finalizers hClose is interruptible. This is a simplification. It is interruptible only if a file handle is used concurrently. Such usage of file handles is rather odd, and it suggest wrong architecture, for example leaking file handles using concurrency. When using file handles in synchronous setting, what withFile pattern encourages, hClose will not block and thus mask is enough.

  • haskelldb

    A library for building re-usable and composable SQL queries.

    HaskellDB was principled but the codebase was somewhat bitrotted, it had dubious denotational semantics, it was possible to write crashing queries. and only worked with a special "record" form data types that it had cooked up. On the other hand once one accepted the special "records" everything else looked like familiar Haskell. Queries were written in do-notation.

  • sqlx

    🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL. (by launchbadge)

    Recently I've been semi-persuaded that if you are a particularly advanced DB user — simply having raw SQL queries immediately available to be played with, shown to a local Postgres wizard on the team, pasted into psql to EXPLAIN, etc, might be important enough that switching to a raw SQL library (with syntax checking a la hasql-th or Rust's sqlx) could be worth it.

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