FILE: RedundantModalityModifierChecker.kt
    public final object O : R|kotlin/Any| {
        private constructor(): R|O| {
            super<R|kotlin/Any|>()
        }

        public final fun foo(): R|kotlin/Unit| {
        }

    }
    public abstract interface Interface : R|kotlin/Any| {
        public open val gav: R|kotlin/Int|
            public get(): R|kotlin/Int| {
                ^ Int(42)
            }

        public abstract fun foo(): R|kotlin/Unit|

        private final fun bar(): R|kotlin/Unit|

        public open fun goo(): R|kotlin/Unit| {
        }

        public abstract fun tar(): R|kotlin/Unit|

        public abstract fun too(): R|kotlin/Unit| {
        }

    }
    public abstract interface B : R|kotlin/Any| {
        public abstract var bar: R|kotlin/Unit|
            public get(): R|kotlin/Unit|
            public set(value: R|kotlin/Unit|): R|kotlin/Unit|

        public abstract fun foo(): R|kotlin/Unit|

    }
    public abstract interface Foo : R|kotlin/Any| {
    }
    public abstract expect class AbstractClass : R|Foo| {
        public abstract expect override fun foo(): R|kotlin/Unit|

        public abstract expect fun bar(): R|kotlin/Unit|

        public abstract expect val baz: R|kotlin/Int|
            public get(): R|kotlin/Int|

    }
    public abstract class Base : R|kotlin/Any| {
        public constructor(): R|Base| {
            super<R|kotlin/Any|>()
        }

        public final fun foo(): R|kotlin/Unit| {
        }

        public abstract fun bar(): R|kotlin/Unit|

        public open val gav: R|kotlin/Int| = Int(42)
            public get(): R|kotlin/Int|

    }
    public final class FinalDerived : R|Base| {
        public constructor(): R|FinalDerived| {
            super<R|Base|>()
        }

        public final override fun bar(): R|kotlin/Unit| {
        }

        public open override val gav: R|kotlin/Int| = Int(13)
            public get(): R|kotlin/Int|

    }
    public open class OpenDerived : R|Base| {
        public constructor(): R|OpenDerived| {
            super<R|Base|>()
        }

        public final override fun bar(): R|kotlin/Unit| {
        }

        public open override val gav: R|kotlin/Int| = Int(13)
            public get(): R|kotlin/Int|

    }
    public final class Final : R|kotlin/Any| {
        public constructor(): R|Final| {
            super<R|kotlin/Any|>()
        }

    }
    public abstract interface Derived : R|Interface| {
        public open override fun foo(): R|kotlin/Unit| {
        }

        public final class Nested : R|kotlin/Any| {
            public constructor(): R|Derived.Nested| {
                super<R|kotlin/Any|>()
            }

        }

    }
    public abstract class AbstractDerived1 : R|Interface| {
        public constructor(gav: R|kotlin/Int|): R|AbstractDerived1| {
            super<R|kotlin/Any|>()
        }

        public final override val gav: R|kotlin/Int| = R|<local>/gav|
            public get(): R|kotlin/Int|

        public open override fun foo(): R|kotlin/Unit| {
        }

    }
    public abstract class AbstractDerived2 : R|Interface| {
        public constructor(): R|AbstractDerived2| {
            super<R|kotlin/Any|>()
        }

        public final override fun foo(): R|kotlin/Unit| {
        }

        public open override val gav: R|kotlin/Int| = Int(13)
            public get(): R|kotlin/Int|

    }
    public abstract interface AbstractInterface : R|kotlin/Any| {
    }
    public final object FinalObject : R|kotlin/Any| {
        private constructor(): R|FinalObject| {
            super<R|kotlin/Any|>()
        }

    }
    public open interface OpenInterface : R|kotlin/Any| {
    }
