This PR changes the interface of the `ForIn`, `ForIn'`, and `ForM` typeclasses to not take a `Monad m` parameter. This is a breaking change for most downstream `instance`s, which will will now need to assume `[Monad m]`. The rationale is that if the provider of an instance requires `m` to be a Monad, they should assume this up front. This makes it possible for the instanve to assume `LawfulMonad m` or some other stronger requirement, and also to provided a concrete instance for a particular `m` without assuming a non-canonical `Monad` structure on it. Zulip: [#lean4 > Monad assumptions in fields of other typeclasses @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Monad.20assumptions.20in.20fields.20of.20other.20typeclasses/near/537102158) |
||
|---|---|---|
| .. | ||
| Barrier.lean | ||
| Basic.lean | ||
| Broadcast.lean | ||
| CancellationToken.lean | ||
| Channel.lean | ||
| Mutex.lean | ||
| Notify.lean | ||
| RecursiveMutex.lean | ||
| SharedMutex.lean | ||
| StreamMap.lean | ||