haskell-pro
エキスパートガイドで Haskell 上級プログラミングをマスター
Haskell の複雑な型システムや純粋関数型設計に悩んでいますか?このスキルは、型レベルプログラミング、並行性パターン、強力な静的保証を持つ高信頼性ソフトウェアの構築に関するエキスパートガイドを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「haskell-pro」を使用しています。 コンパイル時に無効な状態を防止する、送金処理の型安全な API を設計してください。
期待される結果:
Amount と Currency をラップする newtypes を使用し、ファントムタイプで転送状態(Pending、Completed、Failed)を追跡します。有効な遷移のみを許可する状態機械を GADTs で実装します。口座の不変条件を型にエンコードしてオーバードラフトを防止します。無効な転送を表せないようにする型シグネチャを提供します。
「haskell-pro」を使用しています。 Haskell で共有キャッシュへの並行アクセスを処理するにはどうすればよいですか?
期待される結果:
TVar と共に STM(Software Transactional Memory)を使用して、キャッシュ更新をアトミックに実行します。競合の自動解決のために、キャッシュ操作を retry ブロックでラップします。並行読み書き操作のために async と組み合わせます。bracket または finally を使用して例外安全なクリーンアップを実装します。例のパターン:atomically $ do cached <- readTVar cacheVar; case cached of Just val -> return val; Nothing -> do newValue <- computeValue; writeTVar cacheVar (Just newValue); return newValue
「haskell-pro」を使用しています。 関数型設計の改善点について Haskell コードをレビューしてください。
期待される結果:
純粋なビジネスロジックを明示的なシグネチャを持つ独立した関数に分離します。トランスフォーマースタック(設定用の ReaderT、エラー用の ExceptT)を使用してデータベースとネットワーク IO を分離します。Maybe または Either を使用して、部分関数を全体関数の代替に置き換えます。newtypes を導入して、型レベルで UserID と Username を区別します。大規模なモジュールを単一責任のフォーカスされたモジュールに分割します。
セキュリティ監査
安全Static analysis detected 7 potential issues (1 external_commands, 6 weak cryptographic patterns). All findings are false positives: the 'external_commands' detection was Markdown backticks for file paths, not shell execution. The 'weak cryptographic' detections appear to be scanner errors as no cryptographic code exists in the skill. The skill contains only documentation and instructions for Haskell programming assistance with no executable code, network operations, or security risks.
低リスクの問題 (1)
品質スコア
作れるもの
型レベルプログラミング
ビジネスロジックを型システムにエンコードする高度な型レベル抽象化を設計し、コンパイル時にエラーを検出
並行システム設計
STM、async、軽量スレッドを使用して、適切な例外安全性を持つ並行・並列アプリケーションを構築
コードベースアーキテクチャレビュー
既存の Haskell コードベースを関数型設計パターン、型安全性、アーキテクチャの改善点について評価
これらのプロンプトを試す
[domain] システムの型安全なドメインモデルを設計してください。newtypes、ファントムタイプ、または GADTs を使用して、型レベルで不変条件をエンコードし、無効な状態を防止します。
この Haskell コードをレビューし、純粋なロジックと副作用のあるコードを分離するようにリファクタしてください。IO を分離できる箇所を特定し、関数シグネチャのアーキテクチャを提案します。
Haskell の STM と async を使用して、並行 [system] を設計します。共有状態を安全に処理し、例外安全なリソースクリーンアップを実装する方法を示します。
この Haskell コードをパフォーマンスのボトルネックについて分析します。厳密性解析、融合最適化、またはより良いデータ構造の選択の機会を特定します。
ベストプラクティス
- Haskell の課題(型レベル設計、並行性、アーキテクチャ、パフォーマンスチューニングなど)を明確にすることから始めます
- よりターゲットを絞ったガイドを得るために、関連するコードスニペット、エラーメッセージ、コンパイラ警告を提供します
- アーキテクチャや互換性のアドバイス_requested_時には、GHC バージョンと主要な依存関係を明記します
回避
- Haskell 以外のプログラミング支援を依頼する - 代わりに一般コーディングスキルを使用
- プロジェクトコンテキスト外の任意のシステムコマンドやファイル操作の実行を依頼
- プロジェクト要件や制約を提供せずに完全なアプリケーション実装を期待