I want to generalize a set of functions from lists to some functor type. I require the following three operation types.
f a
a -> f a
f a -> f a -> f a
Should I choose MonadPlus and use these?
mzero
return
mplus
Or should I choose Alternative and use these?
empty
pure
(<|>)
Or should I make my own class? Or is there another option?
Thanks,
Sean