package Ġcom . pal ml ang . pal m . lang . common . util Ċ Ċ val Ġempty Iterator Ġ= Ġobject Ġ: ĠIterator < Nothing > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġnext (): ĠNothing Ġ{ ĊĠĠĠĠĠĠĠ Ġerror (" Iterator Ġis Ġempty ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSingle Iterator < T >( val Ġvalue : ĠT ): ĠIterator < T > Ġ{ ĊĠĠĠ Ġprivate Ġvar ĠisValid : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ= ĠisValid ĊĊĠĠĠ Ġoverride Ġfun Ġnext (): ĠT Ġ= Ġif Ġ( isValid ) Ġ{ ĊĠĠĠĠĠĠĠ ĠisValid Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠ Ġ} Ġelse Ġerror (" Value Ġhas Ġbeen Ġused ") Ċ }