FILE: RedundantModalityModifierChecker.kt
    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 Interface : R|kotlin/Any| {
        public abstract fun foo(): R|kotlin/Unit|

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

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

    }
    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| {
    }
