package Ġcom . map k . core Ċ Ċ import Ġkotlin . reflect . K Function Ċ import Ġkotlin . reflect . K Parameter Ċ import Ġkotlin . reflect . full . instance Parameter Ċ import Ġkotlin . reflect . jvm . is Accessible Ċ Ċ class ĠK Function With Instance < T >( ĊĠĠĠ Ġprivate Ġval Ġfunction : ĠK Function < T >, ĊĠĠĠ Ġprivate Ġval Ġinstance : ĠAny Ċ ) Ġ: ĠK Function < T > Ġby Ġfunction Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġãģĵãģ® ãĤ¤ãĥ³ ãĤ¹ãĤ¿ ãĥ³ãĤ¹ ãĤĴ çĶŁæĪĲ ãģĹãģ¦ãģĦãĤĭ æĻĤ çĤ¹ ãģ§ function ãģ« ãĤ¢ãĤ¯ãĤ»ãĤ¹ ãģĹãģŁ ãģĦ çĬ¶ æ³ ģ ãģª ãģ®ãģ§ ãĢģ ãĤ¢ãĤ¯ ãĤ» ãĤ· ãĥĵ ãĥªãĥĨãĤ£ ãģ¯ ãģĵ ãģĵ ãģ§ ãĤ»ãĥĥãĥĪ ãģĻãĤĭ ĊĠĠĠĠĠĠĠ Ġfunction . is Accessible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġinstance Param Ġby Ġlazy Ġ{ Ġmap Of ( function . instance Parameter !! Ġto Ġinstance ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġparameters : ĠList < K Parameter > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġfunction . parameters . filter Ġ{ Ġit . kind Ġ!= ĠK Parameter . Kind . INSTANCE Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcall ( var arg Ġargs : ĠAny ?): ĠT Ġ= Ġfunction . call ( instance , Ġ* args ) ĊĊĠĠĠ Ġoverride Ġfun Ġcall By ( args : ĠMap < K Parameter , ĠAny ?> ): ĠT Ġ= Ġfunction . call By ( instance Param Ġ+ Ġargs ) Ċ } Ċ