package Ġlib . collections Ċ Ċ class ĠMutable ListView < STORE , VIEW >( val Ġunderlying List : ĠMutable List < STORE >, Ġval Ġread Transform : Ġ( STORE )-> VIEW , Ġval Ġwrite Transform : Ġ( VIEW )-> STORE ): ĠAbstract Mutable List < VIEW >() Ġ{ ĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġunderlying List . size ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( index : ĠInt , Ġelement : ĠVIEW ) Ġ{ ĊĠĠĠĠĠĠĠ Ġunderlying List . add ( index , Ġwrite Transform ( element )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ( index : ĠInt ): ĠVIEW Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread Transform ( underlying List [ index ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove At ( index : ĠInt ): ĠVIEW Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread Transform ( underlying List . remove At ( index )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset ( index : ĠInt , Ġelement : ĠVIEW ): ĠVIEW Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread Transform ( underlying List . set ( index , Ġwrite Transform ( element ))) ĊĠĠĠ Ġ} Ċ Ċ }