// ĠFILE : ĠMy Map . java Ċ Ċ import Ġjava . util . Abstract Map ; Ċ import Ġjava . util . Set ; Ċ Ċ class ĠMy Map < K , ĠV > Ġextends ĠAbstract Map < K , ĠV > Ġ{ ĊĠĠĠ Ġ@ Override ĊĠĠĠ Ġpublic ĠSet < Entry < K , ĠV >> Ġentry Set () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ; ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠFILE : Ġmain . kt Ċ Ċ interface ĠResolver For Project < M 1 > Ġ{ ĊĠĠĠ Ġval Ġexpose M : ĠM 1 Ġget () Ġ= Ġnull !! Ċ } Ċ Ċ class ĠResolver For Project Impl < M >( ĊĠĠĠĠĠĠĠ Ġ<! UNUSED _ PARAMETER !> descriptor By Module <! >: ĠMap < M , ĠString >, ĊĠĠĠĠĠĠĠ Ġ<! UNUSED _ PARAMETER !> delegate Resolver <! >: ĠResolver For Project < M > Ċ ) Ġ: ĠResolver For Project < M > Ċ Ċ interface ĠWith Foo Ġ{ ĊĠĠĠ Ġfun Ġfoo () Ċ } Ċ Ċ fun Ġ< M 2 : ĠWith Foo > Ġfoo ( delegate Resolver : ĠResolver For Project < M 2 ?> ): ĠResolver For Project < M 2 ?> Ġ{ ĊĠĠĠ Ġval Ġdescriptor By Module Ġ= ĠMy Map < M 2 , ĠString >() ĊĠĠĠ Ġval Ġresult Ġ= ĠResolver For Project Impl ( descriptor By Module , Ġdelegate Resolver ) ĊĠĠĠ Ġresult . expose M . foo () Ġ// ĠM Ġis Ġnot ĠM 2 ? ĊĠĠĠ Ġresult . expose M ?. foo () Ġ// Ġno Ġwarning , ĠM Ġis Ġnot ĠM 2 , Ġh ense ĠM Ġis ĠM 2 ! ĊĊĠĠĠ Ġreturn ĠResolver For Project Impl ( descriptor By Module , Ġdelegate Resolver ) Ġ// Ġanother Ġbound Ġcheck Ċ } Ċ Ċ // ĠMy Map < M 2 , ĠString > Ġ: < ĠMap < M , ĠString > Ġ=> ĠM Ġ= ĠM 2 ! Ċ // ĠR FP < M 2 ?> Ġ: < ĠR FP < M > Ġ=> ĠM Ġ= ĠM 2 ?