// Ġ! LANGUAGE : Ġ+ New Inference Ċ // Ġ! DIAG NO ST ICS : Ġ- UNUSED _ PARAMETER Ċ Ċ interface ĠM emo ized Function To NotNull < K , ĠV > Ċ Ċ fun Ġ< K , ĠV Ġ: ĠAny > Ġcreate Memo ized Function ( compute : Ġ( K ) Ġ-> ĠV ): ĠM emo ized Function To NotNull < K , ĠV > Ġ= ĠTODO () Ċ Ċ interface ĠA Ċ Ċ interface ĠType Constructor Ċ Ċ class ĠRe fin er Ġ{ ĊĠĠĠ Ġval Ġmemoized Function Lambda Ġ= Ġcreate Memo ized Function Ġ{ Ġit .< ! IN AP PL IC ABLE _ C AND ID ATE !> foo <! >() Ġ} Ġ// Ġerror Ġtype Ġinfer ed , Ġno Ġdiagnostic , ĠBAD , Ġbackend Ġfails ĊĠĠĠ Ġval Ġmemoized Function Reference Ġ= Ġcreate Memo ized Function ( Type Constructor :: foo ) Ġ// ĠEXT ENSION _ IN _ CLASS _ REFERENCE _ IS _ NOT _ ALLOWED , Ġfine ĊĠĠĠ Ġval Ġmemoized Function Types Ġ= Ġcreate Memo ized Function < Type Constructor , ĠBoolean > Ġ{ Ġit . foo () Ġ} Ġ// Ġworks Ġfine ĊĊĠĠĠ Ġprivate Ġfun ĠType Constructor . foo (): ĠBoolean Ġ= Ġtrue Ċ } Ċ