FILE: recursiveCallOnWhenWithSealedClass.kt public sealed class Maybe : R|kotlin/Any| { protected constructor(): R|Maybe| { super() } public final class Nope : R|Maybe| { public constructor(reasonForLog: R|kotlin/String|, reasonForUI: R|kotlin/String|): R|Maybe.Nope| { super|>() } public final val reasonForLog: R|kotlin/String| = R|/reasonForLog| public get(): R|kotlin/String| public final val reasonForUI: R|kotlin/String| = R|/reasonForUI| public get(): R|kotlin/String| } public final class Yeah : R|Maybe| { public constructor(meat: R|T|): R|Maybe.Yeah| { super|>() } public final val meat: R|T| = R|/meat| public get(): R|T| } public final fun unwrap(): R|T| { ^unwrap when (this@R|/Maybe|) { ($subj$ is R|Maybe.Nope|) -> { throw R|java/lang/Exception.Exception|(String()) } ($subj$ is R|Maybe.Yeah|) -> { this@R|/Maybe|.R|SubstitutionOverride| } } } }