On Mar 17, 2015 4:57 PM, "Petr Pudlák" <petr.mvd@gmail.com> wrote:
>
> What would be use-cases for (2)? As Joachim pointed out, for any reasonable data type inserting an equal element should have no difference.

I don't feel strongly about it; it was just a thought.

> For (3) I'd be in favor of
>
>     alterF :: (Functor f, Ord a) => a -> (Bool -> f Bool) -> Set a -> f (Set a)

That seems quite reasonable.