{n : Type → Type} →
  [MonadLiftT Lean.MetaM n] →
    [MonadControlT Lean.MetaM n] →
      [inst : Monad n] →
        [Lean.MonadError n] →
          [Lean.MonadEnv n] →
            [Lean.MonadLog n] →
              [Lean.AddMessageContext n] →
                [Lean.MonadOptions n] →
                  Lean.Meta.MatcherApp →
                    optParam Bool false →
                      optParam Bool false →
                        optParam (Lean.Expr → n Lean.Expr) pure →
                          (optParam (Array Lean.Expr → Lean.Expr → n Lean.Expr) fun x e => pure e) →
                            (optParam (ℕ → Lean.Expr → Array Lean.Expr → Lean.Expr → n Lean.Expr) fun x x_1 x_2 e =>
                                pure e) →
                              optParam (Array Lean.Expr → n (Array Lean.Expr)) pure → n Lean.Meta.MatcherApp