ワンクリックで
haskell-patterns
Idiomatic Haskell conventions and decision rules. Use when writing Haskell code, designing data types, or handling errors.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Idiomatic Haskell conventions and decision rules. Use when writing Haskell code, designing data types, or handling errors.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Build a Haskell project, interpret GHC errors, and apply safe fixes. Use when the user asks Codex to build Haskell code, fix compilation errors, or run cabal/stack build workflows.
Expert Haskell code review for idiomatic patterns, type safety, purity, error handling, and performance. Use when reviewing Haskell source files or PR changes.
Run and interpret Haskell test suites. Use when the user asks Codex to run HSpec, QuickCheck, Tasty, cabal test, stack test, or diagnose failing Haskell tests.
Effectful library conventions and decision rules. Use when writing effectful code, designing effects, or migrating from mtl.
Servant client API wrapper conventions with two-layer error handling. Use when generating HTTP clients from Servant APIs, wrapping external service APIs, or integrating servant-client with effectful.
Servant web framework conventions using NamedRoutes record pattern. Use when building REST APIs, defining endpoints, writing handlers, or structuring Servant applications.
| name | haskell-patterns |
| description | Idiomatic Haskell conventions and decision rules. Use when writing Haskell code, designing data types, or handling errors. |
UserId, Email) -- never raw Int/TextEither / ExceptT for expected, recoverable errorsthrowIO for unexpected, unrecoverable errorshead, tail, fromJust, readReaderT AppEnv IO) over deep transformer stacksText, never String (unless legacy interop)Data.Text.IO) over lazy IOSTM / TVar for shared mutable stateasync / mapConcurrently for concurrent tasksrace for timeoutsString for text dataPrelude.readFile)