add some typeclasses

Alternative, Foldable1, Foldable, MonadPlus,
Monoid, Plus, PlusEmpty, Semigroup