case nil => {
     simp[fish, List.mapM, List.mapM.loop];
}
m : Type → Type u_1
a : Type
M : Monad m
LM : LawfulMonad m
f g : a → m a
COMMUTE :
  ∀ {b : Type} (x y : a) (k : a → a → m b),
    (do
        let r1 ← f x
        let r2 ← g y
        k r1 r2) =
      do
      let r2 ← g y
      let r1 ← f x
      k r1 r2
⊢ fish (mapM f) (mapM g) [] = mapM (fish f g) []
no goals