// FIR_IDENTICAL //!DIAGNOSTICS: -UNUSED_PARAMETER -CAST_NEVER_SUCCEEDS sealed class DataType { sealed class NotNull : DataType() { abstract class Partial : NotNull() } } class Tuple8, B, DB : DataType, C, DC : DataType, D, DD : DataType, E, DE : DataType, F, DF : DataType, G, DG : DataType, H, DH : DataType>( firstName: String, firstType: DA, secondName: String, secondType: DB, thirdName: String, thirdType: DC, fourthName: String, fourthType: DD, fifthName: String, fifthType: DE, sixthName: String, sixthType: DF, seventhName: String, seventhType: DG, eighthName: String, eighthType: DH ) : Schema>() class EitherType>( schema: SCH ) open class Schema fun , B, DB : DataType, C, DC : DataType, D, DD : DataType, E, DE : DataType, F, DF : DataType, G, DG : DataType, H, DH : DataType> either8( firstName: String, firstType: DA, secondName: String, secondType: DB, thirdName: String, thirdType: DC, fourthName: String, fourthType: DD, fifthName: String, fifthType: DE, sixthName: String, sixthType: DF, seventhName: String, seventhType: DG, eighthName: String, eighthType: DH ): DataType.NotNull.Partial> = EitherType( Tuple8( firstName, firstType, secondName, secondType, thirdName, thirdType, fourthName, fourthType, fifthName, fifthType, sixthName, sixthType, seventhName, seventhType, eighthName, eighthType ) ) as DataType.NotNull.Partial> class Either8