practical-haskell
Practical Haskell (GHC)
Use this skill when the task is Haskell code quality, performance, or reasoning about evaluation. Assume GHC with optimizations (-O / -O2) unless the user says otherwise.
Core ideas
- Purity lets the compiler rewrite code safely; prefer explicit effects in
IOor appropriate abstraction. - Lazy by default: values are evaluated when needed. That enables composition but can hide space leaks.
- Types catch many bugs early; use them to encode intent (including
newtypefor domain distinctions). - Know what GHC emits: when performance matters, treat Core (
-ddump-simpl) as ground truth after optimization.
Always
- Be explicit about strict vs lazy data and bindings when modeling accumulators, parsers, or long-lived state.
- Prefer
foldl'fromData.List(or strict folds from the right library) for numeric accumulation over plainfoldlon strict values. - Profile (
profiling, eventlog,ghc-debug, etc.) before micro-optimizing. - Write small composable functions; rely on inlining and specialization rather than giant monoliths.
- Use fusion-friendly pipelines (
map,filter,foldr-based idioms) where appropriate; validate hot paths in Core if allocation matters.
More from kaynetik/skills
ultimate-nixos
Comprehensive Nix ecosystem guidance covering NixOS system configuration, nixpkgs packaging and maintainer workflow, nix-darwin macOS management, Home Manager, flakes, derivations, NixOS module design, security hardening, and community processes. Use when writing Nix expressions, packaging software for nixpkgs, configuring NixOS or nix-darwin systems, designing NixOS modules, reviewing or merging nixpkgs PRs, managing secrets, hardening systems, working with flakes and overlays, or when the user mentions Nix, NixOS, nixpkgs, nix-darwin, Home Manager, flake, derivation, overlay, OfBorg, nixpkgs-review, or darwin-rebuild.
14lua-projects
>-
11c-cpp-compilers
C and C++ compiler toolchain skill covering GCC, Clang/LLVM, build modes, warnings, sanitizers, static analysis, LTO, PGO, C++20/23/26 features, and debugging. Use when writing or reviewing C/C++ code, choosing compiler flags, interpreting errors or warnings, enabling sanitizers, running clang-tidy or cppcheck, optimizing builds, working with C++20 modules or C23 features, or troubleshooting linker issues.
9tdd-red-green-refactor
>-
9argocd
ArgoCD GitOps operations -- Application and AppProject authoring, multi-source apps, ApplicationSet generators (Go templates, progressive sync), sync strategies, RBAC, SSO, health checks, CLI commands, and troubleshooting. Use when writing ArgoCD manifests, managing deployments, configuring sync policies, debugging sync/health status, or when the user mentions ArgoCD, GitOps, ApplicationSet, AppProject, argocd CLI, sync wave, or self-heal.
8meta-cognition-parallel
EXPERIMENTAL: Three-layer parallel meta-cognition analysis. Triggers on: /meta-parallel, parallel analysis
7