← ClaudeAtlas

haskell-toolchain-miselisted

Set up a native (non-container) Haskell toolchain on the host with mise + GHCup. Covers the mise.toml pin (ghcup, cabal, ormolu), GHC and HLS via GHCup, the HLS/GHC compatibility rule, cabal-installed dev tools, PATH and shim wiring for direnv and editors, macOS prerequisites, and the CI mirror of the same pins. Use when bootstrapping a Haskell project without Docker, when the devcontainer is too slow on macOS, or when asked to install or pin GHC, cabal, HLS, ormolu or hlint locally.
ivelten/claude-haskell-skills · ★ 0 · AI & Automation · score 60
Install: claude install-skill ivelten/claude-haskell-skills
# Haskell Toolchain with mise + GHCup The native alternative to the devcontainer: the toolchain runs directly on the host, with no Docker, no VM and no bind-mount I/O penalty. `mise` owns the pinnable binaries and puts them on `PATH` per project; `ghcup` owns GHC and HLS, which mise cannot install. ## Detection — check before asking ```bash ls mise.toml .mise.toml 2>/dev/null # project pin present? mise ls 2>/dev/null | grep -E '^(ghcup|cabal|ormolu)' ghcup list -c installed -t ghc 2>/dev/null ``` If `mise.toml` pins `ghcup`/`cabal` → the native path is already set up. Acknowledge it and proceed. ## Division of labor | Tool | Provisioned by | Why | |---|---|---| | `ghcup` | mise (`aqua:haskell/ghcup-hs`) | pinnable per project, bootstraps the rest | | `cabal` | mise (`aqua:haskell/cabal/cabal-install`) | exact versions available, switches per project | | `ormolu` | mise (`github:tweag/ormolu`) | ships an `aarch64-darwin` binary | | **GHC** | **ghcup** | not installable via mise: the `ghc` registry entry is `conda:ghc` (needs conda) and the `mise-ghcup` asdf plugin was archived in Nov 2025. `mise ls-remote ghc` returns nothing | | **HLS** | **ghcup** | bindists are compiled against specific GHC *patch* versions; ghcup is the only thing that matches them correctly | | `hlint` | Homebrew or cabal | **not** via mise — see the Apple Silicon note below | | `cabal-gild`, `hoogle`, `fast-tags`, `doctest`, DAP adapters | `cabal install` | not in the mise registry; the