最近見かけたHaskell library: conferer
Haskell applicationの設定データ(configuration)をロードするためのフレームワーク。コマンドラインオプション、環境変数、設定ファイルなど異なる情報源(source)からの設定データを統合的にロードできる。
コアのconfererパッケージはかなり依存関係が小さめ。追加のパッケージとしてconferer-yamlやconferer-dhallがあり、それぞれの設定ファイルフォーマットをサポートできる。
sourceから読み込んだ設定データはユーザ定義型にパースされる。このユーザ定義型はFromConfig typeclassのinstanceとすればいい。ユーザ定義型がGenericのinstanceならFromConfigをderiveできる。
さらに、warpやhedisといったよく使いがちなコンポーネントの設定データ型については個別のパッケージでFromConfigのorphan instanceが提供されている。