With the Monoid 'First' and 'Last' newtypes going away, it would be nice to have equivalent Functor and Applicative instances.
This works if Compose uses its components' instances:
instance Semigroup (m (n a)) ⇒ Semigroup (Compose m n a) where
Compose mnx <> Compose mny = Compose (mnx <> mny)
instance Monoid (m (n a)) ⇒ Monoid (Compose m n a) where
mempty = Compose mempty
–Keith
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.