ライブラリは src-directory にあり、データ定義 A があります。多くのチュートリアルで示唆されているように、テストに関連するコードは test-directory にあり、テスト ケースを生成するための Serial インスタンスが含まれています。以下のリンクを参照してください。
instance Monad m => Serial m A where ...
cabal test
これが孤立したインスタンスであることを警告します。これは避けられませんか、それともライブラリを整理するための確立された規則がありますか?たとえば、シリアルインスタンス定義をデータ A が定義されている場所に移動しますか? 後者は、関連するものを test-directory でテストし続けるのがいいので、少し間違っているように感じます。これが典型的な方法である場合、公開インターフェースでテスト関連のものを公開することをどのように避けることができますか? テストされたすべてのモジュールの「内部」バージョンを作成しますか (公開モジュールと実際のテスト プログラムが使用するもの)? 単体テストの質問で同様のことが提案されました。
それとも、これはまったく問題ですか?関連するコードのテストで孤立したインスタンスを残すことは、どれほど悪い慣習ですか?