Jun 14, 2026 in Haskell, Concepts — Haskell is a purely functional, statically typed, lazy language with powerful type inference. The ideas that define it — purity, immutability, laziness, strong types — what it is used for, and how to start.
Jun 14, 2026 in Haskell, Syntax — A list comprehension builds a list from generators with optional guards — concise and close to set-builder notation. Syntax, multiple generators, guards, and how they relate to map and filter.
Jun 14, 2026 in Haskell, Concepts — Haskell computes a value only when it is actually needed. What lazy evaluation is, thunks, infinite data structures, the space-leak trap, and forcing strictness with seq and BangPatterns.
Jun 14, 2026 in Haskell, Concepts — A monad sequences computations carrying context — Maybe, Either, IO, lists. What it really is, bind (>>=) and return, and do-notation, plainly.
Jun 14, 2026 in Haskell, Compiler — What GHC is, installing it with GHCup, using GHCi, the flags that matter (-O2, -Wall, -threaded, -j), and how it fits with Cabal and Stack.
Jun 14, 2026 in Haskell, Editor — What HLS does, installing it with GHCup, wiring it into VS Code and Neovim, matching it to your GHC, and fixing the usual errors.
Jun 14, 2026 in Haskell, Toolchain — GHCup is the recommended way to install GHC, Cabal, Stack and HLS in 2026 — clean install, version switching, and the common pitfalls that trip newcomers.
Jun 13, 2026 in Haskell, Cabal, Build — The per-project isolation idea that won so completely it became invisible. What sandboxes were, and the nix-style cabal build workflow that superseded them.
Jun 13, 2026 in Haskell, Cabal, Build — Nix-style builds, Backpack, the caret operator and a better solver — what 2.0 introduced and where each feature stands in the 2026 toolchain.
Jun 13, 2026 in Haskell, Performance — Why a build is a dependency graph, how -j builds use your cores, and the modern job-semaphore fix for oversubscription on wide dependency trees.