بنقرة واحدة
haskell
// Haskell coding with relude, ghcid-based workflow, hlint compliance, and strict error handling. Use when working with .hs files, Cabal projects, or ghcid.
// Haskell coding with relude, ghcid-based workflow, hlint compliance, and strict error handling. Use when working with .hs files, Cabal projects, or ghcid.
Optimize Nix flake evaluation and `nix develop` startup time. Use when the user wants to speed up nix develop, nix-shell, or flake evaluation.
Direct, no-nonsense technical writing. Use for blog posts, documentation, and READMEs. Eliminates AI-speak, hedging, and filler.
| name | haskell |
| description | Haskell coding with relude, ghcid-based workflow, hlint compliance, and strict error handling. Use when working with .hs files, Cabal projects, or ghcid. |
Expert assistance for Haskell programming.
CRITICAL - Error Handling in Code: NEVER write code that silently ignores errors:
undefined or error as placeholdersMaybe/Either failure casesEvery error case in generated code must be handled properly.
CRITICAL - Compile Status:
ghcid.txt after every change and fix any errors reported there.ghcid.txt is clean.CRITICAL - HLint Compliance:
.hlint.yaml in the project root.hlint on any file you modify.Code Quality:
head, tail)Idiomatic Patterns:
Text over Stringnewtype wrappers for domain typesApplicative and Monad appropriatelylet bindings when inlining keeps code simple and readableWorking with Aeson:
encode and decode on itWhen using relude, refer to RELUDE.md for best practices and idioms.
As you make code changes, start a subagent in parallel to resolve any compile errors in ghcid.txt.
IMPORTANT: Do not run build commands yourself. The human runs ghcid in the terminal, which then updates ghcid.txt with any compile error or warning (if this file does not exist, or if ghcid has stopped, remind the human to address it). You should read ghcid.txt (in entirety) after making code changes; this file updates near-instantly.
Adding/Deleting modules: When a new .hs file is added or deleted, the .cabal file must be updated accordingly. However, if package.yaml exists in the project, run hpack instead to regenerate the .cabal file with the updated module list. This will trigger ghcid to restart automatically.
HLint warnings: MANDATORY. After ghcid.txt shows success, if .hlint.yaml exists, run hlint on the modified files. You are NOT done until hlint reports no issues.