7

インスタンスを定義しようとしています:

newtype Join a = Join { getJoin :: a -> Bool }
   deriving Generic

instance Monoid (Join a) where
   f <> g = ???
   mempty = ???

目標は、関数 foldMap Join が、リスト内のすべての関数が true の場合に True を返し、すべてが true でない場合に false を返すようにすることです。

私は foldMap と Monoid の Sum と Product のインスタンスを理解していますが、Monoid の newtype インスタンスを書くのはまったく初めてです。正しい方向への助けをいただければ幸いです。ありがとうございました。

4

2 に答える 2