Is there a reason that Data.Monoid.First and Data.Monoid.Last aren't also instances of Functor, Applicative, Alternative, Monad, MonadPlus?  I find those instances quite useful.

Louis Wasserman
wasserman.louis@gmail.com
http://profiles.google.com/wasserman.louis