{m : Type → Type} →
  {P : Sort u} →
    {toMonadQuotation : Lean.MonadQuotation m} →
      {getNextMacroScope : m Lean.MacroScope} →
        {setNextMacroScope : Lean.MacroScope → m Unit} →
          {toMonadQuotation' : Lean.MonadQuotation m} →
            {getNextMacroScope' : m Lean.MacroScope} →
              {setNextMacroScope' : Lean.MacroScope → m Unit} →
                { toMonadQuotation := toMonadQuotation, getNextMacroScope := getNextMacroScope,
                      setNextMacroScope := setNextMacroScope } =
                    { toMonadQuotation := toMonadQuotation', getNextMacroScope := getNextMacroScope',
                      setNextMacroScope := setNextMacroScope' } →
                  (toMonadQuotation ≍ toMonadQuotation' →
                      getNextMacroScope ≍ getNextMacroScope' → setNextMacroScope ≍ setNextMacroScope' → P) →
                    P