タイプの2つの値とがt1あります。-valueは、エラー処理に使用されます。これらの値は、を返す関数で使用されます。t2Either String TypeLeftEither String Type
私がやりたいのは、とが両方とも-valuesであり、を満たすかどうかを確認t1するt2ことRightですp :: Type -> Bool。もしそうなら、私は戻りたいですRight (the type inside t1)。t1とが両方ともt2-valuesRightであるが、を満たさない場合はp、を返しLeft someStringます。またはが値のt1場合t2、Leftその値を渡したいだけです。
どうすればエレガントな方法でこれを行うことができますか?どちらかをモナドとして使用するのが正しいことだと思いますが、どうすればよいかわかりません。